
void display_rel_file(bfd *abfd,bfd *archive_bfd)

{
  uint uVar1;
  bfd_boolean bVar2;
  int iVar3;
  long lVar4;
  bfd_symbol *pbVar5;
  asymbol *paVar6;
  size_t sVar7;
  asymbol *paVar8;
  asymbol *paVar9;
  char *pcVar10;
  _func_bfd_symbol_ptr_bfd_ptr *p_Var11;
  long lVar12;
  bfd_symbol **ppbVar13;
  char *pcVar14;
  bfd_section *pbVar15;
  bfd_symbol **ppbVar16;
  void *pvVar17;
  undefined8 *puVar18;
  undefined8 *puVar19;
  void *pvVar20;
  long *plVar21;
  long *plVar22;
  void *__src;
  void *pvVar24;
  byte *pbVar25;
  long lVar26;
  ulong __size;
  byte *pbVar27;
  bfd_target *pbVar28;
  asymbol *paVar29;
  bool bVar30;
  bool bVar31;
  byte bVar32;
  undefined8 *local_68;
  uint size;
  void *minisyms;
  asymbol *synthsyms;
  long *plVar23;
  
  bVar32 = 0;
  synthsyms = (asymbol *)0x0;
  if ((dynamic != 0) || ((abfd->field_0x45 & 2) != 0)) {
    lVar4 = (*abfd->xvec->_read_minisymbols)(abfd,dynamic,&minisyms,&size);
    if (lVar4 < 0) {
      if ((dynamic == 0) || (iVar3 = bfd_get_error(), iVar3 != 7)) goto LAB_00104f21;
    }
    else if (lVar4 != 0) {
      sVar7 = (size_t)size;
      pbVar28 = abfd->xvec;
      if ((show_synthetic != 0) && (size == 8)) {
        if (dynamic == 0) {
          lVar12 = (*pbVar28->_bfd_get_dynamic_symtab_upper_bound)(abfd);
          ppbVar16 = (bfd_symbol **)minisyms;
          lVar26 = lVar4;
          if (lVar12 < 1) {
            pbVar28 = abfd->xvec;
            lVar12 = 0;
            ppbVar13 = (bfd_symbol **)0x0;
          }
          else {
            ppbVar13 = (bfd_symbol **)xmalloc(lVar12);
            lVar12 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13);
            if (lVar12 < 0) goto LAB_00104f21;
            pbVar28 = abfd->xvec;
          }
        }
        else {
          lVar26 = 0;
          ppbVar16 = (bfd_symbol **)0x0;
          lVar12 = lVar4;
          ppbVar13 = (bfd_symbol **)minisyms;
        }
        lVar12 = (*pbVar28->_bfd_get_synthetic_symtab)
                           (abfd,lVar26,ppbVar16,lVar12,ppbVar13,&synthsyms);
        if (lVar12 < 1) {
          sVar7 = (size_t)size;
          pbVar28 = abfd->xvec;
        }
        else {
          pvVar24 = (void *)xmalloc((lVar4 + lVar12) * 8 + 8);
          memcpy(pvVar24,minisyms,lVar4 * 8);
          plVar21 = (long *)(lVar4 * 8 + (long)pvVar24);
          paVar6 = synthsyms;
          plVar22 = plVar21;
          do {
            plVar23 = plVar22 + 1;
            *plVar22 = (long)paVar6;
            paVar6 = paVar6 + 1;
            plVar22 = plVar23;
          } while (plVar23 != plVar21 + lVar12);
          sVar7 = (size_t)size;
          pbVar28 = abfd->xvec;
          *plVar23 = 0;
          lVar4 = lVar4 + lVar12;
          minisyms = pvVar24;
        }
      }
      pvVar24 = minisyms;
      iVar3 = dynamic;
      pbVar5 = (*pbVar28->_bfd_make_empty_symbol)(abfd);
      if (pbVar5 != (bfd_symbol *)0x0) {
        pvVar20 = (void *)((long)pvVar24 + lVar4 * sVar7);
        pvVar17 = pvVar24;
        __src = pvVar24;
        if (pvVar24 < pvVar20) {
LAB_001048a5:
          do {
            paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5);
            if (paVar6 == (asymbol *)0x0) {
                    /* WARNING: Subroutine does not return */
              bfd_fatal(abfd->filename);
            }
            pcVar14 = paVar6->name;
            if ((*pcVar14 == '_') && (pcVar14[1] == '_')) {
              lVar4 = 0xf;
              bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));
              bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;
              pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));
              pbVar27 = (byte *)"__gnu_lto_slim";
              do {
                if (lVar4 == 0) break;
                lVar4 = lVar4 + -1;
                bVar30 = *pbVar25 < *pbVar27;
                bVar31 = *pbVar25 == *pbVar27;
                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;
                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;
              } while (bVar31);
              if ((!bVar30 && !bVar31) == bVar30) {
                pcVar14 = abfd->filename;
                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);
                non_fatal(pcVar10,pcVar14);
              }
            }
            if (undefined_only != 0) {
              if ((paVar6->section != (bfd_section *)0x10c838) ||
                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))
              goto LAB_00104897;
LAB_00104851:
              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {
LAB_00104861:
                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);
                if ((bVar2 == 0) || (allow_special_symbols != 0)) {
                  if (__src != pvVar17) {
                    memcpy(pvVar17,__src,sVar7);
                  }
                  pvVar17 = (void *)((long)pvVar17 + sVar7);
                }
              }
LAB_00104897:
              __src = (void *)((long)__src + sVar7);
              if (pvVar20 <= __src) break;
              goto LAB_001048a5;
            }
            if (external_only != 0) {
              uVar1 = paVar6->flags;
              if ((uVar1 & 0x800082) == 0) {
                if (paVar6->section == (bfd_section *)0x10c838) {
                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&
                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;
                }
                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;
              }
              else {
LAB_00104913:
                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;
              }
              goto LAB_00104897;
            }
            if ((print_debug_syms != 0) || ((paVar6->flags & 4) == 0)) {
LAB_00104928:
              if (sort_by_size == 0) goto LAB_00104851;
              if ((paVar6->section == (bfd_section *)0x10c838) ||
                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;
              goto LAB_00104861;
            }
            __src = (void *)((long)__src + sVar7);
          } while (__src < pvVar20);
          sVar7 = ((long)pvVar17 - (long)pvVar24) / (long)sVar7;
        }
        else {
          sVar7 = 0;
        }
        p_Var11 = abfd->xvec->_bfd_make_empty_symbol;
        if (no_sort == 0) {
          sort_dynamic = dynamic;
          sort_bfd = abfd;
          sort_x = (*p_Var11)(abfd);
          sort_y = (*abfd->xvec->_bfd_make_empty_symbol)(abfd);
          pvVar24 = minisyms;
          iVar3 = dynamic;
          if ((sort_x == (asymbol *)0x0) || (sort_y == (bfd_symbol *)0x0)) goto LAB_00104f21;
          __size = (ulong)size;
          if (sort_by_size == 0) {
            qsort(minisyms,sVar7,__size,(__compar_fn_t)sorters[sort_numerically][reverse_sort]);
            local_68 = (undefined8 *)0x0;
            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;
          }
          else {
            qsort(minisyms,sVar7,__size,size_forward1);
            local_68 = (undefined8 *)xmalloc(sVar7 << 4);
            paVar29 = sort_x;
            paVar6 = sort_y;
            pvVar20 = (void *)((long)pvVar24 + sVar7 * __size);
            if (pvVar24 < pvVar20) {
              paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);
              puVar19 = local_68;
              if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;
LAB_00104bad:
              do {
                paVar9 = paVar29;
                paVar29 = paVar6;
                pvVar17 = pvVar24;
                pvVar24 = (void *)((long)pvVar17 + __size);
                paVar6 = paVar9;
                if (pvVar24 < pvVar20) {
                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);
                  if (paVar9 == (asymbol *)0x0) {
                    /* WARNING: Subroutine does not return */
                    bfd_fatal(abfd->filename);
                  }
                  pbVar15 = paVar8->section;
                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;
                  pcVar14 = (char *)paVar8->value;
                  if (paVar9->section != pbVar15) goto LAB_00104b7b;
LAB_00104ea0:
                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);
                  paVar8 = paVar9;
                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;
LAB_00104b8a:
                  *puVar19 = pvVar17;
                  puVar18 = puVar19 + 2;
                  puVar19[1] = pcVar14;
                }
                else {
                  pbVar15 = paVar8->section;
                  paVar9 = (asymbol *)0x0;
                  if ((paVar8->flags & 0x200100) == 0) {
LAB_00104e70:
                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {
                      pcVar14 = paVar8[1].name;
                    }
                    else {
                      pcVar14 = (char *)paVar8->value;
                      if ((pbVar15->flags & 0x1000) == 0) {
                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;
                        goto LAB_00104b7b;
                      }
                    }
                  }
                  else {
                    pcVar14 = (char *)paVar8->value;
LAB_00104b7b:
                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);
                  }
                  puVar18 = puVar19;
                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;
                }
                puVar19 = puVar18;
                paVar8 = paVar9;
              } while (pvVar24 < pvVar20);
              sVar7 = (long)puVar18 - (long)local_68 >> 4;
            }
            else {
              sVar7 = 0;
            }
            qsort(local_68,sVar7,0x10,size_forward2);
            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;
          }
        }
        else {
          local_68 = (undefined8 *)0x0;
        }
        pvVar24 = minisyms;
        iVar3 = dynamic;
        if (sort_by_size == 0) {
          pbVar5 = (*p_Var11)(abfd);
          if (pbVar5 != (bfd_symbol *)0x0) {
            pvVar20 = (void *)(sVar7 * size + (long)pvVar24);
            for (; pvVar24 < pvVar20; pvVar24 = (void *)((long)pvVar24 + (ulong)size)) {
              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5);
              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;
              print_symbol(abfd,paVar6,0,archive_bfd);
            }
LAB_00104d08:
            if (synthsyms != (asymbol *)0x0) {
              free(synthsyms);
            }
            free(minisyms);
            free(local_68);
            return;
          }
        }
        else {
          pbVar5 = (*p_Var11)(abfd);
          if (pbVar5 != (bfd_symbol *)0x0) {
            for (puVar19 = local_68; puVar19 < local_68 + sVar7 * 2; puVar19 = puVar19 + 2) {
              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);
              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;
              print_symbol(abfd,paVar6,puVar19[1],archive_bfd);
            }
            goto LAB_00104d08;
          }
        }
      }
LAB_00104f21:
                    /* WARNING: Subroutine does not return */
      bfd_fatal(abfd->filename);
    }
  }
  pcVar14 = abfd->filename;
  pcVar10 = (char *)dcgettext(0,"%s: no symbols",5);
  non_fatal(pcVar10,pcVar14);
  return;
}



void FUN_00104760(undefined8 *param_1,undefined8 param_2)

{
  uint uVar1;
  char *pcVar2;
  undefined8 uVar3;
  int iVar4;
  int iVar5;
  long lVar6;
  long lVar7;
  size_t sVar8;
  long lVar9;
  long lVar10;
  undefined8 uVar11;
  code *pcVar12;
  ulong uVar13;
  long lVar14;
  void *pvVar15;
  ulong *puVar16;
  ulong *puVar17;
  void *pvVar18;
  long *plVar19;
  long *plVar20;
  void *__src;
  void *pvVar22;
  byte *pbVar23;
  ulong __size;
  byte *pbVar24;
  bool bVar25;
  bool bVar26;
  byte bVar27;
  ulong *local_68;
  uint local_4c;
  void *local_48;
  void *local_40 [2];
  long *plVar21;
  
  bVar27 = 0;
  local_40[0] = (void *)0x0;
  if ((DAT_0010cc20 != 0) || ((*(byte *)((long)param_1 + 0x45) & 2) != 0)) {
    lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c);
    if (lVar6 < 0) {
      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;
    }
    else if (lVar6 != 0) {
      sVar8 = (size_t)local_4c;
      lVar7 = param_1[1];
      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {
        if (DAT_0010cc20 == 0) {
          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);
          pvVar22 = local_48;
          lVar10 = lVar6;
          if (lVar7 < 1) {
            lVar7 = param_1[1];
            lVar9 = 0;
            pvVar18 = (void *)0x0;
          }
          else {
            pvVar18 = (void *)xmalloc(lVar7);
            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);
            if (lVar9 < 0) goto LAB_00104f21;
            lVar7 = param_1[1];
          }
        }
        else {
          lVar10 = 0;
          pvVar22 = (void *)0x0;
          lVar9 = lVar6;
          pvVar18 = local_48;
        }
        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);
        if (lVar9 < 1) {
          sVar8 = (size_t)local_4c;
          lVar7 = param_1[1];
        }
        else {
          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);
          memcpy(pvVar18,local_48,lVar6 * 8);
          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);
          pvVar22 = local_40[0];
          plVar20 = plVar19;
          do {
            plVar21 = plVar20 + 1;
            *plVar20 = (long)pvVar22;
            pvVar22 = (void *)((long)pvVar22 + 0x30);
            plVar20 = plVar21;
          } while (plVar21 != plVar19 + lVar9);
          sVar8 = (size_t)local_4c;
          lVar7 = param_1[1];
          *plVar21 = 0;
          lVar6 = lVar6 + lVar9;
          local_48 = pvVar18;
        }
      }
      pvVar22 = local_48;
      iVar5 = DAT_0010cc20;
      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);
      if (lVar7 != 0) {
        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);
        pvVar15 = pvVar22;
        __src = pvVar22;
        if (pvVar22 < pvVar18) {
LAB_001048a5:
          do {
            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);
            if (lVar6 == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_00106090(*param_1);
            }
            pcVar2 = *(char **)(lVar6 + 8);
            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {
              lVar9 = 0xf;
              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));
              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;
              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));
              pbVar24 = (byte *)"__gnu_lto_slim";
              do {
                if (lVar9 == 0) break;
                lVar9 = lVar9 + -1;
                bVar25 = *pbVar23 < *pbVar24;
                bVar26 = *pbVar23 == *pbVar24;
                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;
                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;
              } while (bVar26);
              if ((!bVar25 && !bVar26) == bVar25) {
                uVar3 = *param_1;
                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);
                FUN_001061b0(uVar11,uVar3);
              }
            }
            if (DAT_0010cc24 != 0) {
              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||
                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||
                  (DAT_0010cc28 != 0)))) goto LAB_00104897;
LAB_00104851:
              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {
LAB_00104861:
                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);
                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {
                  if (__src != pvVar15) {
                    memcpy(pvVar15,__src,sVar8);
                  }
                  pvVar15 = (void *)((long)pvVar15 + sVar8);
                }
              }
LAB_00104897:
              __src = (void *)((long)__src + sVar8);
              if (pvVar18 <= __src) break;
              goto LAB_001048a5;
            }
            if (DAT_0010cc48 != 0) {
              uVar1 = *(uint *)(lVar6 + 0x18);
              if ((uVar1 & 0x800082) == 0) {
                if (*(long *)(lVar6 + 0x20) == 0x10c838) {
                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&
                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;
                }
                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;
              }
              else {
LAB_00104913:
                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;
              }
              goto LAB_00104897;
            }
            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {
LAB_00104928:
              if (DAT_0010cc28 == 0) goto LAB_00104851;
              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))
              goto LAB_00104897;
              goto LAB_00104861;
            }
            __src = (void *)((long)__src + sVar8);
          } while (__src < pvVar18);
          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;
        }
        else {
          sVar8 = 0;
        }
        pcVar12 = *(code **)(param_1[1] + 0x200);
        if (DAT_0010cc40 == 0) {
          DAT_0010cbd8 = DAT_0010cc20;
          DAT_0010cbe0 = param_1;
          DAT_0010cbd0 = (*pcVar12)(param_1);
          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);
          pvVar22 = local_48;
          iVar5 = DAT_0010cc20;
          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;
          __size = (ulong)local_4c;
          if (DAT_0010cc28 == 0) {
            qsort(local_48,sVar8,__size,
                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);
            local_68 = (ulong *)0x0;
            pcVar12 = *(code **)(param_1[1] + 0x200);
          }
          else {
            qsort(local_48,sVar8,__size,FUN_00103ec0);
            local_68 = (ulong *)xmalloc(sVar8 << 4);
            lVar7 = DAT_0010cbd0;
            lVar6 = DAT_0010cbc8;
            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);
            if (pvVar22 < pvVar18) {
              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);
              puVar17 = local_68;
              if (lVar9 == 0) goto LAB_00104f21;
LAB_00104bad:
              do {
                lVar10 = lVar7;
                lVar7 = lVar6;
                pvVar15 = pvVar22;
                pvVar22 = (void *)((long)pvVar15 + __size);
                lVar6 = lVar10;
                if (pvVar22 < pvVar18) {
                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);
                  if (lVar10 == 0) {
                    /* WARNING: Subroutine does not return */
                    FUN_00106090(*param_1);
                  }
                  lVar14 = *(long *)(lVar9 + 0x20);
                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;
                  uVar13 = *(ulong *)(lVar9 + 0x10);
                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;
LAB_00104ea0:
                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;
                  lVar9 = lVar10;
                  if (uVar13 == 0) goto LAB_00104bad;
LAB_00104b8a:
                  *puVar17 = (ulong)pvVar15;
                  puVar16 = puVar17 + 2;
                  puVar17[1] = uVar13;
                }
                else {
                  lVar14 = *(long *)(lVar9 + 0x20);
                  lVar10 = 0;
                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {
LAB_00104e70:
                    if (*(int *)(param_1[1] + 8) == 5) {
                      uVar13 = *(ulong *)(lVar9 + 0x38);
                    }
                    else {
                      uVar13 = *(ulong *)(lVar9 + 0x10);
                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {
                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))
                        goto LAB_00104ea0;
                        goto LAB_00104b7b;
                      }
                    }
                  }
                  else {
                    uVar13 = *(ulong *)(lVar9 + 0x10);
LAB_00104b7b:
                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;
                  }
                  puVar16 = puVar17;
                  if (uVar13 != 0) goto LAB_00104b8a;
                }
                puVar17 = puVar16;
                lVar9 = lVar10;
              } while (pvVar22 < pvVar18);
              sVar8 = (long)puVar16 - (long)local_68 >> 4;
            }
            else {
              sVar8 = 0;
            }
            qsort(local_68,sVar8,0x10,FUN_00105010);
            pcVar12 = *(code **)(param_1[1] + 0x200);
          }
        }
        else {
          local_68 = (ulong *)0x0;
        }
        pvVar22 = local_48;
        iVar5 = DAT_0010cc20;
        if (DAT_0010cc28 == 0) {
          lVar6 = (*pcVar12)(param_1);
          if (lVar6 != 0) {
            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);
            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {
              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);
              if (lVar7 == 0) goto LAB_00104f21;
              FUN_00104200(param_1,lVar7,0,param_2);
            }
LAB_00104d08:
            if (local_40[0] != (void *)0x0) {
              free(local_40[0]);
            }
            free(local_48);
            free(local_68);
            return;
          }
        }
        else {
          lVar6 = (*pcVar12)(param_1);
          if (lVar6 != 0) {
            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {
              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);
              if (lVar7 == 0) goto LAB_00104f21;
              FUN_00104200(param_1,lVar7,puVar17[1],param_2);
            }
            goto LAB_00104d08;
          }
        }
      }
LAB_00104f21:
                    /* WARNING: Subroutine does not return */
      FUN_00106090(*param_1);
    }
  }
  uVar3 = *param_1;
  uVar11 = dcgettext(0,"%s: no symbols",5);
  FUN_001061b0(uVar11,uVar3);
  return;
}


PUSH R15
PUSH R14
MOV R14,RDI
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x58
MOV qword ptr [RSP],RSI
MOV ESI,dword ptr [0x0010cc20]
MOV qword ptr [RSP + 0x48],0x0
TEST ESI,ESI
JNZ 0x00104792
TEST byte ptr [RDI + 0x45],0x2
JZ 0x0010497e
MOV RAX,qword ptr [R14 + 0x8]
LEA RCX,[RSP + 0x3c]
LEA RDX,[RSP + 0x40]
MOV RDI,R14
CALL qword ptr [RAX + 0x258]
MOV RBX,RAX
TEST RAX,RAX
JS 0x00104960
JZ 0x0010497e
MOV EAX,dword ptr [0x0010cc20]
MOV EBP,dword ptr [0x0010cc18]
MOV R12D,dword ptr [RSP + 0x3c]
MOV R11,qword ptr [R14 + 0x8]
MOV dword ptr [RSP + 0x8],EAX
TEST EBP,EBP
JZ 0x001047e2
CMP R12D,0x8
JZ 0x00104e00
MOV R15,qword ptr [RSP + 0x40]
MOV RDI,R14
CALL qword ptr [R11 + 0x200]
MOV qword ptr [RSP + 0x10],RAX
TEST RAX,RAX
JZ 0x00104f21
IMUL RBX,R12
LEA RAX,[R15 + RBX*0x1]
MOV qword ptr [RSP + 0x18],RAX
CMP R15,RAX
JNC 0x00104fa0
MOV RAX,R14
MOV RBX,R15
MOV RBP,R15
MOV R14,R15
LEA R13,[0x10c838]
MOV R15,RAX
JMP 0x001048a5
CMP qword ptr [R8 + 0x20],R13
JNZ 0x00104897
MOV EAX,dword ptr [0x0010cc3c]
TEST EAX,EAX
JNZ 0x00104847
TEST byte ptr [R8 + 0x18],0x4
JNZ 0x00104897
MOV EAX,dword ptr [0x0010cc28]
TEST EAX,EAX
JNZ 0x00104897
MOV ESI,dword ptr [0x0010cc44]
TEST ESI,ESI
JZ 0x00104861
CMP qword ptr [R8 + 0x20],R13
JZ 0x00104897
MOV RAX,qword ptr [R15 + 0x8]
MOV RSI,R8
MOV RDI,R15
CALL qword ptr [RAX + 0x228]
TEST EAX,EAX
JZ 0x00104881
MOV R10D,dword ptr [0x0010cc10]
TEST R10D,R10D
JZ 0x00104897
CMP RBP,RBX
JZ 0x00104894
MOV RDX,R12
MOV RSI,RBP
MOV RDI,RBX
CALL 0x00103320
ADD RBX,R12
ADD RBP,R12
CMP qword ptr [RSP + 0x18],RBP
JBE 0x001049e0
MOV RAX,qword ptr [R15 + 0x8]
MOV RCX,qword ptr [RSP + 0x10]
MOV RDX,RBP
MOV RDI,R15
MOV ESI,dword ptr [RSP + 0x8]
CALL qword ptr [RAX + 0x260]
MOV R8,RAX
TEST RAX,RAX
JZ 0x00104ff7
MOV RSI,qword ptr [RAX + 0x8]
CMP byte ptr [RSI],0x5f
JZ 0x00104be0
MOV R9D,dword ptr [0x0010cc24]
TEST R9D,R9D
JNZ 0x00104830
MOV EDI,dword ptr [0x0010cc48]
TEST EDI,EDI
JZ 0x001049b0
MOV EAX,dword ptr [R8 + 0x18]
TEST EAX,0x800082
JNZ 0x00104913
MOV RDX,qword ptr [R8 + 0x20]
CMP RDX,R13
JZ 0x00104c50
TEST byte ptr [RDX + 0x21],0x10
JZ 0x00104897
MOV EDX,dword ptr [0x0010cc3c]
TEST EDX,EDX
JNZ 0x00104928
TEST AL,0x4
JNZ 0x00104897
NOP dword ptr [RAX]
MOV R11D,dword ptr [0x0010cc28]
TEST R11D,R11D
JZ 0x00104851
MOV RAX,qword ptr [R8 + 0x20]
CMP RAX,R13
JZ 0x00104897
LEA RDI,[0x10c950]
CMP RAX,RDI
JNZ 0x00104861
JMP 0x00104897
MOV R12D,dword ptr [0x0010cc20]
TEST R12D,R12D
JZ 0x00104f21
CALL 0x00103240
CMP EAX,0x7
JNZ 0x00104f21
MOV RBX,qword ptr [R14]
MOV EDX,0x5
LEA RSI,[0x10804e]
XOR EDI,EDI
CALL 0x001031a0
MOV RDI,RAX
MOV RSI,RBX
XOR EAX,EAX
CALL 0x001061b0
ADD RSP,0x58
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV ECX,dword ptr [0x0010cc3c]
TEST ECX,ECX
JNZ 0x00104928
TEST byte ptr [R8 + 0x18],0x4
JZ 0x00104928
ADD RBP,R12
CMP qword ptr [RSP + 0x18],RBP
JA 0x001048a5
NOP word ptr [RAX + RAX*0x1]
MOV RAX,R15
MOV R15,R14
SUB RBX,R15
MOV R14,RAX
MOV RAX,RBX
CQO
IDIV R12
MOV RBX,RAX
MOV RAX,qword ptr [R14 + 0x8]
MOV R9D,dword ptr [0x0010cc40]
MOV R12D,dword ptr [0x0010cc20]
MOV RAX,qword ptr [RAX + 0x200]
TEST R9D,R9D
JNZ 0x00104c88
MOV RDI,R14
MOV qword ptr [0x0010cbe0],R14
MOV dword ptr [0x0010cbd8],R12D
CALL RAX
MOV RDI,R14
MOV qword ptr [0x0010cbd0],RAX
MOV RAX,qword ptr [R14 + 0x8]
CALL qword ptr [RAX + 0x200]
CMP qword ptr [0x0010cbd0],0x0
MOV qword ptr [0x0010cbc8],RAX
JZ 0x00104f21
TEST RAX,RAX
JZ 0x00104f21
MOV EDI,dword ptr [RSP + 0x3c]
MOV R8D,dword ptr [0x0010cc28]
MOV R15,qword ptr [RSP + 0x40]
MOV qword ptr [RSP + 0x18],RDI
TEST R8D,R8D
JZ 0x00104db0
MOV RBP,qword ptr [RSP + 0x18]
MOV RSI,RBX
MOV RDI,R15
MOV R12D,dword ptr [0x0010cc20]
LEA RCX,[0x103ec0]
MOV RDX,RBP
MOV dword ptr [RSP + 0x28],R12D
CALL 0x00103100
MOV RDI,RBX
IMUL RBX,RBP
SHL RDI,0x4
CALL 0x00103250
LEA R9,[R15 + RBX*0x1]
MOV qword ptr [RSP + 0x20],RAX
CMP R9,R15
MOV qword ptr [RSP + 0x8],R9
JBE 0x00104f08
MOV R8,qword ptr [0x0010cbc8]
MOV RDX,R15
MOV ESI,R12D
MOV RDI,R14
MOV R13,qword ptr [0x0010cbd0]
MOV RAX,qword ptr [R14 + 0x8]
MOV qword ptr [RSP + 0x10],R8
MOV RCX,R13
CALL qword ptr [RAX + 0x260]
MOV R8,qword ptr [RSP + 0x10]
MOV R9,qword ptr [RSP + 0x8]
TEST RAX,RAX
MOV RBP,RAX
JZ 0x00104f21
MOV R10,R14
MOV RBX,qword ptr [RSP + 0x20]
MOV R14,R13
MOV R13,R8
MOV R8,R15
MOV R15,R9
JMP 0x00104bad
MOV RAX,qword ptr [R10 + 0x8]
MOV qword ptr [RSP + 0x10],R8
MOV RDI,R10
MOV RCX,R13
MOV qword ptr [RSP + 0x8],R10
MOV RDX,R12
MOV ESI,dword ptr [RSP + 0x28]
CALL qword ptr [RAX + 0x260]
MOV R10,qword ptr [RSP + 0x8]
MOV R8,qword ptr [RSP + 0x10]
TEST RAX,RAX
JZ 0x00104fff
MOV RCX,qword ptr [RBP + 0x20]
TEST dword ptr [RBP + 0x18],0x200100
JZ 0x00104e70
MOV RDX,qword ptr [RBP + 0x10]
CMP qword ptr [RAX + 0x20],RCX
JZ 0x00104ea0
MOV RCX,qword ptr [RCX + 0x38]
SUB RCX,RDX
MOV RDX,RCX
TEST RDX,RDX
JZ 0x00104b95
MOV qword ptr [RBX],R8
ADD RBX,0x10
MOV qword ptr [RBX + -0x8],RDX
CMP R15,R12
JBE 0x00104ec8
MOV RDX,R14
MOV R8,R12
MOV R14,R13
MOV RBP,RAX
MOV R13,RDX
MOV RAX,qword ptr [RSP + 0x18]
LEA R12,[R8 + RAX*0x1]
CMP R15,R12
JA 0x00104b28
MOV RCX,qword ptr [RBP + 0x20]
XOR EAX,EAX
TEST dword ptr [RBP + 0x18],0x200100
JZ 0x00104e70
MOV RDX,qword ptr [RBP + 0x10]
JMP 0x00104b7b
CMP byte ptr [RSI + 0x1],0x5f
JNZ 0x001048d7
XOR EAX,EAX
CMP byte ptr [RSI + 0x2],0x5f
MOV ECX,0xf
SETZ AL
LEA RDI,[0x10805d]
ADD RSI,RAX
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x001048d7
MOV RAX,qword ptr [R15]
MOV EDX,0x5
XOR EDI,EDI
MOV qword ptr [RSP + 0x28],R8
LEA RSI,[0x108c38]
MOV qword ptr [RSP + 0x20],RAX
CALL 0x001031a0
MOV RSI,qword ptr [RSP + 0x20]
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001061b0
MOV R8,qword ptr [RSP + 0x28]
JMP 0x001048d7
MOV ESI,dword ptr [0x0010cc3c]
TEST ESI,ESI
JNZ 0x00104c62
TEST AL,0x4
JNZ 0x00104897
MOV ECX,dword ptr [0x0010cc28]
TEST ECX,ECX
JNZ 0x00104897
MOV EDX,dword ptr [0x0010cc44]
TEST EDX,EDX
JNZ 0x00104897
JMP 0x00104861
MOV qword ptr [RSP + 0x20],0x0
MOV EDI,dword ptr [0x0010cc28]
TEST EDI,EDI
JNZ 0x00104d40
MOV R13D,dword ptr [RSP + 0x3c]
MOV RBP,qword ptr [RSP + 0x40]
MOV RDI,R14
CALL RAX
MOV R15,RAX
TEST RAX,RAX
JZ 0x00104f21
IMUL RBX,R13
ADD RBX,RBP
CMP RBP,RBX
JNC 0x00104d08
NOP word ptr CS:[RAX + RAX*0x1]
MOV RAX,qword ptr [R14 + 0x8]
MOV RCX,R15
MOV RDX,RBP
MOV ESI,R12D
MOV RDI,R14
CALL qword ptr [RAX + 0x260]
TEST RAX,RAX
JZ 0x00104f21
MOV RCX,qword ptr [RSP]
XOR EDX,EDX
MOV RSI,RAX
MOV RDI,R14
ADD RBP,R13
CALL 0x00104200
CMP RBX,RBP
JA 0x00104cd0
MOV RDI,qword ptr [RSP + 0x48]
TEST RDI,RDI
JZ 0x00104d17
CALL 0x00103060
MOV RDI,qword ptr [RSP + 0x40]
CALL 0x00103060
MOV RDI,qword ptr [RSP + 0x20]
ADD RSP,0x58
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
JMP 0x00103060
MOV RDI,R14
CALL RAX
MOV RBP,RAX
TEST RAX,RAX
JZ 0x00104f21
MOV R13,qword ptr [RSP + 0x20]
SHL RBX,0x4
ADD RBX,R13
CMP RBX,R13
JBE 0x00104d08
MOV R15,qword ptr [RSP]
NOP word ptr CS:[RAX + RAX*0x1]
MOV RAX,qword ptr [R14 + 0x8]
MOV RCX,RBP
MOV RDX,qword ptr [R13]
MOV ESI,R12D
MOV RDI,R14
CALL qword ptr [RAX + 0x260]
TEST RAX,RAX
JZ 0x00104f21
MOV RDX,qword ptr [R13 + 0x8]
MOV RCX,R15
MOV RSI,RAX
MOV RDI,R14
ADD R13,0x10
CALL 0x00104200
CMP RBX,R13
JA 0x00104d70
JMP 0x00104d08
MOVSXD RAX,dword ptr [0x0010cc30]
MOVSXD RDX,dword ptr [0x0010cc2c]
MOV RSI,RBX
LEA RDX,[RAX + RDX*0x2]
LEA RAX,[0x10bd80]
MOV RCX,qword ptr [RAX + RDX*0x8]
MOV RDX,RDI
MOV RDI,R15
CALL 0x00103100
MOV RAX,qword ptr [R14 + 0x8]
MOV R12D,dword ptr [0x0010cc20]
MOV qword ptr [RSP + 0x20],0x0
MOV RAX,qword ptr [RAX + 0x200]
JMP 0x00104c91
MOV R10D,dword ptr [RSP + 0x8]
TEST R10D,R10D
JNZ 0x00104f10
MOV RDI,R14
CALL qword ptr [R11 + 0x338]
MOV RDX,qword ptr [RSP + 0x40]
TEST RAX,RAX
JG 0x00104fb0
MOV R11,qword ptr [R14 + 0x8]
MOV RSI,RBX
XOR ECX,ECX
XOR R8D,R8D
LEA R9,[RSP + 0x48]
MOV RDI,R14
CALL qword ptr [R11 + 0x348]
MOV R12,RAX
TEST RAX,RAX
JG 0x00104f30
MOV EAX,dword ptr [0x0010cc20]
MOV R12D,dword ptr [RSP + 0x3c]
MOV R15,qword ptr [RSP + 0x40]
MOV R11,qword ptr [R14 + 0x8]
MOV dword ptr [RSP + 0x8],EAX
JMP 0x001047e7
MOV RDX,qword ptr [R10 + 0x8]
CMP dword ptr [RDX + 0x8],0x5
JZ 0x00104eb8
MOV RDX,qword ptr [RBP + 0x10]
TEST byte ptr [RCX + 0x21],0x10
JNZ 0x00104b85
CMP R15,R12
JBE 0x00104b7b
CMP qword ptr [RAX + 0x20],RCX
JNZ 0x00104b7b
NOP dword ptr [RAX + RAX*0x1]
MOV RCX,qword ptr [RAX + 0x10]
SUB RCX,RDX
MOV RDX,RCX
JNZ 0x00104b8a
JMP 0x00104b9e
MOV RDX,qword ptr [RBP + 0x38]
JMP 0x00104b85
SUB RBX,qword ptr [RSP + 0x20]
MOV R14,R10
SAR RBX,0x4
MOV RSI,RBX
MOV RDI,qword ptr [RSP + 0x20]
LEA RCX,[0x105010]
MOV EDX,0x10
CALL 0x00103100
MOV RAX,qword ptr [R14 + 0x8]
MOV R12D,dword ptr [0x0010cc20]
MOV RAX,qword ptr [RAX + 0x200]
JMP 0x00104c91
XOR ESI,ESI
XOR EBX,EBX
JMP 0x00104ed7
MOV R8,qword ptr [RSP + 0x40]
MOV RCX,RBX
XOR ESI,ESI
XOR EDX,EDX
JMP 0x00104e32
MOV RDI,qword ptr [R14]
CALL 0x00106090
LEA RBP,[RBX + RAX*0x1]
SHL RBX,0x3
LEA RDI,[0x8 + RBP*0x8]
CALL 0x00103250
MOV RSI,qword ptr [RSP + 0x40]
MOV RDX,RBX
MOV R15,RAX
MOV RDI,RAX
CALL 0x00103320
ADD RBX,R15
MOV RAX,qword ptr [RSP + 0x48]
LEA RDX,[RBX + R12*0x8]
NOP dword ptr [RAX]
ADD RBX,0x8
MOV qword ptr [RBX + -0x8],RAX
ADD RAX,0x30
CMP RBX,RDX
JNZ 0x00104f68
MOV R12D,dword ptr [RSP + 0x3c]
MOV R11,qword ptr [R14 + 0x8]
MOV qword ptr [RBX],0x0
MOV RBX,RBP
MOV EAX,dword ptr [0x0010cc20]
MOV qword ptr [RSP + 0x40],R15
MOV dword ptr [RSP + 0x8],EAX
JMP 0x001047e7
XOR EBX,EBX
JMP 0x001049f7
MOV RDI,RAX
MOV qword ptr [RSP + 0x10],RDX
CALL 0x00103250
MOV RDI,R14
MOV R8,RAX
MOV RAX,qword ptr [R14 + 0x8]
MOV RSI,R8
MOV qword ptr [RSP + 0x8],R8
CALL qword ptr [RAX + 0x340]
MOV RCX,RAX
TEST RAX,RAX
JS 0x00104f21
MOV R11,qword ptr [R14 + 0x8]
MOV RSI,RBX
MOV R8,qword ptr [RSP + 0x8]
MOV RDX,qword ptr [RSP + 0x10]
JMP 0x00104e32
MOV RDI,qword ptr [R15]
CALL 0x00106090
MOV RDI,qword ptr [R10]
CALL 0x00106090
(translation_unit "void FUN_00104760(undefined8 *param_1,undefined8 param_2)\n\n{\n  uint uVar1;\n  char *pcVar2;\n  undefined8 uVar3;\n  int iVar4;\n  int iVar5;\n  long lVar6;\n  long lVar7;\n  size_t sVar8;\n  long lVar9;\n  long lVar10;\n  undefined8 uVar11;\n  code *pcVar12;\n  ulong uVar13;\n  long lVar14;\n  void *pvVar15;\n  ulong *puVar16;\n  ulong *puVar17;\n  void *pvVar18;\n  long *plVar19;\n  long *plVar20;\n  void *__src;\n  void *pvVar22;\n  byte *pbVar23;\n  ulong __size;\n  byte *pbVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  ulong *local_68;\n  uint local_4c;\n  void *local_48;\n  void *local_40 [2];\n  long *plVar21;\n  \n  bVar27 = 0;\n  local_40[0] = (void *)0x0;\n  if ((DAT_0010cc20 != 0) || ((*(byte *)((long)param_1 + 0x45) & 2) != 0)) {\n    lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c);\n    if (lVar6 < 0) {\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      FUN_00106090(*param_1);\n    }\n  }\n  uVar3 = *param_1;\n  uVar11 = dcgettext(0,"%s: no symbols",5);\n  FUN_001061b0(uVar11,uVar3);\n  return;\n}\n\n" (function_definition "void FUN_00104760(undefined8 *param_1,undefined8 param_2)\n\n{\n  uint uVar1;\n  char *pcVar2;\n  undefined8 uVar3;\n  int iVar4;\n  int iVar5;\n  long lVar6;\n  long lVar7;\n  size_t sVar8;\n  long lVar9;\n  long lVar10;\n  undefined8 uVar11;\n  code *pcVar12;\n  ulong uVar13;\n  long lVar14;\n  void *pvVar15;\n  ulong *puVar16;\n  ulong *puVar17;\n  void *pvVar18;\n  long *plVar19;\n  long *plVar20;\n  void *__src;\n  void *pvVar22;\n  byte *pbVar23;\n  ulong __size;\n  byte *pbVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  ulong *local_68;\n  uint local_4c;\n  void *local_48;\n  void *local_40 [2];\n  long *plVar21;\n  \n  bVar27 = 0;\n  local_40[0] = (void *)0x0;\n  if ((DAT_0010cc20 != 0) || ((*(byte *)((long)param_1 + 0x45) & 2) != 0)) {\n    lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c);\n    if (lVar6 < 0) {\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      FUN_00106090(*param_1);\n    }\n  }\n  uVar3 = *param_1;\n  uVar11 = dcgettext(0,"%s: no symbols",5);\n  FUN_001061b0(uVar11,uVar3);\n  return;\n}" primitive_type (function_declarator "FUN_00104760(undefined8 *param_1,undefined8 param_2)" identifier (parameter_list "(undefined8 *param_1,undefined8 param_2)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  char *pcVar2;\n  undefined8 uVar3;\n  int iVar4;\n  int iVar5;\n  long lVar6;\n  long lVar7;\n  size_t sVar8;\n  long lVar9;\n  long lVar10;\n  undefined8 uVar11;\n  code *pcVar12;\n  ulong uVar13;\n  long lVar14;\n  void *pvVar15;\n  ulong *puVar16;\n  ulong *puVar17;\n  void *pvVar18;\n  long *plVar19;\n  long *plVar20;\n  void *__src;\n  void *pvVar22;\n  byte *pbVar23;\n  ulong __size;\n  byte *pbVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  ulong *local_68;\n  uint local_4c;\n  void *local_48;\n  void *local_40 [2];\n  long *plVar21;\n  \n  bVar27 = 0;\n  local_40[0] = (void *)0x0;\n  if ((DAT_0010cc20 != 0) || ((*(byte *)((long)param_1 + 0x45) & 2) != 0)) {\n    lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c);\n    if (lVar6 < 0) {\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      FUN_00106090(*param_1);\n    }\n  }\n  uVar3 = *param_1;\n  uVar11 = dcgettext(0,"%s: no symbols",5);\n  FUN_001061b0(uVar11,uVar3);\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "void *pvVar15;" primitive_type (pointer_declarator "*pvVar15" * identifier) ;) (declaration "ulong *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "ulong *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "void *pvVar18;" primitive_type (pointer_declarator "*pvVar18" * identifier) ;) (declaration "long *plVar19;" (sized_type_specifier "long" long) (pointer_declarator "*plVar19" * identifier) ;) (declaration "long *plVar20;" (sized_type_specifier "long" long) (pointer_declarator "*plVar20" * identifier) ;) (declaration "void *__src;" primitive_type (pointer_declarator "*__src" * identifier) ;) (declaration "void *pvVar22;" primitive_type (pointer_declarator "*pvVar22" * identifier) ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "ulong __size;" type_identifier identifier ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "byte bVar27;" type_identifier identifier ;) (declaration "ulong *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "void *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "void *local_40 [2];" primitive_type (pointer_declarator "*local_40 [2]" * (array_declarator "local_40 [2]" identifier [ number_literal ])) ;) (declaration "long *plVar21;" (sized_type_specifier "long" long) (pointer_declarator "*plVar21" * identifier) ;) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" identifier = number_literal) ;) (expression_statement "local_40[0] = (void *)0x0;" (assignment_expression "local_40[0] = (void *)0x0" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((DAT_0010cc20 != 0) || ((*(byte *)((long)param_1 + 0x45) & 2) != 0)) {\n    lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c);\n    if (lVar6 < 0) {\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      FUN_00106090(*param_1);\n    }\n  }" if (parenthesized_expression "((DAT_0010cc20 != 0) || ((*(byte *)((long)param_1 + 0x45) & 2) != 0))" ( (binary_expression "(DAT_0010cc20 != 0) || ((*(byte *)((long)param_1 + 0x45) & 2) != 0)" (parenthesized_expression "(DAT_0010cc20 != 0)" ( (binary_expression "DAT_0010cc20 != 0" identifier != number_literal) )) || (parenthesized_expression "((*(byte *)((long)param_1 + 0x45) & 2) != 0)" ( (binary_expression "(*(byte *)((long)param_1 + 0x45) & 2) != 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x45) & 2)" ( (binary_expression "*(byte *)((long)param_1 + 0x45) & 2" (pointer_expression "*(byte *)((long)param_1 + 0x45)" * (cast_expression "(byte *)((long)param_1 + 0x45)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x45)" ( (binary_expression "(long)param_1 + 0x45" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c);\n    if (lVar6 < 0) {\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      FUN_00106090(*param_1);\n    }\n  }" { (expression_statement "lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c);" (assignment_expression "lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c)" identifier = (call_expression "(**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c)" (parenthesized_expression "(**(code **)(param_1[1] + 600))" ( (pointer_expression "**(code **)(param_1[1] + 600)" * (pointer_expression "*(code **)(param_1[1] + 600)" * (cast_expression "(code **)(param_1[1] + 600)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 600)" ( (binary_expression "param_1[1] + 600" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,DAT_0010cc20,&local_48,&local_4c)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) , (pointer_expression "&local_4c" & identifier) )))) ;) (if_statement "if (lVar6 < 0) {\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      FUN_00106090(*param_1);\n    }" if (parenthesized_expression "(lVar6 < 0)" ( (binary_expression "lVar6 < 0" identifier < number_literal) )) (compound_statement "{\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }" { (if_statement "if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;" if (parenthesized_expression "((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7))" ( (binary_expression "(DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)" (parenthesized_expression "(DAT_0010cc20 == 0)" ( (binary_expression "DAT_0010cc20 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar5 = bfd_get_error(), iVar5 != 7)" ( (comma_expression "iVar5 = bfd_get_error(), iVar5 != 7" (assignment_expression "iVar5 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) , (binary_expression "iVar5 != 7" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00104f21;" goto statement_identifier ;)) }) (else_clause "else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      FUN_00106090(*param_1);\n    }" else (if_statement "if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      FUN_00106090(*param_1);\n    }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      FUN_00106090(*param_1);\n    }" { (expression_statement "sVar8 = (size_t)local_4c;" (assignment_expression "sVar8 = (size_t)local_4c" identifier = (cast_expression "(size_t)local_4c" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "lVar7 = param_1[1];" (assignment_expression "lVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }" if (parenthesized_expression "((DAT_0010cc18 != 0) && (local_4c == 8))" ( (binary_expression "(DAT_0010cc18 != 0) && (local_4c == 8)" (parenthesized_expression "(DAT_0010cc18 != 0)" ( (binary_expression "DAT_0010cc18 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_4c == 8)" ( (binary_expression "local_4c == 8" identifier == number_literal) ))) )) (compound_statement "{\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }" { (if_statement "if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }" if (parenthesized_expression "(DAT_0010cc20 == 0)" ( (binary_expression "DAT_0010cc20 == 0" identifier == number_literal) )) (compound_statement "{\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }" { (expression_statement "lVar7 = (**(code **)(lVar7 + 0x338))(param_1);" (assignment_expression "lVar7 = (**(code **)(lVar7 + 0x338))(param_1)" identifier = (call_expression "(**(code **)(lVar7 + 0x338))(param_1)" (parenthesized_expression "(**(code **)(lVar7 + 0x338))" ( (pointer_expression "**(code **)(lVar7 + 0x338)" * (pointer_expression "*(code **)(lVar7 + 0x338)" * (cast_expression "(code **)(lVar7 + 0x338)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar7 + 0x338)" ( (binary_expression "lVar7 + 0x338" identifier + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pvVar22 = local_48;" (assignment_expression "pvVar22 = local_48" identifier = identifier) ;) (expression_statement "lVar10 = lVar6;" (assignment_expression "lVar10 = lVar6" identifier = identifier) ;) (if_statement "if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }" if (parenthesized_expression "(lVar7 < 1)" ( (binary_expression "lVar7 < 1" identifier < number_literal) )) (compound_statement "{\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }" { (expression_statement "lVar7 = param_1[1];" (assignment_expression "lVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "lVar9 = 0;" (assignment_expression "lVar9 = 0" identifier = number_literal) ;) (expression_statement "pvVar18 = (void *)0x0;" (assignment_expression "pvVar18 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }" else (compound_statement "{\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }" { (expression_statement "pvVar18 = (void *)xmalloc(lVar7);" (assignment_expression "pvVar18 = (void *)xmalloc(lVar7)" identifier = (cast_expression "(void *)xmalloc(lVar7)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(lVar7)" identifier (argument_list "(lVar7)" ( identifier ))))) ;) (expression_statement "lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);" (assignment_expression "lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18)" identifier = (call_expression "(**(code **)(param_1[1] + 0x340))(param_1,pvVar18)" (parenthesized_expression "(**(code **)(param_1[1] + 0x340))" ( (pointer_expression "**(code **)(param_1[1] + 0x340)" * (pointer_expression "*(code **)(param_1[1] + 0x340)" * (cast_expression "(code **)(param_1[1] + 0x340)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x340)" ( (binary_expression "param_1[1] + 0x340" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,pvVar18)" ( identifier , identifier )))) ;) (if_statement "if (lVar9 < 0) goto LAB_00104f21;" if (parenthesized_expression "(lVar9 < 0)" ( (binary_expression "lVar9 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00104f21;" goto statement_identifier ;)) (expression_statement "lVar7 = param_1[1];" (assignment_expression "lVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) }))) }) (else_clause "else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }" else (compound_statement "{\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }" { (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (expression_statement "pvVar22 = (void *)0x0;" (assignment_expression "pvVar22 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "lVar9 = lVar6;" (assignment_expression "lVar9 = lVar6" identifier = identifier) ;) (expression_statement "pvVar18 = local_48;" (assignment_expression "pvVar18 = local_48" identifier = identifier) ;) }))) (expression_statement "lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);" (assignment_expression "lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40)" identifier = (call_expression "(**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40)" (parenthesized_expression "(**(code **)(lVar7 + 0x348))" ( (pointer_expression "**(code **)(lVar7 + 0x348)" * (pointer_expression "*(code **)(lVar7 + 0x348)" * (cast_expression "(code **)(lVar7 + 0x348)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar7 + 0x348)" ( (binary_expression "lVar7 + 0x348" identifier + number_literal) ))))) )) (argument_list "(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }" if (parenthesized_expression "(lVar9 < 1)" ( (binary_expression "lVar9 < 1" identifier < number_literal) )) (compound_statement "{\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }" { (expression_statement "sVar8 = (size_t)local_4c;" (assignment_expression "sVar8 = (size_t)local_4c" identifier = (cast_expression "(size_t)local_4c" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "lVar7 = param_1[1];" (assignment_expression "lVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }" else (compound_statement "{\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }" { (expression_statement "pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);" (assignment_expression "pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8)" identifier = (cast_expression "(void *)xmalloc((lVar6 + lVar9) * 8 + 8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc((lVar6 + lVar9) * 8 + 8)" identifier (argument_list "((lVar6 + lVar9) * 8 + 8)" ( (binary_expression "(lVar6 + lVar9) * 8 + 8" (binary_expression "(lVar6 + lVar9) * 8" (parenthesized_expression "(lVar6 + lVar9)" ( (binary_expression "lVar6 + lVar9" identifier + identifier) )) * number_literal) + number_literal) ))))) ;) (expression_statement "memcpy(pvVar18,local_48,lVar6 * 8);" (call_expression "memcpy(pvVar18,local_48,lVar6 * 8)" identifier (argument_list "(pvVar18,local_48,lVar6 * 8)" ( identifier , identifier , (binary_expression "lVar6 * 8" identifier * number_literal) ))) ;) (expression_statement "plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);" (assignment_expression "plVar19 = (long *)(lVar6 * 8 + (long)pvVar18)" identifier = (cast_expression "(long *)(lVar6 * 8 + (long)pvVar18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 * 8 + (long)pvVar18)" ( (binary_expression "lVar6 * 8 + (long)pvVar18" (binary_expression "lVar6 * 8" identifier * number_literal) + (cast_expression "(long)pvVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "pvVar22 = local_40[0];" (assignment_expression "pvVar22 = local_40[0]" identifier = (subscript_expression "local_40[0]" identifier [ number_literal ])) ;) (expression_statement "plVar20 = plVar19;" (assignment_expression "plVar20 = plVar19" identifier = identifier) ;) (do_statement "do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);" do (compound_statement "{\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          }" { (expression_statement "plVar21 = plVar20 + 1;" (assignment_expression "plVar21 = plVar20 + 1" identifier = (binary_expression "plVar20 + 1" identifier + number_literal)) ;) (expression_statement "*plVar20 = (long)pvVar22;" (assignment_expression "*plVar20 = (long)pvVar22" (pointer_expression "*plVar20" * identifier) = (cast_expression "(long)pvVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "pvVar22 = (void *)((long)pvVar22 + 0x30);" (assignment_expression "pvVar22 = (void *)((long)pvVar22 + 0x30)" identifier = (cast_expression "(void *)((long)pvVar22 + 0x30)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar22 + 0x30)" ( (binary_expression "(long)pvVar22 + 0x30" (cast_expression "(long)pvVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "plVar20 = plVar21;" (assignment_expression "plVar20 = plVar21" identifier = identifier) ;) }) while (parenthesized_expression "(plVar21 != plVar19 + lVar9)" ( (binary_expression "plVar21 != plVar19 + lVar9" identifier != (binary_expression "plVar19 + lVar9" identifier + identifier)) )) ;) (expression_statement "sVar8 = (size_t)local_4c;" (assignment_expression "sVar8 = (size_t)local_4c" identifier = (cast_expression "(size_t)local_4c" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "lVar7 = param_1[1];" (assignment_expression "lVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "*plVar21 = 0;" (assignment_expression "*plVar21 = 0" (pointer_expression "*plVar21" * identifier) = number_literal) ;) (expression_statement "lVar6 = lVar6 + lVar9;" (assignment_expression "lVar6 = lVar6 + lVar9" identifier = (binary_expression "lVar6 + lVar9" identifier + identifier)) ;) (expression_statement "local_48 = pvVar18;" (assignment_expression "local_48 = pvVar18" identifier = identifier) ;) }))) })) (expression_statement "pvVar22 = local_48;" (assignment_expression "pvVar22 = local_48" identifier = identifier) ;) (expression_statement "iVar5 = DAT_0010cc20;" (assignment_expression "iVar5 = DAT_0010cc20" identifier = identifier) ;) (expression_statement "lVar7 = (**(code **)(lVar7 + 0x200))(param_1);" (assignment_expression "lVar7 = (**(code **)(lVar7 + 0x200))(param_1)" identifier = (call_expression "(**(code **)(lVar7 + 0x200))(param_1)" (parenthesized_expression "(**(code **)(lVar7 + 0x200))" ( (pointer_expression "**(code **)(lVar7 + 0x200)" * (pointer_expression "*(code **)(lVar7 + 0x200)" * (cast_expression "(code **)(lVar7 + 0x200)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar7 + 0x200)" ( (binary_expression "lVar7 + 0x200" identifier + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }" if (parenthesized_expression "(lVar7 != 0)" ( (binary_expression "lVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }" { (expression_statement "pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);" (assignment_expression "pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8)" identifier = (cast_expression "(void *)((long)pvVar22 + lVar6 * sVar8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar22 + lVar6 * sVar8)" ( (binary_expression "(long)pvVar22 + lVar6 * sVar8" (cast_expression "(long)pvVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "lVar6 * sVar8" identifier * identifier)) )))) ;) (expression_statement "pvVar15 = pvVar22;" (assignment_expression "pvVar15 = pvVar22" identifier = identifier) ;) (expression_statement "__src = pvVar22;" (assignment_expression "__src = pvVar22" identifier = identifier) ;) (if_statement "if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }" if (parenthesized_expression "(pvVar22 < pvVar18)" ( (binary_expression "pvVar22 < pvVar18" identifier < identifier) )) (compound_statement "{\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }" { (labeled_statement "LAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);" statement_identifier : (do_statement "do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);" do (compound_statement "{\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          }" { (expression_statement "lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);" (assignment_expression "lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7)" identifier = (call_expression "(**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7)" (parenthesized_expression "(**(code **)(param_1[1] + 0x260))" ( (pointer_expression "**(code **)(param_1[1] + 0x260)" * (pointer_expression "*(code **)(param_1[1] + 0x260)" * (cast_expression "(code **)(param_1[1] + 0x260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x260)" ( (binary_expression "param_1[1] + 0x260" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,iVar5,__src,lVar7)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar6 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_00106090(*param_1);\n            }" if (parenthesized_expression "(lVar6 == 0)" ( (binary_expression "lVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_00106090(*param_1);\n            }" { comment (expression_statement "FUN_00106090(*param_1);" (call_expression "FUN_00106090(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))) ;) })) (expression_statement "pcVar2 = *(char **)(lVar6 + 8);" (assignment_expression "pcVar2 = *(char **)(lVar6 + 8)" identifier = (pointer_expression "*(char **)(lVar6 + 8)" * (cast_expression "(char **)(lVar6 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 8)" ( (binary_expression "lVar6 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }" if (parenthesized_expression "((*pcVar2 == '_') && (pcVar2[1] == '_'))" ( (binary_expression "(*pcVar2 == '_') && (pcVar2[1] == '_')" (parenthesized_expression "(*pcVar2 == '_')" ( (binary_expression "*pcVar2 == '_'" (pointer_expression "*pcVar2" * identifier) == (char_literal "'_'" ' character ')) )) && (parenthesized_expression "(pcVar2[1] == '_')" ( (binary_expression "pcVar2[1] == '_'" (subscript_expression "pcVar2[1]" identifier [ number_literal ]) == (char_literal "'_'" ' character ')) ))) )) (compound_statement "{\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }" { (expression_statement "lVar9 = 0xf;" (assignment_expression "lVar9 = 0xf" identifier = number_literal) ;) (expression_statement "bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));" (assignment_expression "bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'))" identifier = (call_expression "CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'))" identifier (argument_list "((ulong)pcVar2,(ulong)(pcVar2[2] == '_'))" ( (cast_expression "(ulong)pcVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) , (call_expression "(ulong)(pcVar2[2] == '_')" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar2[2] == '_')" ( (binary_expression "pcVar2[2] == '_'" (subscript_expression "pcVar2[2]" identifier [ number_literal ]) == (char_literal "'_'" ' character ')) ))) )))) ;) (expression_statement "bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;" (assignment_expression "bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0" identifier = (binary_expression "(byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0" (cast_expression "(byte *)(pcVar2 + (pcVar2[2] == '_'))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + (pcVar2[2] == '_'))" ( (binary_expression "pcVar2 + (pcVar2[2] == '_')" identifier + (parenthesized_expression "(pcVar2[2] == '_')" ( (binary_expression "pcVar2[2] == '_'" (subscript_expression "pcVar2[2]" identifier [ number_literal ]) == (char_literal "'_'" ' character ')) ))) ))) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));" (assignment_expression "pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'))" identifier = (cast_expression "(byte *)(pcVar2 + (pcVar2[2] == '_'))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + (pcVar2[2] == '_'))" ( (binary_expression "pcVar2 + (pcVar2[2] == '_')" identifier + (parenthesized_expression "(pcVar2[2] == '_')" ( (binary_expression "pcVar2[2] == '_'" (subscript_expression "pcVar2[2]" identifier [ number_literal ]) == (char_literal "'_'" ' character ')) ))) )))) ;) (expression_statement "pbVar24 = (byte *)"__gnu_lto_slim";" (assignment_expression "pbVar24 = (byte *)"__gnu_lto_slim"" identifier = (cast_expression "(byte *)"__gnu_lto_slim"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__gnu_lto_slim"" " string_content "))) ;) (do_statement "do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);" do (compound_statement "{\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar23 < *pbVar24;" (assignment_expression "bVar25 = *pbVar23 < *pbVar24" identifier = (binary_expression "*pbVar23 < *pbVar24" (pointer_expression "*pbVar23" * identifier) < (pointer_expression "*pbVar24" * identifier))) ;) (expression_statement "bVar26 = *pbVar23 == *pbVar24;" (assignment_expression "bVar26 = *pbVar23 == *pbVar24" identifier = (binary_expression "*pbVar23 == *pbVar24" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*pbVar24" * identifier))) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar27 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar27 * -2" identifier + (binary_expression "(ulong)bVar27 * -2" (cast_expression "(ulong)bVar27" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;" (assignment_expression "pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1" identifier = (binary_expression "pbVar24 + (ulong)bVar27 * -2 + 1" (binary_expression "pbVar24 + (ulong)bVar27 * -2" identifier + (binary_expression "(ulong)bVar27 * -2" (cast_expression "(ulong)bVar27" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }" if (parenthesized_expression "((!bVar25 && !bVar26) == bVar25)" ( (binary_expression "(!bVar25 && !bVar26) == bVar25" (parenthesized_expression "(!bVar25 && !bVar26)" ( (binary_expression "!bVar25 && !bVar26" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }" { (expression_statement "uVar3 = *param_1;" (assignment_expression "uVar3 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);" (assignment_expression "uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5)" identifier = (call_expression "dcgettext(0,"%s: plugin needed to handle lto object",5)" identifier (argument_list "(0,"%s: plugin needed to handle lto object",5)" ( number_literal , (string_literal ""%s: plugin needed to handle lto object"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_001061b0(uVar11,uVar3);" (call_expression "FUN_001061b0(uVar11,uVar3)" identifier (argument_list "(uVar11,uVar3)" ( identifier , identifier ))) ;) })) })) (if_statement "if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }" if (parenthesized_expression "(DAT_0010cc24 != 0)" ( (binary_expression "DAT_0010cc24 != 0" identifier != number_literal) )) (compound_statement "{\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }" { (if_statement "if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;" if (parenthesized_expression "((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0))))" ( (binary_expression "(*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))" (parenthesized_expression "(*(long *)(lVar6 + 0x20) != 0x10c838)" ( (binary_expression "*(long *)(lVar6 + 0x20) != 0x10c838" (pointer_expression "*(long *)(lVar6 + 0x20)" * (cast_expression "(long *)(lVar6 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))" ( (parenthesized_expression "((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0))" ( (binary_expression "(DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)" (parenthesized_expression "(DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0))" ( (binary_expression "DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)" (binary_expression "DAT_0010cc3c == 0" identifier == number_literal) && (parenthesized_expression "((*(byte *)(lVar6 + 0x18) & 4) != 0)" ( (binary_expression "(*(byte *)(lVar6 + 0x18) & 4) != 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x18) & 4)" ( (binary_expression "*(byte *)(lVar6 + 0x18) & 4" (pointer_expression "*(byte *)(lVar6 + 0x18)" * (cast_expression "(byte *)(lVar6 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(DAT_0010cc28 != 0)" ( (binary_expression "DAT_0010cc28 != 0" identifier != number_literal) ))) )) ))) )) (goto_statement "goto LAB_00104897;" goto statement_identifier ;)) (labeled_statement "LAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }" statement_identifier : (if_statement "if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }" if (parenthesized_expression "((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838))" ( (binary_expression "(DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)" (parenthesized_expression "(DAT_0010cc44 == 0)" ( (binary_expression "DAT_0010cc44 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(long *)(lVar6 + 0x20) != 0x10c838)" ( (binary_expression "*(long *)(lVar6 + 0x20) != 0x10c838" (pointer_expression "*(long *)(lVar6 + 0x20)" * (cast_expression "(long *)(lVar6 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }" { (labeled_statement "LAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);" statement_identifier : (expression_statement "iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);" (assignment_expression "iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6)" identifier = (call_expression "(**(code **)(param_1[1] + 0x228))(param_1,lVar6)" (parenthesized_expression "(**(code **)(param_1[1] + 0x228))" ( (pointer_expression "**(code **)(param_1[1] + 0x228)" * (pointer_expression "*(code **)(param_1[1] + 0x228)" * (cast_expression "(code **)(param_1[1] + 0x228)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x228)" ( (binary_expression "param_1[1] + 0x228" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,lVar6)" ( identifier , identifier )))) ;)) (if_statement "if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }" if (parenthesized_expression "((iVar4 == 0) || (DAT_0010cc10 != 0))" ( (binary_expression "(iVar4 == 0) || (DAT_0010cc10 != 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(DAT_0010cc10 != 0)" ( (binary_expression "DAT_0010cc10 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }" { (if_statement "if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }" if (parenthesized_expression "(__src != pvVar15)" ( (binary_expression "__src != pvVar15" identifier != identifier) )) (compound_statement "{\n                    memcpy(pvVar15,__src,sVar8);\n                  }" { (expression_statement "memcpy(pvVar15,__src,sVar8);" (call_expression "memcpy(pvVar15,__src,sVar8)" identifier (argument_list "(pvVar15,__src,sVar8)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pvVar15 = (void *)((long)pvVar15 + sVar8);" (assignment_expression "pvVar15 = (void *)((long)pvVar15 + sVar8)" identifier = (cast_expression "(void *)((long)pvVar15 + sVar8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar15 + sVar8)" ( (binary_expression "(long)pvVar15 + sVar8" (cast_expression "(long)pvVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) })) }))) (labeled_statement "LAB_00104897:\n              __src = (void *)((long)__src + sVar8);" statement_identifier : (expression_statement "__src = (void *)((long)__src + sVar8);" (assignment_expression "__src = (void *)((long)__src + sVar8)" identifier = (cast_expression "(void *)((long)__src + sVar8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__src + sVar8)" ( (binary_expression "(long)__src + sVar8" (cast_expression "(long)__src" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;)) (if_statement "if (pvVar18 <= __src) break;" if (parenthesized_expression "(pvVar18 <= __src)" ( (binary_expression "pvVar18 <= __src" identifier <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_001048a5;" goto statement_identifier ;) })) (if_statement "if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }" if (parenthesized_expression "(DAT_0010cc48 != 0)" ( (binary_expression "DAT_0010cc48 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }" { (expression_statement "uVar1 = *(uint *)(lVar6 + 0x18);" (assignment_expression "uVar1 = *(uint *)(lVar6 + 0x18)" identifier = (pointer_expression "*(uint *)(lVar6 + 0x18)" * (cast_expression "(uint *)(lVar6 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }" if (parenthesized_expression "((uVar1 & 0x800082) == 0)" ( (binary_expression "(uVar1 & 0x800082) == 0" (parenthesized_expression "(uVar1 & 0x800082)" ( (binary_expression "uVar1 & 0x800082" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }" { (if_statement "if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;" if (parenthesized_expression "(*(long *)(lVar6 + 0x20) == 0x10c838)" ( (binary_expression "*(long *)(lVar6 + 0x20) == 0x10c838" (pointer_expression "*(long *)(lVar6 + 0x20)" * (cast_expression "(long *)(lVar6 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }" { (if_statement "if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;" if (parenthesized_expression "(((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0))))" ( (binary_expression "((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))" (parenthesized_expression "((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0))" ( (binary_expression "(DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)" (parenthesized_expression "(DAT_0010cc3c != 0)" ( (binary_expression "DAT_0010cc3c != 0" identifier != number_literal) )) || (parenthesized_expression "((uVar1 & 4) == 0)" ( (binary_expression "(uVar1 & 4) == 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))" ( (parenthesized_expression "(DAT_0010cc28 == 0 && (DAT_0010cc44 == 0))" ( (binary_expression "DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)" (binary_expression "DAT_0010cc28 == 0" identifier == number_literal) && (parenthesized_expression "(DAT_0010cc44 == 0)" ( (binary_expression "DAT_0010cc44 == 0" identifier == number_literal) ))) )) ))) )) (goto_statement "goto LAB_00104861;" goto statement_identifier ;)) }) (else_clause "else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;" else (if_statement "if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;" if (parenthesized_expression "((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0)" ( (binary_expression "(*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0" (parenthesized_expression "(*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10)" ( (binary_expression "*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10" (pointer_expression "*(byte *)(*(long *)(lVar6 + 0x20) + 0x21)" * (cast_expression "(byte *)(*(long *)(lVar6 + 0x20) + 0x21)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar6 + 0x20) + 0x21)" ( (binary_expression "*(long *)(lVar6 + 0x20) + 0x21" (pointer_expression "*(long *)(lVar6 + 0x20)" * (cast_expression "(long *)(lVar6 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00104913;" goto statement_identifier ;)))) }) (else_clause "else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }" else (compound_statement "{\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }" { (labeled_statement "LAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;" statement_identifier : (if_statement "if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;" if (parenthesized_expression "((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0))" ( (binary_expression "(DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)" (parenthesized_expression "(DAT_0010cc3c != 0)" ( (binary_expression "DAT_0010cc3c != 0" identifier != number_literal) )) || (parenthesized_expression "((uVar1 & 4) == 0)" ( (binary_expression "(uVar1 & 4) == 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00104928;" goto statement_identifier ;))) }))) (goto_statement "goto LAB_00104897;" goto statement_identifier ;) })) (if_statement "if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }" if (parenthesized_expression "((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0))" ( (binary_expression "(DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)" (parenthesized_expression "(DAT_0010cc3c != 0)" ( (binary_expression "DAT_0010cc3c != 0" identifier != number_literal) )) || (parenthesized_expression "((*(byte *)(lVar6 + 0x18) & 4) == 0)" ( (binary_expression "(*(byte *)(lVar6 + 0x18) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x18) & 4)" ( (binary_expression "*(byte *)(lVar6 + 0x18) & 4" (pointer_expression "*(byte *)(lVar6 + 0x18)" * (cast_expression "(byte *)(lVar6 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }" { (labeled_statement "LAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;" statement_identifier : (if_statement "if (DAT_0010cc28 == 0) goto LAB_00104851;" if (parenthesized_expression "(DAT_0010cc28 == 0)" ( (binary_expression "DAT_0010cc28 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00104851;" goto statement_identifier ;))) (if_statement "if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;" if (parenthesized_expression "((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))" ( (binary_expression "(*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950)" (parenthesized_expression "(*(long *)(lVar6 + 0x20) == 0x10c838)" ( (binary_expression "*(long *)(lVar6 + 0x20) == 0x10c838" (pointer_expression "*(long *)(lVar6 + 0x20)" * (cast_expression "(long *)(lVar6 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(long *)(lVar6 + 0x20) == 0x10c950)" ( (binary_expression "*(long *)(lVar6 + 0x20) == 0x10c950" (pointer_expression "*(long *)(lVar6 + 0x20)" * (cast_expression "(long *)(lVar6 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) == number_literal) ))) )) (goto_statement "goto LAB_00104897;" goto statement_identifier ;)) (goto_statement "goto LAB_00104861;" goto statement_identifier ;) })) (expression_statement "__src = (void *)((long)__src + sVar8);" (assignment_expression "__src = (void *)((long)__src + sVar8)" identifier = (cast_expression "(void *)((long)__src + sVar8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__src + sVar8)" ( (binary_expression "(long)__src + sVar8" (cast_expression "(long)__src" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) }) while (parenthesized_expression "(__src < pvVar18)" ( (binary_expression "__src < pvVar18" identifier < identifier) )) ;)) (expression_statement "sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;" (assignment_expression "sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8" identifier = (binary_expression "((long)pvVar15 - (long)pvVar22) / (long)sVar8" (parenthesized_expression "((long)pvVar15 - (long)pvVar22)" ( (binary_expression "(long)pvVar15 - (long)pvVar22" (cast_expression "(long)pvVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pvVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) / (cast_expression "(long)sVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) }) (else_clause "else {\n          sVar8 = 0;\n        }" else (compound_statement "{\n          sVar8 = 0;\n        }" { (expression_statement "sVar8 = 0;" (assignment_expression "sVar8 = 0" identifier = number_literal) ;) }))) (expression_statement "pcVar12 = *(code **)(param_1[1] + 0x200);" (assignment_expression "pcVar12 = *(code **)(param_1[1] + 0x200)" identifier = (pointer_expression "*(code **)(param_1[1] + 0x200)" * (cast_expression "(code **)(param_1[1] + 0x200)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x200)" ( (binary_expression "param_1[1] + 0x200" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }" if (parenthesized_expression "(DAT_0010cc40 == 0)" ( (binary_expression "DAT_0010cc40 == 0" identifier == number_literal) )) (compound_statement "{\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }" { (expression_statement "DAT_0010cbd8 = DAT_0010cc20;" (assignment_expression "DAT_0010cbd8 = DAT_0010cc20" identifier = identifier) ;) (expression_statement "DAT_0010cbe0 = param_1;" (assignment_expression "DAT_0010cbe0 = param_1" identifier = identifier) ;) (expression_statement "DAT_0010cbd0 = (*pcVar12)(param_1);" (assignment_expression "DAT_0010cbd0 = (*pcVar12)(param_1)" identifier = (call_expression "(*pcVar12)(param_1)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);" (assignment_expression "DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1)" identifier = (call_expression "(**(code **)(param_1[1] + 0x200))(param_1)" (parenthesized_expression "(**(code **)(param_1[1] + 0x200))" ( (pointer_expression "**(code **)(param_1[1] + 0x200)" * (pointer_expression "*(code **)(param_1[1] + 0x200)" * (cast_expression "(code **)(param_1[1] + 0x200)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x200)" ( (binary_expression "param_1[1] + 0x200" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pvVar22 = local_48;" (assignment_expression "pvVar22 = local_48" identifier = identifier) ;) (expression_statement "iVar5 = DAT_0010cc20;" (assignment_expression "iVar5 = DAT_0010cc20" identifier = identifier) ;) (if_statement "if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;" if (parenthesized_expression "((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0))" ( (binary_expression "(DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)" (parenthesized_expression "(DAT_0010cbd0 == 0)" ( (binary_expression "DAT_0010cbd0 == 0" identifier == number_literal) )) || (parenthesized_expression "(DAT_0010cbc8 == 0)" ( (binary_expression "DAT_0010cbc8 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00104f21;" goto statement_identifier ;)) (expression_statement "__size = (ulong)local_4c;" (assignment_expression "__size = (ulong)local_4c" identifier = (cast_expression "(ulong)local_4c" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }" if (parenthesized_expression "(DAT_0010cc28 == 0)" ( (binary_expression "DAT_0010cc28 == 0" identifier == number_literal) )) (compound_statement "{\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }" { (expression_statement "qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);" (call_expression "qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2])" identifier (argument_list "(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2])" ( identifier , identifier , identifier , (subscript_expression "(__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]" (call_expression "(__compar_fn_t)(&PTR_FUN_0010bd80)" (parenthesized_expression "(__compar_fn_t)" ( identifier )) (argument_list "(&PTR_FUN_0010bd80)" ( (pointer_expression "&PTR_FUN_0010bd80" & identifier) ))) [ (binary_expression "(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2" (cast_expression "(long)DAT_0010cc30" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(long)DAT_0010cc2c * 2" (cast_expression "(long)DAT_0010cc2c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) ]) ))) ;) (expression_statement "local_68 = (ulong *)0x0;" (assignment_expression "local_68 = (ulong *)0x0" identifier = (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = *(code **)(param_1[1] + 0x200);" (assignment_expression "pcVar12 = *(code **)(param_1[1] + 0x200)" identifier = (pointer_expression "*(code **)(param_1[1] + 0x200)" * (cast_expression "(code **)(param_1[1] + 0x200)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x200)" ( (binary_expression "param_1[1] + 0x200" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) ;) }) (else_clause "else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }" else (compound_statement "{\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }" { (expression_statement "qsort(local_48,sVar8,__size,FUN_00103ec0);" (call_expression "qsort(local_48,sVar8,__size,FUN_00103ec0)" identifier (argument_list "(local_48,sVar8,__size,FUN_00103ec0)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_68 = (ulong *)xmalloc(sVar8 << 4);" (assignment_expression "local_68 = (ulong *)xmalloc(sVar8 << 4)" identifier = (cast_expression "(ulong *)xmalloc(sVar8 << 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar8 << 4)" identifier (argument_list "(sVar8 << 4)" ( (binary_expression "sVar8 << 4" identifier << number_literal) ))))) ;) (expression_statement "lVar7 = DAT_0010cbd0;" (assignment_expression "lVar7 = DAT_0010cbd0" identifier = identifier) ;) (expression_statement "lVar6 = DAT_0010cbc8;" (assignment_expression "lVar6 = DAT_0010cbc8" identifier = identifier) ;) (expression_statement "pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);" (assignment_expression "pvVar18 = (void *)((long)pvVar22 + sVar8 * __size)" identifier = (cast_expression "(void *)((long)pvVar22 + sVar8 * __size)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar22 + sVar8 * __size)" ( (binary_expression "(long)pvVar22 + sVar8 * __size" (cast_expression "(long)pvVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "sVar8 * __size" identifier * identifier)) )))) ;) (if_statement "if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }" if (parenthesized_expression "(pvVar22 < pvVar18)" ( (binary_expression "pvVar22 < pvVar18" identifier < identifier) )) (compound_statement "{\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }" { (expression_statement "lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);" (assignment_expression "lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0)" identifier = (call_expression "(**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0)" (parenthesized_expression "(**(code **)(param_1[1] + 0x260))" ( (pointer_expression "**(code **)(param_1[1] + 0x260)" * (pointer_expression "*(code **)(param_1[1] + 0x260)" * (cast_expression "(code **)(param_1[1] + 0x260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x260)" ( (binary_expression "param_1[1] + 0x260" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,iVar5,pvVar22,DAT_0010cbd0)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar17 = local_68;" (assignment_expression "puVar17 = local_68" identifier = identifier) ;) (if_statement "if (lVar9 == 0) goto LAB_00104f21;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00104f21;" goto statement_identifier ;)) (labeled_statement "LAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);" statement_identifier : (do_statement "do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);" do (compound_statement "{\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              }" { (expression_statement "lVar10 = lVar7;" (assignment_expression "lVar10 = lVar7" identifier = identifier) ;) (expression_statement "lVar7 = lVar6;" (assignment_expression "lVar7 = lVar6" identifier = identifier) ;) (expression_statement "pvVar15 = pvVar22;" (assignment_expression "pvVar15 = pvVar22" identifier = identifier) ;) (expression_statement "pvVar22 = (void *)((long)pvVar15 + __size);" (assignment_expression "pvVar22 = (void *)((long)pvVar15 + __size)" identifier = (cast_expression "(void *)((long)pvVar15 + __size)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar15 + __size)" ( (binary_expression "(long)pvVar15 + __size" (cast_expression "(long)pvVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (expression_statement "lVar6 = lVar10;" (assignment_expression "lVar6 = lVar10" identifier = identifier) ;) (if_statement "if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }" if (parenthesized_expression "(pvVar22 < pvVar18)" ( (binary_expression "pvVar22 < pvVar18" identifier < identifier) )) (compound_statement "{\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }" { (expression_statement "lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);" (assignment_expression "lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7)" identifier = (call_expression "(**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7)" (parenthesized_expression "(**(code **)(param_1[1] + 0x260))" ( (pointer_expression "**(code **)(param_1[1] + 0x260)" * (pointer_expression "*(code **)(param_1[1] + 0x260)" * (cast_expression "(code **)(param_1[1] + 0x260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x260)" ( (binary_expression "param_1[1] + 0x260" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,iVar5,pvVar22,lVar7)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar10 == 0) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    FUN_00106090(*param_1);\n                  }" { comment (expression_statement "FUN_00106090(*param_1);" (call_expression "FUN_00106090(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))) ;) })) (expression_statement "lVar14 = *(long *)(lVar9 + 0x20);" (assignment_expression "lVar14 = *(long *)(lVar9 + 0x20)" identifier = (pointer_expression "*(long *)(lVar9 + 0x20)" * (cast_expression "(long *)(lVar9 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x20)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;" if (parenthesized_expression "((*(uint *)(lVar9 + 0x18) & 0x200100) == 0)" ( (binary_expression "(*(uint *)(lVar9 + 0x18) & 0x200100) == 0" (parenthesized_expression "(*(uint *)(lVar9 + 0x18) & 0x200100)" ( (binary_expression "*(uint *)(lVar9 + 0x18) & 0x200100" (pointer_expression "*(uint *)(lVar9 + 0x18)" * (cast_expression "(uint *)(lVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00104e70;" goto statement_identifier ;)) (expression_statement "uVar13 = *(ulong *)(lVar9 + 0x10);" (assignment_expression "uVar13 = *(ulong *)(lVar9 + 0x10)" identifier = (pointer_expression "*(ulong *)(lVar9 + 0x10)" * (cast_expression "(ulong *)(lVar9 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;" if (parenthesized_expression "(*(long *)(lVar10 + 0x20) != lVar14)" ( (binary_expression "*(long *)(lVar10 + 0x20) != lVar14" (pointer_expression "*(long *)(lVar10 + 0x20)" * (cast_expression "(long *)(lVar10 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x20)" ( (binary_expression "lVar10 + 0x20" identifier + number_literal) )))) != identifier) )) (goto_statement "goto LAB_00104b7b;" goto statement_identifier ;)) (labeled_statement "LAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;" statement_identifier : (expression_statement "uVar13 = *(long *)(lVar10 + 0x10) - uVar13;" (assignment_expression "uVar13 = *(long *)(lVar10 + 0x10) - uVar13" identifier = (binary_expression "*(long *)(lVar10 + 0x10) - uVar13" (pointer_expression "*(long *)(lVar10 + 0x10)" * (cast_expression "(long *)(lVar10 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) )))) - identifier)) ;)) (expression_statement "lVar9 = lVar10;" (assignment_expression "lVar9 = lVar10" identifier = identifier) ;) (if_statement "if (uVar13 == 0) goto LAB_00104bad;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00104bad;" goto statement_identifier ;)) (labeled_statement "LAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;" statement_identifier : (expression_statement "*puVar17 = (ulong)pvVar15;" (assignment_expression "*puVar17 = (ulong)pvVar15" (pointer_expression "*puVar17" * identifier) = (cast_expression "(ulong)pvVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;)) (expression_statement "puVar16 = puVar17 + 2;" (assignment_expression "puVar16 = puVar17 + 2" identifier = (binary_expression "puVar17 + 2" identifier + number_literal)) ;) (expression_statement "puVar17[1] = uVar13;" (assignment_expression "puVar17[1] = uVar13" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }" else (compound_statement "{\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }" { (expression_statement "lVar14 = *(long *)(lVar9 + 0x20);" (assignment_expression "lVar14 = *(long *)(lVar9 + 0x20)" identifier = (pointer_expression "*(long *)(lVar9 + 0x20)" * (cast_expression "(long *)(lVar9 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x20)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (if_statement "if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }" if (parenthesized_expression "((*(uint *)(lVar9 + 0x18) & 0x200100) == 0)" ( (binary_expression "(*(uint *)(lVar9 + 0x18) & 0x200100) == 0" (parenthesized_expression "(*(uint *)(lVar9 + 0x18) & 0x200100)" ( (binary_expression "*(uint *)(lVar9 + 0x18) & 0x200100" (pointer_expression "*(uint *)(lVar9 + 0x18)" * (cast_expression "(uint *)(lVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }" { (labeled_statement "LAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }" statement_identifier : (if_statement "if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }" if (parenthesized_expression "(*(int *)(param_1[1] + 8) == 5)" ( (binary_expression "*(int *)(param_1[1] + 8) == 5" (pointer_expression "*(int *)(param_1[1] + 8)" * (cast_expression "(int *)(param_1[1] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 8)" ( (binary_expression "param_1[1] + 8" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) (compound_statement "{\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }" { (expression_statement "uVar13 = *(ulong *)(lVar9 + 0x38);" (assignment_expression "uVar13 = *(ulong *)(lVar9 + 0x38)" identifier = (pointer_expression "*(ulong *)(lVar9 + 0x38)" * (cast_expression "(ulong *)(lVar9 + 0x38)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x38)" ( (binary_expression "lVar9 + 0x38" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }" else (compound_statement "{\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }" { (expression_statement "uVar13 = *(ulong *)(lVar9 + 0x10);" (assignment_expression "uVar13 = *(ulong *)(lVar9 + 0x10)" identifier = (pointer_expression "*(ulong *)(lVar9 + 0x10)" * (cast_expression "(ulong *)(lVar9 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }" if (parenthesized_expression "((*(byte *)(lVar14 + 0x21) & 0x10) == 0)" ( (binary_expression "(*(byte *)(lVar14 + 0x21) & 0x10) == 0" (parenthesized_expression "(*(byte *)(lVar14 + 0x21) & 0x10)" ( (binary_expression "*(byte *)(lVar14 + 0x21) & 0x10" (pointer_expression "*(byte *)(lVar14 + 0x21)" * (cast_expression "(byte *)(lVar14 + 0x21)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x21)" ( (binary_expression "lVar14 + 0x21" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }" { (if_statement "if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;" if (parenthesized_expression "((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))" ( (binary_expression "(pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14)" (parenthesized_expression "(pvVar22 < pvVar18)" ( (binary_expression "pvVar22 < pvVar18" identifier < identifier) )) && (parenthesized_expression "(*(long *)(lVar10 + 0x20) == lVar14)" ( (binary_expression "*(long *)(lVar10 + 0x20) == lVar14" (pointer_expression "*(long *)(lVar10 + 0x20)" * (cast_expression "(long *)(lVar10 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x20)" ( (binary_expression "lVar10 + 0x20" identifier + number_literal) )))) == identifier) ))) )) (goto_statement "goto LAB_00104ea0;" goto statement_identifier ;)) (goto_statement "goto LAB_00104b7b;" goto statement_identifier ;) })) })))) }) (else_clause "else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }" else (compound_statement "{\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }" { (expression_statement "uVar13 = *(ulong *)(lVar9 + 0x10);" (assignment_expression "uVar13 = *(ulong *)(lVar9 + 0x10)" identifier = (pointer_expression "*(ulong *)(lVar9 + 0x10)" * (cast_expression "(ulong *)(lVar9 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;" statement_identifier : (expression_statement "uVar13 = *(long *)(lVar14 + 0x38) - uVar13;" (assignment_expression "uVar13 = *(long *)(lVar14 + 0x38) - uVar13" identifier = (binary_expression "*(long *)(lVar14 + 0x38) - uVar13" (pointer_expression "*(long *)(lVar14 + 0x38)" * (cast_expression "(long *)(lVar14 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x38)" ( (binary_expression "lVar14 + 0x38" identifier + number_literal) )))) - identifier)) ;)) }))) (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" identifier = identifier) ;) (if_statement "if (uVar13 != 0) goto LAB_00104b8a;" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00104b8a;" goto statement_identifier ;)) }))) (expression_statement "puVar17 = puVar16;" (assignment_expression "puVar17 = puVar16" identifier = identifier) ;) (expression_statement "lVar9 = lVar10;" (assignment_expression "lVar9 = lVar10" identifier = identifier) ;) }) while (parenthesized_expression "(pvVar22 < pvVar18)" ( (binary_expression "pvVar22 < pvVar18" identifier < identifier) )) ;)) (expression_statement "sVar8 = (long)puVar16 - (long)local_68 >> 4;" (assignment_expression "sVar8 = (long)puVar16 - (long)local_68 >> 4" identifier = (binary_expression "(long)puVar16 - (long)local_68 >> 4" (binary_expression "(long)puVar16 - (long)local_68" (cast_expression "(long)puVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)local_68" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal)) ;) }) (else_clause "else {\n              sVar8 = 0;\n            }" else (compound_statement "{\n              sVar8 = 0;\n            }" { (expression_statement "sVar8 = 0;" (assignment_expression "sVar8 = 0" identifier = number_literal) ;) }))) (expression_statement "qsort(local_68,sVar8,0x10,FUN_00105010);" (call_expression "qsort(local_68,sVar8,0x10,FUN_00105010)" identifier (argument_list "(local_68,sVar8,0x10,FUN_00105010)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "pcVar12 = *(code **)(param_1[1] + 0x200);" (assignment_expression "pcVar12 = *(code **)(param_1[1] + 0x200)" identifier = (pointer_expression "*(code **)(param_1[1] + 0x200)" * (cast_expression "(code **)(param_1[1] + 0x200)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x200)" ( (binary_expression "param_1[1] + 0x200" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) ;) }))) }) (else_clause "else {\n          local_68 = (ulong *)0x0;\n        }" else (compound_statement "{\n          local_68 = (ulong *)0x0;\n        }" { (expression_statement "local_68 = (ulong *)0x0;" (assignment_expression "local_68 = (ulong *)0x0" identifier = (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "pvVar22 = local_48;" (assignment_expression "pvVar22 = local_48" identifier = identifier) ;) (expression_statement "iVar5 = DAT_0010cc20;" (assignment_expression "iVar5 = DAT_0010cc20" identifier = identifier) ;) (if_statement "if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }" if (parenthesized_expression "(DAT_0010cc28 == 0)" ( (binary_expression "DAT_0010cc28 == 0" identifier == number_literal) )) (compound_statement "{\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }" { (expression_statement "lVar6 = (*pcVar12)(param_1);" (assignment_expression "lVar6 = (*pcVar12)(param_1)" identifier = (call_expression "(*pcVar12)(param_1)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }" { (expression_statement "pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);" (assignment_expression "pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22)" identifier = (cast_expression "(void *)(sVar8 * local_4c + (long)pvVar22)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar8 * local_4c + (long)pvVar22)" ( (binary_expression "sVar8 * local_4c + (long)pvVar22" (binary_expression "sVar8 * local_4c" identifier * identifier) + (cast_expression "(long)pvVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (for_statement "for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }" for ( ; (binary_expression "pvVar22 < pvVar18" identifier < identifier) ; (assignment_expression "pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)" identifier = (cast_expression "(void *)((long)pvVar22 + (ulong)local_4c)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar22 + (ulong)local_4c)" ( (binary_expression "(long)pvVar22 + (ulong)local_4c" (cast_expression "(long)pvVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)local_4c" ( (type_descriptor "ulong" type_identifier) ) identifier)) )))) ) (compound_statement "{\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }" { (expression_statement "lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);" (assignment_expression "lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6)" identifier = (call_expression "(**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6)" (parenthesized_expression "(**(code **)(param_1[1] + 0x260))" ( (pointer_expression "**(code **)(param_1[1] + 0x260)" * (pointer_expression "*(code **)(param_1[1] + 0x260)" * (cast_expression "(code **)(param_1[1] + 0x260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x260)" ( (binary_expression "param_1[1] + 0x260" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,iVar5,pvVar22,lVar6)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar7 == 0) goto LAB_00104f21;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00104f21;" goto statement_identifier ;)) (expression_statement "FUN_00104200(param_1,lVar7,0,param_2);" (call_expression "FUN_00104200(param_1,lVar7,0,param_2)" identifier (argument_list "(param_1,lVar7,0,param_2)" ( identifier , identifier , number_literal , identifier ))) ;) })) (labeled_statement "LAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }" statement_identifier : (if_statement "if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }" if (parenthesized_expression "(local_40[0] != (void *)0x0)" ( (binary_expression "local_40[0] != (void *)0x0" (subscript_expression "local_40[0]" identifier [ number_literal ]) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              free(local_40[0]);\n            }" { (expression_statement "free(local_40[0]);" (call_expression "free(local_40[0])" identifier (argument_list "(local_40[0])" ( (subscript_expression "local_40[0]" identifier [ number_literal ]) ))) ;) }))) (expression_statement "free(local_48);" (call_expression "free(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) (expression_statement "free(local_68);" (call_expression "free(local_68)" identifier (argument_list "(local_68)" ( identifier ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }" else (compound_statement "{\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }" { (expression_statement "lVar6 = (*pcVar12)(param_1);" (assignment_expression "lVar6 = (*pcVar12)(param_1)" identifier = (call_expression "(*pcVar12)(param_1)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }" { (for_statement "for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }" for ( (assignment_expression "puVar17 = local_68" identifier = identifier) ; (binary_expression "puVar17 < local_68 + sVar8 * 2" identifier < (binary_expression "local_68 + sVar8 * 2" identifier + (binary_expression "sVar8 * 2" identifier * number_literal))) ; (assignment_expression "puVar17 = puVar17 + 2" identifier = (binary_expression "puVar17 + 2" identifier + number_literal)) ) (compound_statement "{\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }" { (expression_statement "lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);" (assignment_expression "lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6)" identifier = (call_expression "(**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6)" (parenthesized_expression "(**(code **)(param_1[1] + 0x260))" ( (pointer_expression "**(code **)(param_1[1] + 0x260)" * (pointer_expression "*(code **)(param_1[1] + 0x260)" * (cast_expression "(code **)(param_1[1] + 0x260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x260)" ( (binary_expression "param_1[1] + 0x260" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,iVar5,*puVar17,lVar6)" ( identifier , identifier , (pointer_expression "*puVar17" * identifier) , identifier )))) ;) (if_statement "if (lVar7 == 0) goto LAB_00104f21;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00104f21;" goto statement_identifier ;)) (expression_statement "FUN_00104200(param_1,lVar7,puVar17[1],param_2);" (call_expression "FUN_00104200(param_1,lVar7,puVar17[1],param_2)" identifier (argument_list "(param_1,lVar7,puVar17[1],param_2)" ( identifier , identifier , (subscript_expression "puVar17[1]" identifier [ number_literal ]) , identifier ))) ;) })) (goto_statement "goto LAB_00104d08;" goto statement_identifier ;) })) }))) })) (labeled_statement "LAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      FUN_00106090(*param_1);" statement_identifier : comment (expression_statement "FUN_00106090(*param_1);" (call_expression "FUN_00106090(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))) ;)) })))) })) (expression_statement "uVar3 = *param_1;" (assignment_expression "uVar3 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar11 = dcgettext(0,"%s: no symbols",5);" (assignment_expression "uVar11 = dcgettext(0,"%s: no symbols",5)" identifier = (call_expression "dcgettext(0,"%s: no symbols",5)" identifier (argument_list "(0,"%s: no symbols",5)" ( number_literal , (string_literal ""%s: no symbols"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_001061b0(uVar11,uVar3);" (call_expression "FUN_001061b0(uVar11,uVar3)" identifier (argument_list "(uVar11,uVar3)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void display_rel_file(bfd *abfd,bfd *archive_bfd)\n\n{\n  uint uVar1;\n  bfd_boolean bVar2;\n  int iVar3;\n  long lVar4;\n  bfd_symbol *pbVar5;\n  asymbol *paVar6;\n  size_t sVar7;\n  asymbol *paVar8;\n  asymbol *paVar9;\n  char *pcVar10;\n  _func_bfd_symbol_ptr_bfd_ptr *p_Var11;\n  long lVar12;\n  bfd_symbol **ppbVar13;\n  char *pcVar14;\n  bfd_section *pbVar15;\n  bfd_symbol **ppbVar16;\n  void *pvVar17;\n  undefined8 *puVar18;\n  undefined8 *puVar19;\n  void *pvVar20;\n  long *plVar21;\n  long *plVar22;\n  void *__src;\n  void *pvVar24;\n  byte *pbVar25;\n  long lVar26;\n  ulong __size;\n  byte *pbVar27;\n  bfd_target *pbVar28;\n  asymbol *paVar29;\n  bool bVar30;\n  bool bVar31;\n  byte bVar32;\n  undefined8 *local_68;\n  uint size;\n  void *minisyms;\n  asymbol *synthsyms;\n  long *plVar23;\n  \n  bVar32 = 0;\n  synthsyms = (asymbol *)0x0;\n  if ((dynamic != 0) || ((abfd->field_0x45 & 2) != 0)) {\n    lVar4 = (*abfd->xvec->_read_minisymbols)(abfd,dynamic,&minisyms,&size);\n    if (lVar4 < 0) {\n      if ((dynamic == 0) || (iVar3 = bfd_get_error(), iVar3 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar4 != 0) {\n      sVar7 = (size_t)size;\n      pbVar28 = abfd->xvec;\n      if ((show_synthetic != 0) && (size == 8)) {\n        if (dynamic == 0) {\n          lVar12 = (*pbVar28->_bfd_get_dynamic_symtab_upper_bound)(abfd);\n          ppbVar16 = (bfd_symbol **)minisyms;\n          lVar26 = lVar4;\n          if (lVar12 < 1) {\n            pbVar28 = abfd->xvec;\n            lVar12 = 0;\n            ppbVar13 = (bfd_symbol **)0x0;\n          }\n          else {\n            ppbVar13 = (bfd_symbol **)xmalloc(lVar12);\n            lVar12 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13);\n            if (lVar12 < 0) goto LAB_00104f21;\n            pbVar28 = abfd->xvec;\n          }\n        }\n        else {\n          lVar26 = 0;\n          ppbVar16 = (bfd_symbol **)0x0;\n          lVar12 = lVar4;\n          ppbVar13 = (bfd_symbol **)minisyms;\n        }\n        lVar12 = (*pbVar28->_bfd_get_synthetic_symtab)\n                           (abfd,lVar26,ppbVar16,lVar12,ppbVar13,&synthsyms);\n        if (lVar12 < 1) {\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n        }\n        else {\n          pvVar24 = (void *)xmalloc((lVar4 + lVar12) * 8 + 8);\n          memcpy(pvVar24,minisyms,lVar4 * 8);\n          plVar21 = (long *)(lVar4 * 8 + (long)pvVar24);\n          paVar6 = synthsyms;\n          plVar22 = plVar21;\n          do {\n            plVar23 = plVar22 + 1;\n            *plVar22 = (long)paVar6;\n            paVar6 = paVar6 + 1;\n            plVar22 = plVar23;\n          } while (plVar23 != plVar21 + lVar12);\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n          *plVar23 = 0;\n          lVar4 = lVar4 + lVar12;\n          minisyms = pvVar24;\n        }\n      }\n      pvVar24 = minisyms;\n      iVar3 = dynamic;\n      pbVar5 = (*pbVar28->_bfd_make_empty_symbol)(abfd);\n      if (pbVar5 != (bfd_symbol *)0x0) {\n        pvVar20 = (void *)((long)pvVar24 + lVar4 * sVar7);\n        pvVar17 = pvVar24;\n        __src = pvVar24;\n        if (pvVar24 < pvVar20) {\nLAB_001048a5:\n          do {\n            paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5);\n            if (paVar6 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              bfd_fatal(abfd->filename);\n            }\n            pcVar14 = paVar6->name;\n            if ((*pcVar14 == '_') && (pcVar14[1] == '_')) {\n              lVar4 = 0xf;\n              bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));\n              bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;\n              pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));\n              pbVar27 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              } while (bVar31);\n              if ((!bVar30 && !bVar31) == bVar30) {\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }\n            }\n            if (undefined_only != 0) {\n              if ((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))\n              goto LAB_00104897;\nLAB_00104851:\n              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar7);\n              if (pvVar20 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (external_only != 0) {\n              uVar1 = paVar6->flags;\n              if ((uVar1 & 0x800082) == 0) {\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((print_debug_syms != 0) || ((paVar6->flags & 4) == 0)) {\nLAB_00104928:\n              if (sort_by_size == 0) goto LAB_00104851;\n              if ((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar7);\n          } while (__src < pvVar20);\n          sVar7 = ((long)pvVar17 - (long)pvVar24) / (long)sVar7;\n        }\n        else {\n          sVar7 = 0;\n        }\n        p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n        if (no_sort == 0) {\n          sort_dynamic = dynamic;\n          sort_bfd = abfd;\n          sort_x = (*p_Var11)(abfd);\n          sort_y = (*abfd->xvec->_bfd_make_empty_symbol)(abfd);\n          pvVar24 = minisyms;\n          iVar3 = dynamic;\n          if ((sort_x == (asymbol *)0x0) || (sort_y == (bfd_symbol *)0x0)) goto LAB_00104f21;\n          __size = (ulong)size;\n          if (sort_by_size == 0) {\n            qsort(minisyms,sVar7,__size,(__compar_fn_t)sorters[sort_numerically][reverse_sort]);\n            local_68 = (undefined8 *)0x0;\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n          else {\n            qsort(minisyms,sVar7,__size,size_forward1);\n            local_68 = (undefined8 *)xmalloc(sVar7 << 4);\n            paVar29 = sort_x;\n            paVar6 = sort_y;\n            pvVar20 = (void *)((long)pvVar24 + sVar7 * __size);\n            if (pvVar24 < pvVar20) {\n              paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);\n              puVar19 = local_68;\n              if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);\n              sVar7 = (long)puVar18 - (long)local_68 >> 4;\n            }\n            else {\n              sVar7 = 0;\n            }\n            qsort(local_68,sVar7,0x10,size_forward2);\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n        }\n        else {\n          local_68 = (undefined8 *)0x0;\n        }\n        pvVar24 = minisyms;\n        iVar3 = dynamic;\n        if (sort_by_size == 0) {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            pvVar20 = (void *)(sVar7 * size + (long)pvVar24);\n            for (; pvVar24 < pvVar20; pvVar24 = (void *)((long)pvVar24 + (ulong)size)) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,0,archive_bfd);\n            }\nLAB_00104d08:\n            if (synthsyms != (asymbol *)0x0) {\n              free(synthsyms);\n            }\n            free(minisyms);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            for (puVar19 = local_68; puVar19 < local_68 + sVar7 * 2; puVar19 = puVar19 + 2) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,puVar19[1],archive_bfd);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      bfd_fatal(abfd->filename);\n    }\n  }\n  pcVar14 = abfd->filename;\n  pcVar10 = (char *)dcgettext(0,"%s: no symbols",5);\n  non_fatal(pcVar10,pcVar14);\n  return;\n}\n\n" (function_definition "void display_rel_file(bfd *abfd,bfd *archive_bfd)\n\n{\n  uint uVar1;\n  bfd_boolean bVar2;\n  int iVar3;\n  long lVar4;\n  bfd_symbol *pbVar5;\n  asymbol *paVar6;\n  size_t sVar7;\n  asymbol *paVar8;\n  asymbol *paVar9;\n  char *pcVar10;\n  _func_bfd_symbol_ptr_bfd_ptr *p_Var11;\n  long lVar12;\n  bfd_symbol **ppbVar13;\n  char *pcVar14;\n  bfd_section *pbVar15;\n  bfd_symbol **ppbVar16;\n  void *pvVar17;\n  undefined8 *puVar18;\n  undefined8 *puVar19;\n  void *pvVar20;\n  long *plVar21;\n  long *plVar22;\n  void *__src;\n  void *pvVar24;\n  byte *pbVar25;\n  long lVar26;\n  ulong __size;\n  byte *pbVar27;\n  bfd_target *pbVar28;\n  asymbol *paVar29;\n  bool bVar30;\n  bool bVar31;\n  byte bVar32;\n  undefined8 *local_68;\n  uint size;\n  void *minisyms;\n  asymbol *synthsyms;\n  long *plVar23;\n  \n  bVar32 = 0;\n  synthsyms = (asymbol *)0x0;\n  if ((dynamic != 0) || ((abfd->field_0x45 & 2) != 0)) {\n    lVar4 = (*abfd->xvec->_read_minisymbols)(abfd,dynamic,&minisyms,&size);\n    if (lVar4 < 0) {\n      if ((dynamic == 0) || (iVar3 = bfd_get_error(), iVar3 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar4 != 0) {\n      sVar7 = (size_t)size;\n      pbVar28 = abfd->xvec;\n      if ((show_synthetic != 0) && (size == 8)) {\n        if (dynamic == 0) {\n          lVar12 = (*pbVar28->_bfd_get_dynamic_symtab_upper_bound)(abfd);\n          ppbVar16 = (bfd_symbol **)minisyms;\n          lVar26 = lVar4;\n          if (lVar12 < 1) {\n            pbVar28 = abfd->xvec;\n            lVar12 = 0;\n            ppbVar13 = (bfd_symbol **)0x0;\n          }\n          else {\n            ppbVar13 = (bfd_symbol **)xmalloc(lVar12);\n            lVar12 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13);\n            if (lVar12 < 0) goto LAB_00104f21;\n            pbVar28 = abfd->xvec;\n          }\n        }\n        else {\n          lVar26 = 0;\n          ppbVar16 = (bfd_symbol **)0x0;\n          lVar12 = lVar4;\n          ppbVar13 = (bfd_symbol **)minisyms;\n        }\n        lVar12 = (*pbVar28->_bfd_get_synthetic_symtab)\n                           (abfd,lVar26,ppbVar16,lVar12,ppbVar13,&synthsyms);\n        if (lVar12 < 1) {\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n        }\n        else {\n          pvVar24 = (void *)xmalloc((lVar4 + lVar12) * 8 + 8);\n          memcpy(pvVar24,minisyms,lVar4 * 8);\n          plVar21 = (long *)(lVar4 * 8 + (long)pvVar24);\n          paVar6 = synthsyms;\n          plVar22 = plVar21;\n          do {\n            plVar23 = plVar22 + 1;\n            *plVar22 = (long)paVar6;\n            paVar6 = paVar6 + 1;\n            plVar22 = plVar23;\n          } while (plVar23 != plVar21 + lVar12);\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n          *plVar23 = 0;\n          lVar4 = lVar4 + lVar12;\n          minisyms = pvVar24;\n        }\n      }\n      pvVar24 = minisyms;\n      iVar3 = dynamic;\n      pbVar5 = (*pbVar28->_bfd_make_empty_symbol)(abfd);\n      if (pbVar5 != (bfd_symbol *)0x0) {\n        pvVar20 = (void *)((long)pvVar24 + lVar4 * sVar7);\n        pvVar17 = pvVar24;\n        __src = pvVar24;\n        if (pvVar24 < pvVar20) {\nLAB_001048a5:\n          do {\n            paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5);\n            if (paVar6 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              bfd_fatal(abfd->filename);\n            }\n            pcVar14 = paVar6->name;\n            if ((*pcVar14 == '_') && (pcVar14[1] == '_')) {\n              lVar4 = 0xf;\n              bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));\n              bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;\n              pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));\n              pbVar27 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              } while (bVar31);\n              if ((!bVar30 && !bVar31) == bVar30) {\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }\n            }\n            if (undefined_only != 0) {\n              if ((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))\n              goto LAB_00104897;\nLAB_00104851:\n              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar7);\n              if (pvVar20 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (external_only != 0) {\n              uVar1 = paVar6->flags;\n              if ((uVar1 & 0x800082) == 0) {\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((print_debug_syms != 0) || ((paVar6->flags & 4) == 0)) {\nLAB_00104928:\n              if (sort_by_size == 0) goto LAB_00104851;\n              if ((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar7);\n          } while (__src < pvVar20);\n          sVar7 = ((long)pvVar17 - (long)pvVar24) / (long)sVar7;\n        }\n        else {\n          sVar7 = 0;\n        }\n        p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n        if (no_sort == 0) {\n          sort_dynamic = dynamic;\n          sort_bfd = abfd;\n          sort_x = (*p_Var11)(abfd);\n          sort_y = (*abfd->xvec->_bfd_make_empty_symbol)(abfd);\n          pvVar24 = minisyms;\n          iVar3 = dynamic;\n          if ((sort_x == (asymbol *)0x0) || (sort_y == (bfd_symbol *)0x0)) goto LAB_00104f21;\n          __size = (ulong)size;\n          if (sort_by_size == 0) {\n            qsort(minisyms,sVar7,__size,(__compar_fn_t)sorters[sort_numerically][reverse_sort]);\n            local_68 = (undefined8 *)0x0;\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n          else {\n            qsort(minisyms,sVar7,__size,size_forward1);\n            local_68 = (undefined8 *)xmalloc(sVar7 << 4);\n            paVar29 = sort_x;\n            paVar6 = sort_y;\n            pvVar20 = (void *)((long)pvVar24 + sVar7 * __size);\n            if (pvVar24 < pvVar20) {\n              paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);\n              puVar19 = local_68;\n              if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);\n              sVar7 = (long)puVar18 - (long)local_68 >> 4;\n            }\n            else {\n              sVar7 = 0;\n            }\n            qsort(local_68,sVar7,0x10,size_forward2);\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n        }\n        else {\n          local_68 = (undefined8 *)0x0;\n        }\n        pvVar24 = minisyms;\n        iVar3 = dynamic;\n        if (sort_by_size == 0) {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            pvVar20 = (void *)(sVar7 * size + (long)pvVar24);\n            for (; pvVar24 < pvVar20; pvVar24 = (void *)((long)pvVar24 + (ulong)size)) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,0,archive_bfd);\n            }\nLAB_00104d08:\n            if (synthsyms != (asymbol *)0x0) {\n              free(synthsyms);\n            }\n            free(minisyms);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            for (puVar19 = local_68; puVar19 < local_68 + sVar7 * 2; puVar19 = puVar19 + 2) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,puVar19[1],archive_bfd);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      bfd_fatal(abfd->filename);\n    }\n  }\n  pcVar14 = abfd->filename;\n  pcVar10 = (char *)dcgettext(0,"%s: no symbols",5);\n  non_fatal(pcVar10,pcVar14);\n  return;\n}" primitive_type (function_declarator "display_rel_file(bfd *abfd,bfd *archive_bfd)" identifier (parameter_list "(bfd *abfd,bfd *archive_bfd)" ( (parameter_declaration "bfd *abfd" type_identifier (pointer_declarator "*abfd" * identifier)) , (parameter_declaration "bfd *archive_bfd" type_identifier (pointer_declarator "*archive_bfd" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  bfd_boolean bVar2;\n  int iVar3;\n  long lVar4;\n  bfd_symbol *pbVar5;\n  asymbol *paVar6;\n  size_t sVar7;\n  asymbol *paVar8;\n  asymbol *paVar9;\n  char *pcVar10;\n  _func_bfd_symbol_ptr_bfd_ptr *p_Var11;\n  long lVar12;\n  bfd_symbol **ppbVar13;\n  char *pcVar14;\n  bfd_section *pbVar15;\n  bfd_symbol **ppbVar16;\n  void *pvVar17;\n  undefined8 *puVar18;\n  undefined8 *puVar19;\n  void *pvVar20;\n  long *plVar21;\n  long *plVar22;\n  void *__src;\n  void *pvVar24;\n  byte *pbVar25;\n  long lVar26;\n  ulong __size;\n  byte *pbVar27;\n  bfd_target *pbVar28;\n  asymbol *paVar29;\n  bool bVar30;\n  bool bVar31;\n  byte bVar32;\n  undefined8 *local_68;\n  uint size;\n  void *minisyms;\n  asymbol *synthsyms;\n  long *plVar23;\n  \n  bVar32 = 0;\n  synthsyms = (asymbol *)0x0;\n  if ((dynamic != 0) || ((abfd->field_0x45 & 2) != 0)) {\n    lVar4 = (*abfd->xvec->_read_minisymbols)(abfd,dynamic,&minisyms,&size);\n    if (lVar4 < 0) {\n      if ((dynamic == 0) || (iVar3 = bfd_get_error(), iVar3 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar4 != 0) {\n      sVar7 = (size_t)size;\n      pbVar28 = abfd->xvec;\n      if ((show_synthetic != 0) && (size == 8)) {\n        if (dynamic == 0) {\n          lVar12 = (*pbVar28->_bfd_get_dynamic_symtab_upper_bound)(abfd);\n          ppbVar16 = (bfd_symbol **)minisyms;\n          lVar26 = lVar4;\n          if (lVar12 < 1) {\n            pbVar28 = abfd->xvec;\n            lVar12 = 0;\n            ppbVar13 = (bfd_symbol **)0x0;\n          }\n          else {\n            ppbVar13 = (bfd_symbol **)xmalloc(lVar12);\n            lVar12 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13);\n            if (lVar12 < 0) goto LAB_00104f21;\n            pbVar28 = abfd->xvec;\n          }\n        }\n        else {\n          lVar26 = 0;\n          ppbVar16 = (bfd_symbol **)0x0;\n          lVar12 = lVar4;\n          ppbVar13 = (bfd_symbol **)minisyms;\n        }\n        lVar12 = (*pbVar28->_bfd_get_synthetic_symtab)\n                           (abfd,lVar26,ppbVar16,lVar12,ppbVar13,&synthsyms);\n        if (lVar12 < 1) {\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n        }\n        else {\n          pvVar24 = (void *)xmalloc((lVar4 + lVar12) * 8 + 8);\n          memcpy(pvVar24,minisyms,lVar4 * 8);\n          plVar21 = (long *)(lVar4 * 8 + (long)pvVar24);\n          paVar6 = synthsyms;\n          plVar22 = plVar21;\n          do {\n            plVar23 = plVar22 + 1;\n            *plVar22 = (long)paVar6;\n            paVar6 = paVar6 + 1;\n            plVar22 = plVar23;\n          } while (plVar23 != plVar21 + lVar12);\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n          *plVar23 = 0;\n          lVar4 = lVar4 + lVar12;\n          minisyms = pvVar24;\n        }\n      }\n      pvVar24 = minisyms;\n      iVar3 = dynamic;\n      pbVar5 = (*pbVar28->_bfd_make_empty_symbol)(abfd);\n      if (pbVar5 != (bfd_symbol *)0x0) {\n        pvVar20 = (void *)((long)pvVar24 + lVar4 * sVar7);\n        pvVar17 = pvVar24;\n        __src = pvVar24;\n        if (pvVar24 < pvVar20) {\nLAB_001048a5:\n          do {\n            paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5);\n            if (paVar6 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              bfd_fatal(abfd->filename);\n            }\n            pcVar14 = paVar6->name;\n            if ((*pcVar14 == '_') && (pcVar14[1] == '_')) {\n              lVar4 = 0xf;\n              bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));\n              bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;\n              pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));\n              pbVar27 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              } while (bVar31);\n              if ((!bVar30 && !bVar31) == bVar30) {\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }\n            }\n            if (undefined_only != 0) {\n              if ((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))\n              goto LAB_00104897;\nLAB_00104851:\n              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar7);\n              if (pvVar20 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (external_only != 0) {\n              uVar1 = paVar6->flags;\n              if ((uVar1 & 0x800082) == 0) {\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((print_debug_syms != 0) || ((paVar6->flags & 4) == 0)) {\nLAB_00104928:\n              if (sort_by_size == 0) goto LAB_00104851;\n              if ((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar7);\n          } while (__src < pvVar20);\n          sVar7 = ((long)pvVar17 - (long)pvVar24) / (long)sVar7;\n        }\n        else {\n          sVar7 = 0;\n        }\n        p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n        if (no_sort == 0) {\n          sort_dynamic = dynamic;\n          sort_bfd = abfd;\n          sort_x = (*p_Var11)(abfd);\n          sort_y = (*abfd->xvec->_bfd_make_empty_symbol)(abfd);\n          pvVar24 = minisyms;\n          iVar3 = dynamic;\n          if ((sort_x == (asymbol *)0x0) || (sort_y == (bfd_symbol *)0x0)) goto LAB_00104f21;\n          __size = (ulong)size;\n          if (sort_by_size == 0) {\n            qsort(minisyms,sVar7,__size,(__compar_fn_t)sorters[sort_numerically][reverse_sort]);\n            local_68 = (undefined8 *)0x0;\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n          else {\n            qsort(minisyms,sVar7,__size,size_forward1);\n            local_68 = (undefined8 *)xmalloc(sVar7 << 4);\n            paVar29 = sort_x;\n            paVar6 = sort_y;\n            pvVar20 = (void *)((long)pvVar24 + sVar7 * __size);\n            if (pvVar24 < pvVar20) {\n              paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);\n              puVar19 = local_68;\n              if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);\n              sVar7 = (long)puVar18 - (long)local_68 >> 4;\n            }\n            else {\n              sVar7 = 0;\n            }\n            qsort(local_68,sVar7,0x10,size_forward2);\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n        }\n        else {\n          local_68 = (undefined8 *)0x0;\n        }\n        pvVar24 = minisyms;\n        iVar3 = dynamic;\n        if (sort_by_size == 0) {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            pvVar20 = (void *)(sVar7 * size + (long)pvVar24);\n            for (; pvVar24 < pvVar20; pvVar24 = (void *)((long)pvVar24 + (ulong)size)) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,0,archive_bfd);\n            }\nLAB_00104d08:\n            if (synthsyms != (asymbol *)0x0) {\n              free(synthsyms);\n            }\n            free(minisyms);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            for (puVar19 = local_68; puVar19 < local_68 + sVar7 * 2; puVar19 = puVar19 + 2) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,puVar19[1],archive_bfd);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      bfd_fatal(abfd->filename);\n    }\n  }\n  pcVar14 = abfd->filename;\n  pcVar10 = (char *)dcgettext(0,"%s: no symbols",5);\n  non_fatal(pcVar10,pcVar14);\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "bfd_boolean bVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "bfd_symbol *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "asymbol *paVar6;" type_identifier (pointer_declarator "*paVar6" * identifier) ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "asymbol *paVar8;" type_identifier (pointer_declarator "*paVar8" * identifier) ;) (declaration "asymbol *paVar9;" type_identifier (pointer_declarator "*paVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "_func_bfd_symbol_ptr_bfd_ptr *p_Var11;" type_identifier (pointer_declarator "*p_Var11" * identifier) ;) (declaration "long lVar12;" (sized_type_specifier "long" long) identifier ;) (declaration "bfd_symbol **ppbVar13;" type_identifier (pointer_declarator "**ppbVar13" * (pointer_declarator "*ppbVar13" * identifier)) ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "bfd_section *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "bfd_symbol **ppbVar16;" type_identifier (pointer_declarator "**ppbVar16" * (pointer_declarator "*ppbVar16" * identifier)) ;) (declaration "void *pvVar17;" primitive_type (pointer_declarator "*pvVar17" * identifier) ;) (declaration "undefined8 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined8 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "void *pvVar20;" primitive_type (pointer_declarator "*pvVar20" * identifier) ;) (declaration "long *plVar21;" (sized_type_specifier "long" long) (pointer_declarator "*plVar21" * identifier) ;) (declaration "long *plVar22;" (sized_type_specifier "long" long) (pointer_declarator "*plVar22" * identifier) ;) (declaration "void *__src;" primitive_type (pointer_declarator "*__src" * identifier) ;) (declaration "void *pvVar24;" primitive_type (pointer_declarator "*pvVar24" * identifier) ;) (declaration "byte *pbVar25;" type_identifier (pointer_declarator "*pbVar25" * identifier) ;) (declaration "long lVar26;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong __size;" type_identifier identifier ;) (declaration "byte *pbVar27;" type_identifier (pointer_declarator "*pbVar27" * identifier) ;) (declaration "bfd_target *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "asymbol *paVar29;" type_identifier (pointer_declarator "*paVar29" * identifier) ;) (declaration "bool bVar30;" primitive_type identifier ;) (declaration "bool bVar31;" primitive_type identifier ;) (declaration "byte bVar32;" type_identifier identifier ;) (declaration "undefined8 *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "uint size;" type_identifier identifier ;) (declaration "void *minisyms;" primitive_type (pointer_declarator "*minisyms" * identifier) ;) (declaration "asymbol *synthsyms;" type_identifier (pointer_declarator "*synthsyms" * identifier) ;) (declaration "long *plVar23;" (sized_type_specifier "long" long) (pointer_declarator "*plVar23" * identifier) ;) (expression_statement "bVar32 = 0;" (assignment_expression "bVar32 = 0" identifier = number_literal) ;) (expression_statement "synthsyms = (asymbol *)0x0;" (assignment_expression "synthsyms = (asymbol *)0x0" identifier = (cast_expression "(asymbol *)0x0" ( (type_descriptor "asymbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((dynamic != 0) || ((abfd->field_0x45 & 2) != 0)) {\n    lVar4 = (*abfd->xvec->_read_minisymbols)(abfd,dynamic,&minisyms,&size);\n    if (lVar4 < 0) {\n      if ((dynamic == 0) || (iVar3 = bfd_get_error(), iVar3 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar4 != 0) {\n      sVar7 = (size_t)size;\n      pbVar28 = abfd->xvec;\n      if ((show_synthetic != 0) && (size == 8)) {\n        if (dynamic == 0) {\n          lVar12 = (*pbVar28->_bfd_get_dynamic_symtab_upper_bound)(abfd);\n          ppbVar16 = (bfd_symbol **)minisyms;\n          lVar26 = lVar4;\n          if (lVar12 < 1) {\n            pbVar28 = abfd->xvec;\n            lVar12 = 0;\n            ppbVar13 = (bfd_symbol **)0x0;\n          }\n          else {\n            ppbVar13 = (bfd_symbol **)xmalloc(lVar12);\n            lVar12 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13);\n            if (lVar12 < 0) goto LAB_00104f21;\n            pbVar28 = abfd->xvec;\n          }\n        }\n        else {\n          lVar26 = 0;\n          ppbVar16 = (bfd_symbol **)0x0;\n          lVar12 = lVar4;\n          ppbVar13 = (bfd_symbol **)minisyms;\n        }\n        lVar12 = (*pbVar28->_bfd_get_synthetic_symtab)\n                           (abfd,lVar26,ppbVar16,lVar12,ppbVar13,&synthsyms);\n        if (lVar12 < 1) {\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n        }\n        else {\n          pvVar24 = (void *)xmalloc((lVar4 + lVar12) * 8 + 8);\n          memcpy(pvVar24,minisyms,lVar4 * 8);\n          plVar21 = (long *)(lVar4 * 8 + (long)pvVar24);\n          paVar6 = synthsyms;\n          plVar22 = plVar21;\n          do {\n            plVar23 = plVar22 + 1;\n            *plVar22 = (long)paVar6;\n            paVar6 = paVar6 + 1;\n            plVar22 = plVar23;\n          } while (plVar23 != plVar21 + lVar12);\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n          *plVar23 = 0;\n          lVar4 = lVar4 + lVar12;\n          minisyms = pvVar24;\n        }\n      }\n      pvVar24 = minisyms;\n      iVar3 = dynamic;\n      pbVar5 = (*pbVar28->_bfd_make_empty_symbol)(abfd);\n      if (pbVar5 != (bfd_symbol *)0x0) {\n        pvVar20 = (void *)((long)pvVar24 + lVar4 * sVar7);\n        pvVar17 = pvVar24;\n        __src = pvVar24;\n        if (pvVar24 < pvVar20) {\nLAB_001048a5:\n          do {\n            paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5);\n            if (paVar6 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              bfd_fatal(abfd->filename);\n            }\n            pcVar14 = paVar6->name;\n            if ((*pcVar14 == '_') && (pcVar14[1] == '_')) {\n              lVar4 = 0xf;\n              bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));\n              bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;\n              pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));\n              pbVar27 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              } while (bVar31);\n              if ((!bVar30 && !bVar31) == bVar30) {\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }\n            }\n            if (undefined_only != 0) {\n              if ((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))\n              goto LAB_00104897;\nLAB_00104851:\n              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar7);\n              if (pvVar20 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (external_only != 0) {\n              uVar1 = paVar6->flags;\n              if ((uVar1 & 0x800082) == 0) {\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((print_debug_syms != 0) || ((paVar6->flags & 4) == 0)) {\nLAB_00104928:\n              if (sort_by_size == 0) goto LAB_00104851;\n              if ((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar7);\n          } while (__src < pvVar20);\n          sVar7 = ((long)pvVar17 - (long)pvVar24) / (long)sVar7;\n        }\n        else {\n          sVar7 = 0;\n        }\n        p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n        if (no_sort == 0) {\n          sort_dynamic = dynamic;\n          sort_bfd = abfd;\n          sort_x = (*p_Var11)(abfd);\n          sort_y = (*abfd->xvec->_bfd_make_empty_symbol)(abfd);\n          pvVar24 = minisyms;\n          iVar3 = dynamic;\n          if ((sort_x == (asymbol *)0x0) || (sort_y == (bfd_symbol *)0x0)) goto LAB_00104f21;\n          __size = (ulong)size;\n          if (sort_by_size == 0) {\n            qsort(minisyms,sVar7,__size,(__compar_fn_t)sorters[sort_numerically][reverse_sort]);\n            local_68 = (undefined8 *)0x0;\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n          else {\n            qsort(minisyms,sVar7,__size,size_forward1);\n            local_68 = (undefined8 *)xmalloc(sVar7 << 4);\n            paVar29 = sort_x;\n            paVar6 = sort_y;\n            pvVar20 = (void *)((long)pvVar24 + sVar7 * __size);\n            if (pvVar24 < pvVar20) {\n              paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);\n              puVar19 = local_68;\n              if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);\n              sVar7 = (long)puVar18 - (long)local_68 >> 4;\n            }\n            else {\n              sVar7 = 0;\n            }\n            qsort(local_68,sVar7,0x10,size_forward2);\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n        }\n        else {\n          local_68 = (undefined8 *)0x0;\n        }\n        pvVar24 = minisyms;\n        iVar3 = dynamic;\n        if (sort_by_size == 0) {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            pvVar20 = (void *)(sVar7 * size + (long)pvVar24);\n            for (; pvVar24 < pvVar20; pvVar24 = (void *)((long)pvVar24 + (ulong)size)) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,0,archive_bfd);\n            }\nLAB_00104d08:\n            if (synthsyms != (asymbol *)0x0) {\n              free(synthsyms);\n            }\n            free(minisyms);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            for (puVar19 = local_68; puVar19 < local_68 + sVar7 * 2; puVar19 = puVar19 + 2) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,puVar19[1],archive_bfd);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      bfd_fatal(abfd->filename);\n    }\n  }" if (parenthesized_expression "((dynamic != 0) || ((abfd->field_0x45 & 2) != 0))" ( (binary_expression "(dynamic != 0) || ((abfd->field_0x45 & 2) != 0)" (parenthesized_expression "(dynamic != 0)" ( (binary_expression "dynamic != 0" identifier != number_literal) )) || (parenthesized_expression "((abfd->field_0x45 & 2) != 0)" ( (binary_expression "(abfd->field_0x45 & 2) != 0" (parenthesized_expression "(abfd->field_0x45 & 2)" ( (binary_expression "abfd->field_0x45 & 2" (field_expression "abfd->field_0x45" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    lVar4 = (*abfd->xvec->_read_minisymbols)(abfd,dynamic,&minisyms,&size);\n    if (lVar4 < 0) {\n      if ((dynamic == 0) || (iVar3 = bfd_get_error(), iVar3 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar4 != 0) {\n      sVar7 = (size_t)size;\n      pbVar28 = abfd->xvec;\n      if ((show_synthetic != 0) && (size == 8)) {\n        if (dynamic == 0) {\n          lVar12 = (*pbVar28->_bfd_get_dynamic_symtab_upper_bound)(abfd);\n          ppbVar16 = (bfd_symbol **)minisyms;\n          lVar26 = lVar4;\n          if (lVar12 < 1) {\n            pbVar28 = abfd->xvec;\n            lVar12 = 0;\n            ppbVar13 = (bfd_symbol **)0x0;\n          }\n          else {\n            ppbVar13 = (bfd_symbol **)xmalloc(lVar12);\n            lVar12 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13);\n            if (lVar12 < 0) goto LAB_00104f21;\n            pbVar28 = abfd->xvec;\n          }\n        }\n        else {\n          lVar26 = 0;\n          ppbVar16 = (bfd_symbol **)0x0;\n          lVar12 = lVar4;\n          ppbVar13 = (bfd_symbol **)minisyms;\n        }\n        lVar12 = (*pbVar28->_bfd_get_synthetic_symtab)\n                           (abfd,lVar26,ppbVar16,lVar12,ppbVar13,&synthsyms);\n        if (lVar12 < 1) {\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n        }\n        else {\n          pvVar24 = (void *)xmalloc((lVar4 + lVar12) * 8 + 8);\n          memcpy(pvVar24,minisyms,lVar4 * 8);\n          plVar21 = (long *)(lVar4 * 8 + (long)pvVar24);\n          paVar6 = synthsyms;\n          plVar22 = plVar21;\n          do {\n            plVar23 = plVar22 + 1;\n            *plVar22 = (long)paVar6;\n            paVar6 = paVar6 + 1;\n            plVar22 = plVar23;\n          } while (plVar23 != plVar21 + lVar12);\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n          *plVar23 = 0;\n          lVar4 = lVar4 + lVar12;\n          minisyms = pvVar24;\n        }\n      }\n      pvVar24 = minisyms;\n      iVar3 = dynamic;\n      pbVar5 = (*pbVar28->_bfd_make_empty_symbol)(abfd);\n      if (pbVar5 != (bfd_symbol *)0x0) {\n        pvVar20 = (void *)((long)pvVar24 + lVar4 * sVar7);\n        pvVar17 = pvVar24;\n        __src = pvVar24;\n        if (pvVar24 < pvVar20) {\nLAB_001048a5:\n          do {\n            paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5);\n            if (paVar6 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              bfd_fatal(abfd->filename);\n            }\n            pcVar14 = paVar6->name;\n            if ((*pcVar14 == '_') && (pcVar14[1] == '_')) {\n              lVar4 = 0xf;\n              bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));\n              bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;\n              pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));\n              pbVar27 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              } while (bVar31);\n              if ((!bVar30 && !bVar31) == bVar30) {\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }\n            }\n            if (undefined_only != 0) {\n              if ((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))\n              goto LAB_00104897;\nLAB_00104851:\n              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar7);\n              if (pvVar20 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (external_only != 0) {\n              uVar1 = paVar6->flags;\n              if ((uVar1 & 0x800082) == 0) {\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((print_debug_syms != 0) || ((paVar6->flags & 4) == 0)) {\nLAB_00104928:\n              if (sort_by_size == 0) goto LAB_00104851;\n              if ((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar7);\n          } while (__src < pvVar20);\n          sVar7 = ((long)pvVar17 - (long)pvVar24) / (long)sVar7;\n        }\n        else {\n          sVar7 = 0;\n        }\n        p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n        if (no_sort == 0) {\n          sort_dynamic = dynamic;\n          sort_bfd = abfd;\n          sort_x = (*p_Var11)(abfd);\n          sort_y = (*abfd->xvec->_bfd_make_empty_symbol)(abfd);\n          pvVar24 = minisyms;\n          iVar3 = dynamic;\n          if ((sort_x == (asymbol *)0x0) || (sort_y == (bfd_symbol *)0x0)) goto LAB_00104f21;\n          __size = (ulong)size;\n          if (sort_by_size == 0) {\n            qsort(minisyms,sVar7,__size,(__compar_fn_t)sorters[sort_numerically][reverse_sort]);\n            local_68 = (undefined8 *)0x0;\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n          else {\n            qsort(minisyms,sVar7,__size,size_forward1);\n            local_68 = (undefined8 *)xmalloc(sVar7 << 4);\n            paVar29 = sort_x;\n            paVar6 = sort_y;\n            pvVar20 = (void *)((long)pvVar24 + sVar7 * __size);\n            if (pvVar24 < pvVar20) {\n              paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);\n              puVar19 = local_68;\n              if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);\n              sVar7 = (long)puVar18 - (long)local_68 >> 4;\n            }\n            else {\n              sVar7 = 0;\n            }\n            qsort(local_68,sVar7,0x10,size_forward2);\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n        }\n        else {\n          local_68 = (undefined8 *)0x0;\n        }\n        pvVar24 = minisyms;\n        iVar3 = dynamic;\n        if (sort_by_size == 0) {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            pvVar20 = (void *)(sVar7 * size + (long)pvVar24);\n            for (; pvVar24 < pvVar20; pvVar24 = (void *)((long)pvVar24 + (ulong)size)) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,0,archive_bfd);\n            }\nLAB_00104d08:\n            if (synthsyms != (asymbol *)0x0) {\n              free(synthsyms);\n            }\n            free(minisyms);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            for (puVar19 = local_68; puVar19 < local_68 + sVar7 * 2; puVar19 = puVar19 + 2) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,puVar19[1],archive_bfd);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      bfd_fatal(abfd->filename);\n    }\n  }" { (expression_statement "lVar4 = (*abfd->xvec->_read_minisymbols)(abfd,dynamic,&minisyms,&size);" (assignment_expression "lVar4 = (*abfd->xvec->_read_minisymbols)(abfd,dynamic,&minisyms,&size)" identifier = (call_expression "(*abfd->xvec->_read_minisymbols)(abfd,dynamic,&minisyms,&size)" (parenthesized_expression "(*abfd->xvec->_read_minisymbols)" ( (pointer_expression "*abfd->xvec->_read_minisymbols" * (field_expression "abfd->xvec->_read_minisymbols" (field_expression "abfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(abfd,dynamic,&minisyms,&size)" ( identifier , identifier , (pointer_expression "&minisyms" & identifier) , (pointer_expression "&size" & identifier) )))) ;) (if_statement "if (lVar4 < 0) {\n      if ((dynamic == 0) || (iVar3 = bfd_get_error(), iVar3 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar4 != 0) {\n      sVar7 = (size_t)size;\n      pbVar28 = abfd->xvec;\n      if ((show_synthetic != 0) && (size == 8)) {\n        if (dynamic == 0) {\n          lVar12 = (*pbVar28->_bfd_get_dynamic_symtab_upper_bound)(abfd);\n          ppbVar16 = (bfd_symbol **)minisyms;\n          lVar26 = lVar4;\n          if (lVar12 < 1) {\n            pbVar28 = abfd->xvec;\n            lVar12 = 0;\n            ppbVar13 = (bfd_symbol **)0x0;\n          }\n          else {\n            ppbVar13 = (bfd_symbol **)xmalloc(lVar12);\n            lVar12 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13);\n            if (lVar12 < 0) goto LAB_00104f21;\n            pbVar28 = abfd->xvec;\n          }\n        }\n        else {\n          lVar26 = 0;\n          ppbVar16 = (bfd_symbol **)0x0;\n          lVar12 = lVar4;\n          ppbVar13 = (bfd_symbol **)minisyms;\n        }\n        lVar12 = (*pbVar28->_bfd_get_synthetic_symtab)\n                           (abfd,lVar26,ppbVar16,lVar12,ppbVar13,&synthsyms);\n        if (lVar12 < 1) {\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n        }\n        else {\n          pvVar24 = (void *)xmalloc((lVar4 + lVar12) * 8 + 8);\n          memcpy(pvVar24,minisyms,lVar4 * 8);\n          plVar21 = (long *)(lVar4 * 8 + (long)pvVar24);\n          paVar6 = synthsyms;\n          plVar22 = plVar21;\n          do {\n            plVar23 = plVar22 + 1;\n            *plVar22 = (long)paVar6;\n            paVar6 = paVar6 + 1;\n            plVar22 = plVar23;\n          } while (plVar23 != plVar21 + lVar12);\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n          *plVar23 = 0;\n          lVar4 = lVar4 + lVar12;\n          minisyms = pvVar24;\n        }\n      }\n      pvVar24 = minisyms;\n      iVar3 = dynamic;\n      pbVar5 = (*pbVar28->_bfd_make_empty_symbol)(abfd);\n      if (pbVar5 != (bfd_symbol *)0x0) {\n        pvVar20 = (void *)((long)pvVar24 + lVar4 * sVar7);\n        pvVar17 = pvVar24;\n        __src = pvVar24;\n        if (pvVar24 < pvVar20) {\nLAB_001048a5:\n          do {\n            paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5);\n            if (paVar6 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              bfd_fatal(abfd->filename);\n            }\n            pcVar14 = paVar6->name;\n            if ((*pcVar14 == '_') && (pcVar14[1] == '_')) {\n              lVar4 = 0xf;\n              bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));\n              bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;\n              pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));\n              pbVar27 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              } while (bVar31);\n              if ((!bVar30 && !bVar31) == bVar30) {\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }\n            }\n            if (undefined_only != 0) {\n              if ((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))\n              goto LAB_00104897;\nLAB_00104851:\n              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar7);\n              if (pvVar20 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (external_only != 0) {\n              uVar1 = paVar6->flags;\n              if ((uVar1 & 0x800082) == 0) {\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((print_debug_syms != 0) || ((paVar6->flags & 4) == 0)) {\nLAB_00104928:\n              if (sort_by_size == 0) goto LAB_00104851;\n              if ((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar7);\n          } while (__src < pvVar20);\n          sVar7 = ((long)pvVar17 - (long)pvVar24) / (long)sVar7;\n        }\n        else {\n          sVar7 = 0;\n        }\n        p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n        if (no_sort == 0) {\n          sort_dynamic = dynamic;\n          sort_bfd = abfd;\n          sort_x = (*p_Var11)(abfd);\n          sort_y = (*abfd->xvec->_bfd_make_empty_symbol)(abfd);\n          pvVar24 = minisyms;\n          iVar3 = dynamic;\n          if ((sort_x == (asymbol *)0x0) || (sort_y == (bfd_symbol *)0x0)) goto LAB_00104f21;\n          __size = (ulong)size;\n          if (sort_by_size == 0) {\n            qsort(minisyms,sVar7,__size,(__compar_fn_t)sorters[sort_numerically][reverse_sort]);\n            local_68 = (undefined8 *)0x0;\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n          else {\n            qsort(minisyms,sVar7,__size,size_forward1);\n            local_68 = (undefined8 *)xmalloc(sVar7 << 4);\n            paVar29 = sort_x;\n            paVar6 = sort_y;\n            pvVar20 = (void *)((long)pvVar24 + sVar7 * __size);\n            if (pvVar24 < pvVar20) {\n              paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);\n              puVar19 = local_68;\n              if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);\n              sVar7 = (long)puVar18 - (long)local_68 >> 4;\n            }\n            else {\n              sVar7 = 0;\n            }\n            qsort(local_68,sVar7,0x10,size_forward2);\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n        }\n        else {\n          local_68 = (undefined8 *)0x0;\n        }\n        pvVar24 = minisyms;\n        iVar3 = dynamic;\n        if (sort_by_size == 0) {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            pvVar20 = (void *)(sVar7 * size + (long)pvVar24);\n            for (; pvVar24 < pvVar20; pvVar24 = (void *)((long)pvVar24 + (ulong)size)) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,0,archive_bfd);\n            }\nLAB_00104d08:\n            if (synthsyms != (asymbol *)0x0) {\n              free(synthsyms);\n            }\n            free(minisyms);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            for (puVar19 = local_68; puVar19 < local_68 + sVar7 * 2; puVar19 = puVar19 + 2) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,puVar19[1],archive_bfd);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      bfd_fatal(abfd->filename);\n    }" if (parenthesized_expression "(lVar4 < 0)" ( (binary_expression "lVar4 < 0" identifier < number_literal) )) (compound_statement "{\n      if ((dynamic == 0) || (iVar3 = bfd_get_error(), iVar3 != 7)) goto LAB_00104f21;\n    }" { (if_statement "if ((dynamic == 0) || (iVar3 = bfd_get_error(), iVar3 != 7)) goto LAB_00104f21;" if (parenthesized_expression "((dynamic == 0) || (iVar3 = bfd_get_error(), iVar3 != 7))" ( (binary_expression "(dynamic == 0) || (iVar3 = bfd_get_error(), iVar3 != 7)" (parenthesized_expression "(dynamic == 0)" ( (binary_expression "dynamic == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = bfd_get_error(), iVar3 != 7)" ( (comma_expression "iVar3 = bfd_get_error(), iVar3 != 7" (assignment_expression "iVar3 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) , (binary_expression "iVar3 != 7" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00104f21;" goto statement_identifier ;)) }) (else_clause "else if (lVar4 != 0) {\n      sVar7 = (size_t)size;\n      pbVar28 = abfd->xvec;\n      if ((show_synthetic != 0) && (size == 8)) {\n        if (dynamic == 0) {\n          lVar12 = (*pbVar28->_bfd_get_dynamic_symtab_upper_bound)(abfd);\n          ppbVar16 = (bfd_symbol **)minisyms;\n          lVar26 = lVar4;\n          if (lVar12 < 1) {\n            pbVar28 = abfd->xvec;\n            lVar12 = 0;\n            ppbVar13 = (bfd_symbol **)0x0;\n          }\n          else {\n            ppbVar13 = (bfd_symbol **)xmalloc(lVar12);\n            lVar12 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13);\n            if (lVar12 < 0) goto LAB_00104f21;\n            pbVar28 = abfd->xvec;\n          }\n        }\n        else {\n          lVar26 = 0;\n          ppbVar16 = (bfd_symbol **)0x0;\n          lVar12 = lVar4;\n          ppbVar13 = (bfd_symbol **)minisyms;\n        }\n        lVar12 = (*pbVar28->_bfd_get_synthetic_symtab)\n                           (abfd,lVar26,ppbVar16,lVar12,ppbVar13,&synthsyms);\n        if (lVar12 < 1) {\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n        }\n        else {\n          pvVar24 = (void *)xmalloc((lVar4 + lVar12) * 8 + 8);\n          memcpy(pvVar24,minisyms,lVar4 * 8);\n          plVar21 = (long *)(lVar4 * 8 + (long)pvVar24);\n          paVar6 = synthsyms;\n          plVar22 = plVar21;\n          do {\n            plVar23 = plVar22 + 1;\n            *plVar22 = (long)paVar6;\n            paVar6 = paVar6 + 1;\n            plVar22 = plVar23;\n          } while (plVar23 != plVar21 + lVar12);\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n          *plVar23 = 0;\n          lVar4 = lVar4 + lVar12;\n          minisyms = pvVar24;\n        }\n      }\n      pvVar24 = minisyms;\n      iVar3 = dynamic;\n      pbVar5 = (*pbVar28->_bfd_make_empty_symbol)(abfd);\n      if (pbVar5 != (bfd_symbol *)0x0) {\n        pvVar20 = (void *)((long)pvVar24 + lVar4 * sVar7);\n        pvVar17 = pvVar24;\n        __src = pvVar24;\n        if (pvVar24 < pvVar20) {\nLAB_001048a5:\n          do {\n            paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5);\n            if (paVar6 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              bfd_fatal(abfd->filename);\n            }\n            pcVar14 = paVar6->name;\n            if ((*pcVar14 == '_') && (pcVar14[1] == '_')) {\n              lVar4 = 0xf;\n              bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));\n              bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;\n              pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));\n              pbVar27 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              } while (bVar31);\n              if ((!bVar30 && !bVar31) == bVar30) {\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }\n            }\n            if (undefined_only != 0) {\n              if ((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))\n              goto LAB_00104897;\nLAB_00104851:\n              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar7);\n              if (pvVar20 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (external_only != 0) {\n              uVar1 = paVar6->flags;\n              if ((uVar1 & 0x800082) == 0) {\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((print_debug_syms != 0) || ((paVar6->flags & 4) == 0)) {\nLAB_00104928:\n              if (sort_by_size == 0) goto LAB_00104851;\n              if ((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar7);\n          } while (__src < pvVar20);\n          sVar7 = ((long)pvVar17 - (long)pvVar24) / (long)sVar7;\n        }\n        else {\n          sVar7 = 0;\n        }\n        p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n        if (no_sort == 0) {\n          sort_dynamic = dynamic;\n          sort_bfd = abfd;\n          sort_x = (*p_Var11)(abfd);\n          sort_y = (*abfd->xvec->_bfd_make_empty_symbol)(abfd);\n          pvVar24 = minisyms;\n          iVar3 = dynamic;\n          if ((sort_x == (asymbol *)0x0) || (sort_y == (bfd_symbol *)0x0)) goto LAB_00104f21;\n          __size = (ulong)size;\n          if (sort_by_size == 0) {\n            qsort(minisyms,sVar7,__size,(__compar_fn_t)sorters[sort_numerically][reverse_sort]);\n            local_68 = (undefined8 *)0x0;\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n          else {\n            qsort(minisyms,sVar7,__size,size_forward1);\n            local_68 = (undefined8 *)xmalloc(sVar7 << 4);\n            paVar29 = sort_x;\n            paVar6 = sort_y;\n            pvVar20 = (void *)((long)pvVar24 + sVar7 * __size);\n            if (pvVar24 < pvVar20) {\n              paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);\n              puVar19 = local_68;\n              if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);\n              sVar7 = (long)puVar18 - (long)local_68 >> 4;\n            }\n            else {\n              sVar7 = 0;\n            }\n            qsort(local_68,sVar7,0x10,size_forward2);\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n        }\n        else {\n          local_68 = (undefined8 *)0x0;\n        }\n        pvVar24 = minisyms;\n        iVar3 = dynamic;\n        if (sort_by_size == 0) {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            pvVar20 = (void *)(sVar7 * size + (long)pvVar24);\n            for (; pvVar24 < pvVar20; pvVar24 = (void *)((long)pvVar24 + (ulong)size)) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,0,archive_bfd);\n            }\nLAB_00104d08:\n            if (synthsyms != (asymbol *)0x0) {\n              free(synthsyms);\n            }\n            free(minisyms);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            for (puVar19 = local_68; puVar19 < local_68 + sVar7 * 2; puVar19 = puVar19 + 2) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,puVar19[1],archive_bfd);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      bfd_fatal(abfd->filename);\n    }" else (if_statement "if (lVar4 != 0) {\n      sVar7 = (size_t)size;\n      pbVar28 = abfd->xvec;\n      if ((show_synthetic != 0) && (size == 8)) {\n        if (dynamic == 0) {\n          lVar12 = (*pbVar28->_bfd_get_dynamic_symtab_upper_bound)(abfd);\n          ppbVar16 = (bfd_symbol **)minisyms;\n          lVar26 = lVar4;\n          if (lVar12 < 1) {\n            pbVar28 = abfd->xvec;\n            lVar12 = 0;\n            ppbVar13 = (bfd_symbol **)0x0;\n          }\n          else {\n            ppbVar13 = (bfd_symbol **)xmalloc(lVar12);\n            lVar12 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13);\n            if (lVar12 < 0) goto LAB_00104f21;\n            pbVar28 = abfd->xvec;\n          }\n        }\n        else {\n          lVar26 = 0;\n          ppbVar16 = (bfd_symbol **)0x0;\n          lVar12 = lVar4;\n          ppbVar13 = (bfd_symbol **)minisyms;\n        }\n        lVar12 = (*pbVar28->_bfd_get_synthetic_symtab)\n                           (abfd,lVar26,ppbVar16,lVar12,ppbVar13,&synthsyms);\n        if (lVar12 < 1) {\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n        }\n        else {\n          pvVar24 = (void *)xmalloc((lVar4 + lVar12) * 8 + 8);\n          memcpy(pvVar24,minisyms,lVar4 * 8);\n          plVar21 = (long *)(lVar4 * 8 + (long)pvVar24);\n          paVar6 = synthsyms;\n          plVar22 = plVar21;\n          do {\n            plVar23 = plVar22 + 1;\n            *plVar22 = (long)paVar6;\n            paVar6 = paVar6 + 1;\n            plVar22 = plVar23;\n          } while (plVar23 != plVar21 + lVar12);\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n          *plVar23 = 0;\n          lVar4 = lVar4 + lVar12;\n          minisyms = pvVar24;\n        }\n      }\n      pvVar24 = minisyms;\n      iVar3 = dynamic;\n      pbVar5 = (*pbVar28->_bfd_make_empty_symbol)(abfd);\n      if (pbVar5 != (bfd_symbol *)0x0) {\n        pvVar20 = (void *)((long)pvVar24 + lVar4 * sVar7);\n        pvVar17 = pvVar24;\n        __src = pvVar24;\n        if (pvVar24 < pvVar20) {\nLAB_001048a5:\n          do {\n            paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5);\n            if (paVar6 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              bfd_fatal(abfd->filename);\n            }\n            pcVar14 = paVar6->name;\n            if ((*pcVar14 == '_') && (pcVar14[1] == '_')) {\n              lVar4 = 0xf;\n              bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));\n              bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;\n              pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));\n              pbVar27 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              } while (bVar31);\n              if ((!bVar30 && !bVar31) == bVar30) {\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }\n            }\n            if (undefined_only != 0) {\n              if ((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))\n              goto LAB_00104897;\nLAB_00104851:\n              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar7);\n              if (pvVar20 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (external_only != 0) {\n              uVar1 = paVar6->flags;\n              if ((uVar1 & 0x800082) == 0) {\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((print_debug_syms != 0) || ((paVar6->flags & 4) == 0)) {\nLAB_00104928:\n              if (sort_by_size == 0) goto LAB_00104851;\n              if ((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar7);\n          } while (__src < pvVar20);\n          sVar7 = ((long)pvVar17 - (long)pvVar24) / (long)sVar7;\n        }\n        else {\n          sVar7 = 0;\n        }\n        p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n        if (no_sort == 0) {\n          sort_dynamic = dynamic;\n          sort_bfd = abfd;\n          sort_x = (*p_Var11)(abfd);\n          sort_y = (*abfd->xvec->_bfd_make_empty_symbol)(abfd);\n          pvVar24 = minisyms;\n          iVar3 = dynamic;\n          if ((sort_x == (asymbol *)0x0) || (sort_y == (bfd_symbol *)0x0)) goto LAB_00104f21;\n          __size = (ulong)size;\n          if (sort_by_size == 0) {\n            qsort(minisyms,sVar7,__size,(__compar_fn_t)sorters[sort_numerically][reverse_sort]);\n            local_68 = (undefined8 *)0x0;\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n          else {\n            qsort(minisyms,sVar7,__size,size_forward1);\n            local_68 = (undefined8 *)xmalloc(sVar7 << 4);\n            paVar29 = sort_x;\n            paVar6 = sort_y;\n            pvVar20 = (void *)((long)pvVar24 + sVar7 * __size);\n            if (pvVar24 < pvVar20) {\n              paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);\n              puVar19 = local_68;\n              if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);\n              sVar7 = (long)puVar18 - (long)local_68 >> 4;\n            }\n            else {\n              sVar7 = 0;\n            }\n            qsort(local_68,sVar7,0x10,size_forward2);\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n        }\n        else {\n          local_68 = (undefined8 *)0x0;\n        }\n        pvVar24 = minisyms;\n        iVar3 = dynamic;\n        if (sort_by_size == 0) {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            pvVar20 = (void *)(sVar7 * size + (long)pvVar24);\n            for (; pvVar24 < pvVar20; pvVar24 = (void *)((long)pvVar24 + (ulong)size)) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,0,archive_bfd);\n            }\nLAB_00104d08:\n            if (synthsyms != (asymbol *)0x0) {\n              free(synthsyms);\n            }\n            free(minisyms);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            for (puVar19 = local_68; puVar19 < local_68 + sVar7 * 2; puVar19 = puVar19 + 2) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,puVar19[1],archive_bfd);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      bfd_fatal(abfd->filename);\n    }" if (parenthesized_expression "(lVar4 != 0)" ( (binary_expression "lVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      sVar7 = (size_t)size;\n      pbVar28 = abfd->xvec;\n      if ((show_synthetic != 0) && (size == 8)) {\n        if (dynamic == 0) {\n          lVar12 = (*pbVar28->_bfd_get_dynamic_symtab_upper_bound)(abfd);\n          ppbVar16 = (bfd_symbol **)minisyms;\n          lVar26 = lVar4;\n          if (lVar12 < 1) {\n            pbVar28 = abfd->xvec;\n            lVar12 = 0;\n            ppbVar13 = (bfd_symbol **)0x0;\n          }\n          else {\n            ppbVar13 = (bfd_symbol **)xmalloc(lVar12);\n            lVar12 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13);\n            if (lVar12 < 0) goto LAB_00104f21;\n            pbVar28 = abfd->xvec;\n          }\n        }\n        else {\n          lVar26 = 0;\n          ppbVar16 = (bfd_symbol **)0x0;\n          lVar12 = lVar4;\n          ppbVar13 = (bfd_symbol **)minisyms;\n        }\n        lVar12 = (*pbVar28->_bfd_get_synthetic_symtab)\n                           (abfd,lVar26,ppbVar16,lVar12,ppbVar13,&synthsyms);\n        if (lVar12 < 1) {\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n        }\n        else {\n          pvVar24 = (void *)xmalloc((lVar4 + lVar12) * 8 + 8);\n          memcpy(pvVar24,minisyms,lVar4 * 8);\n          plVar21 = (long *)(lVar4 * 8 + (long)pvVar24);\n          paVar6 = synthsyms;\n          plVar22 = plVar21;\n          do {\n            plVar23 = plVar22 + 1;\n            *plVar22 = (long)paVar6;\n            paVar6 = paVar6 + 1;\n            plVar22 = plVar23;\n          } while (plVar23 != plVar21 + lVar12);\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n          *plVar23 = 0;\n          lVar4 = lVar4 + lVar12;\n          minisyms = pvVar24;\n        }\n      }\n      pvVar24 = minisyms;\n      iVar3 = dynamic;\n      pbVar5 = (*pbVar28->_bfd_make_empty_symbol)(abfd);\n      if (pbVar5 != (bfd_symbol *)0x0) {\n        pvVar20 = (void *)((long)pvVar24 + lVar4 * sVar7);\n        pvVar17 = pvVar24;\n        __src = pvVar24;\n        if (pvVar24 < pvVar20) {\nLAB_001048a5:\n          do {\n            paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5);\n            if (paVar6 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              bfd_fatal(abfd->filename);\n            }\n            pcVar14 = paVar6->name;\n            if ((*pcVar14 == '_') && (pcVar14[1] == '_')) {\n              lVar4 = 0xf;\n              bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));\n              bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;\n              pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));\n              pbVar27 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              } while (bVar31);\n              if ((!bVar30 && !bVar31) == bVar30) {\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }\n            }\n            if (undefined_only != 0) {\n              if ((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))\n              goto LAB_00104897;\nLAB_00104851:\n              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar7);\n              if (pvVar20 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (external_only != 0) {\n              uVar1 = paVar6->flags;\n              if ((uVar1 & 0x800082) == 0) {\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((print_debug_syms != 0) || ((paVar6->flags & 4) == 0)) {\nLAB_00104928:\n              if (sort_by_size == 0) goto LAB_00104851;\n              if ((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar7);\n          } while (__src < pvVar20);\n          sVar7 = ((long)pvVar17 - (long)pvVar24) / (long)sVar7;\n        }\n        else {\n          sVar7 = 0;\n        }\n        p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n        if (no_sort == 0) {\n          sort_dynamic = dynamic;\n          sort_bfd = abfd;\n          sort_x = (*p_Var11)(abfd);\n          sort_y = (*abfd->xvec->_bfd_make_empty_symbol)(abfd);\n          pvVar24 = minisyms;\n          iVar3 = dynamic;\n          if ((sort_x == (asymbol *)0x0) || (sort_y == (bfd_symbol *)0x0)) goto LAB_00104f21;\n          __size = (ulong)size;\n          if (sort_by_size == 0) {\n            qsort(minisyms,sVar7,__size,(__compar_fn_t)sorters[sort_numerically][reverse_sort]);\n            local_68 = (undefined8 *)0x0;\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n          else {\n            qsort(minisyms,sVar7,__size,size_forward1);\n            local_68 = (undefined8 *)xmalloc(sVar7 << 4);\n            paVar29 = sort_x;\n            paVar6 = sort_y;\n            pvVar20 = (void *)((long)pvVar24 + sVar7 * __size);\n            if (pvVar24 < pvVar20) {\n              paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);\n              puVar19 = local_68;\n              if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);\n              sVar7 = (long)puVar18 - (long)local_68 >> 4;\n            }\n            else {\n              sVar7 = 0;\n            }\n            qsort(local_68,sVar7,0x10,size_forward2);\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n        }\n        else {\n          local_68 = (undefined8 *)0x0;\n        }\n        pvVar24 = minisyms;\n        iVar3 = dynamic;\n        if (sort_by_size == 0) {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            pvVar20 = (void *)(sVar7 * size + (long)pvVar24);\n            for (; pvVar24 < pvVar20; pvVar24 = (void *)((long)pvVar24 + (ulong)size)) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,0,archive_bfd);\n            }\nLAB_00104d08:\n            if (synthsyms != (asymbol *)0x0) {\n              free(synthsyms);\n            }\n            free(minisyms);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            for (puVar19 = local_68; puVar19 < local_68 + sVar7 * 2; puVar19 = puVar19 + 2) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,puVar19[1],archive_bfd);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      bfd_fatal(abfd->filename);\n    }" { (expression_statement "sVar7 = (size_t)size;" (assignment_expression "sVar7 = (size_t)size" identifier = (cast_expression "(size_t)size" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "pbVar28 = abfd->xvec;" (assignment_expression "pbVar28 = abfd->xvec" identifier = (field_expression "abfd->xvec" identifier -> field_identifier)) ;) (if_statement "if ((show_synthetic != 0) && (size == 8)) {\n        if (dynamic == 0) {\n          lVar12 = (*pbVar28->_bfd_get_dynamic_symtab_upper_bound)(abfd);\n          ppbVar16 = (bfd_symbol **)minisyms;\n          lVar26 = lVar4;\n          if (lVar12 < 1) {\n            pbVar28 = abfd->xvec;\n            lVar12 = 0;\n            ppbVar13 = (bfd_symbol **)0x0;\n          }\n          else {\n            ppbVar13 = (bfd_symbol **)xmalloc(lVar12);\n            lVar12 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13);\n            if (lVar12 < 0) goto LAB_00104f21;\n            pbVar28 = abfd->xvec;\n          }\n        }\n        else {\n          lVar26 = 0;\n          ppbVar16 = (bfd_symbol **)0x0;\n          lVar12 = lVar4;\n          ppbVar13 = (bfd_symbol **)minisyms;\n        }\n        lVar12 = (*pbVar28->_bfd_get_synthetic_symtab)\n                           (abfd,lVar26,ppbVar16,lVar12,ppbVar13,&synthsyms);\n        if (lVar12 < 1) {\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n        }\n        else {\n          pvVar24 = (void *)xmalloc((lVar4 + lVar12) * 8 + 8);\n          memcpy(pvVar24,minisyms,lVar4 * 8);\n          plVar21 = (long *)(lVar4 * 8 + (long)pvVar24);\n          paVar6 = synthsyms;\n          plVar22 = plVar21;\n          do {\n            plVar23 = plVar22 + 1;\n            *plVar22 = (long)paVar6;\n            paVar6 = paVar6 + 1;\n            plVar22 = plVar23;\n          } while (plVar23 != plVar21 + lVar12);\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n          *plVar23 = 0;\n          lVar4 = lVar4 + lVar12;\n          minisyms = pvVar24;\n        }\n      }" if (parenthesized_expression "((show_synthetic != 0) && (size == 8))" ( (binary_expression "(show_synthetic != 0) && (size == 8)" (parenthesized_expression "(show_synthetic != 0)" ( (binary_expression "show_synthetic != 0" identifier != number_literal) )) && (parenthesized_expression "(size == 8)" ( (binary_expression "size == 8" identifier == number_literal) ))) )) (compound_statement "{\n        if (dynamic == 0) {\n          lVar12 = (*pbVar28->_bfd_get_dynamic_symtab_upper_bound)(abfd);\n          ppbVar16 = (bfd_symbol **)minisyms;\n          lVar26 = lVar4;\n          if (lVar12 < 1) {\n            pbVar28 = abfd->xvec;\n            lVar12 = 0;\n            ppbVar13 = (bfd_symbol **)0x0;\n          }\n          else {\n            ppbVar13 = (bfd_symbol **)xmalloc(lVar12);\n            lVar12 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13);\n            if (lVar12 < 0) goto LAB_00104f21;\n            pbVar28 = abfd->xvec;\n          }\n        }\n        else {\n          lVar26 = 0;\n          ppbVar16 = (bfd_symbol **)0x0;\n          lVar12 = lVar4;\n          ppbVar13 = (bfd_symbol **)minisyms;\n        }\n        lVar12 = (*pbVar28->_bfd_get_synthetic_symtab)\n                           (abfd,lVar26,ppbVar16,lVar12,ppbVar13,&synthsyms);\n        if (lVar12 < 1) {\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n        }\n        else {\n          pvVar24 = (void *)xmalloc((lVar4 + lVar12) * 8 + 8);\n          memcpy(pvVar24,minisyms,lVar4 * 8);\n          plVar21 = (long *)(lVar4 * 8 + (long)pvVar24);\n          paVar6 = synthsyms;\n          plVar22 = plVar21;\n          do {\n            plVar23 = plVar22 + 1;\n            *plVar22 = (long)paVar6;\n            paVar6 = paVar6 + 1;\n            plVar22 = plVar23;\n          } while (plVar23 != plVar21 + lVar12);\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n          *plVar23 = 0;\n          lVar4 = lVar4 + lVar12;\n          minisyms = pvVar24;\n        }\n      }" { (if_statement "if (dynamic == 0) {\n          lVar12 = (*pbVar28->_bfd_get_dynamic_symtab_upper_bound)(abfd);\n          ppbVar16 = (bfd_symbol **)minisyms;\n          lVar26 = lVar4;\n          if (lVar12 < 1) {\n            pbVar28 = abfd->xvec;\n            lVar12 = 0;\n            ppbVar13 = (bfd_symbol **)0x0;\n          }\n          else {\n            ppbVar13 = (bfd_symbol **)xmalloc(lVar12);\n            lVar12 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13);\n            if (lVar12 < 0) goto LAB_00104f21;\n            pbVar28 = abfd->xvec;\n          }\n        }\n        else {\n          lVar26 = 0;\n          ppbVar16 = (bfd_symbol **)0x0;\n          lVar12 = lVar4;\n          ppbVar13 = (bfd_symbol **)minisyms;\n        }" if (parenthesized_expression "(dynamic == 0)" ( (binary_expression "dynamic == 0" identifier == number_literal) )) (compound_statement "{\n          lVar12 = (*pbVar28->_bfd_get_dynamic_symtab_upper_bound)(abfd);\n          ppbVar16 = (bfd_symbol **)minisyms;\n          lVar26 = lVar4;\n          if (lVar12 < 1) {\n            pbVar28 = abfd->xvec;\n            lVar12 = 0;\n            ppbVar13 = (bfd_symbol **)0x0;\n          }\n          else {\n            ppbVar13 = (bfd_symbol **)xmalloc(lVar12);\n            lVar12 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13);\n            if (lVar12 < 0) goto LAB_00104f21;\n            pbVar28 = abfd->xvec;\n          }\n        }" { (expression_statement "lVar12 = (*pbVar28->_bfd_get_dynamic_symtab_upper_bound)(abfd);" (assignment_expression "lVar12 = (*pbVar28->_bfd_get_dynamic_symtab_upper_bound)(abfd)" identifier = (call_expression "(*pbVar28->_bfd_get_dynamic_symtab_upper_bound)(abfd)" (parenthesized_expression "(*pbVar28->_bfd_get_dynamic_symtab_upper_bound)" ( (pointer_expression "*pbVar28->_bfd_get_dynamic_symtab_upper_bound" * (field_expression "pbVar28->_bfd_get_dynamic_symtab_upper_bound" identifier -> field_identifier)) )) (argument_list "(abfd)" ( identifier )))) ;) (expression_statement "ppbVar16 = (bfd_symbol **)minisyms;" (assignment_expression "ppbVar16 = (bfd_symbol **)minisyms" identifier = (cast_expression "(bfd_symbol **)minisyms" ( (type_descriptor "bfd_symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "lVar26 = lVar4;" (assignment_expression "lVar26 = lVar4" identifier = identifier) ;) (if_statement "if (lVar12 < 1) {\n            pbVar28 = abfd->xvec;\n            lVar12 = 0;\n            ppbVar13 = (bfd_symbol **)0x0;\n          }\n          else {\n            ppbVar13 = (bfd_symbol **)xmalloc(lVar12);\n            lVar12 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13);\n            if (lVar12 < 0) goto LAB_00104f21;\n            pbVar28 = abfd->xvec;\n          }" if (parenthesized_expression "(lVar12 < 1)" ( (binary_expression "lVar12 < 1" identifier < number_literal) )) (compound_statement "{\n            pbVar28 = abfd->xvec;\n            lVar12 = 0;\n            ppbVar13 = (bfd_symbol **)0x0;\n          }" { (expression_statement "pbVar28 = abfd->xvec;" (assignment_expression "pbVar28 = abfd->xvec" identifier = (field_expression "abfd->xvec" identifier -> field_identifier)) ;) (expression_statement "lVar12 = 0;" (assignment_expression "lVar12 = 0" identifier = number_literal) ;) (expression_statement "ppbVar13 = (bfd_symbol **)0x0;" (assignment_expression "ppbVar13 = (bfd_symbol **)0x0" identifier = (cast_expression "(bfd_symbol **)0x0" ( (type_descriptor "bfd_symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }) (else_clause "else {\n            ppbVar13 = (bfd_symbol **)xmalloc(lVar12);\n            lVar12 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13);\n            if (lVar12 < 0) goto LAB_00104f21;\n            pbVar28 = abfd->xvec;\n          }" else (compound_statement "{\n            ppbVar13 = (bfd_symbol **)xmalloc(lVar12);\n            lVar12 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13);\n            if (lVar12 < 0) goto LAB_00104f21;\n            pbVar28 = abfd->xvec;\n          }" { (expression_statement "ppbVar13 = (bfd_symbol **)xmalloc(lVar12);" (assignment_expression "ppbVar13 = (bfd_symbol **)xmalloc(lVar12)" identifier = (cast_expression "(bfd_symbol **)xmalloc(lVar12)" ( (type_descriptor "bfd_symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "xmalloc(lVar12)" identifier (argument_list "(lVar12)" ( identifier ))))) ;) (expression_statement "lVar12 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13);" (assignment_expression "lVar12 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13)" identifier = (call_expression "(*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13)" (parenthesized_expression "(*abfd->xvec->_bfd_canonicalize_dynamic_symtab)" ( (pointer_expression "*abfd->xvec->_bfd_canonicalize_dynamic_symtab" * (field_expression "abfd->xvec->_bfd_canonicalize_dynamic_symtab" (field_expression "abfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(abfd,ppbVar13)" ( identifier , identifier )))) ;) (if_statement "if (lVar12 < 0) goto LAB_00104f21;" if (parenthesized_expression "(lVar12 < 0)" ( (binary_expression "lVar12 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00104f21;" goto statement_identifier ;)) (expression_statement "pbVar28 = abfd->xvec;" (assignment_expression "pbVar28 = abfd->xvec" identifier = (field_expression "abfd->xvec" identifier -> field_identifier)) ;) }))) }) (else_clause "else {\n          lVar26 = 0;\n          ppbVar16 = (bfd_symbol **)0x0;\n          lVar12 = lVar4;\n          ppbVar13 = (bfd_symbol **)minisyms;\n        }" else (compound_statement "{\n          lVar26 = 0;\n          ppbVar16 = (bfd_symbol **)0x0;\n          lVar12 = lVar4;\n          ppbVar13 = (bfd_symbol **)minisyms;\n        }" { (expression_statement "lVar26 = 0;" (assignment_expression "lVar26 = 0" identifier = number_literal) ;) (expression_statement "ppbVar16 = (bfd_symbol **)0x0;" (assignment_expression "ppbVar16 = (bfd_symbol **)0x0" identifier = (cast_expression "(bfd_symbol **)0x0" ( (type_descriptor "bfd_symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "lVar12 = lVar4;" (assignment_expression "lVar12 = lVar4" identifier = identifier) ;) (expression_statement "ppbVar13 = (bfd_symbol **)minisyms;" (assignment_expression "ppbVar13 = (bfd_symbol **)minisyms" identifier = (cast_expression "(bfd_symbol **)minisyms" ( (type_descriptor "bfd_symbol **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) }))) (expression_statement "lVar12 = (*pbVar28->_bfd_get_synthetic_symtab)\n                           (abfd,lVar26,ppbVar16,lVar12,ppbVar13,&synthsyms);" (assignment_expression "lVar12 = (*pbVar28->_bfd_get_synthetic_symtab)\n                           (abfd,lVar26,ppbVar16,lVar12,ppbVar13,&synthsyms)" identifier = (call_expression "(*pbVar28->_bfd_get_synthetic_symtab)\n                           (abfd,lVar26,ppbVar16,lVar12,ppbVar13,&synthsyms)" (parenthesized_expression "(*pbVar28->_bfd_get_synthetic_symtab)" ( (pointer_expression "*pbVar28->_bfd_get_synthetic_symtab" * (field_expression "pbVar28->_bfd_get_synthetic_symtab" identifier -> field_identifier)) )) (argument_list "(abfd,lVar26,ppbVar16,lVar12,ppbVar13,&synthsyms)" ( identifier , identifier , identifier , identifier , identifier , (pointer_expression "&synthsyms" & identifier) )))) ;) (if_statement "if (lVar12 < 1) {\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n        }\n        else {\n          pvVar24 = (void *)xmalloc((lVar4 + lVar12) * 8 + 8);\n          memcpy(pvVar24,minisyms,lVar4 * 8);\n          plVar21 = (long *)(lVar4 * 8 + (long)pvVar24);\n          paVar6 = synthsyms;\n          plVar22 = plVar21;\n          do {\n            plVar23 = plVar22 + 1;\n            *plVar22 = (long)paVar6;\n            paVar6 = paVar6 + 1;\n            plVar22 = plVar23;\n          } while (plVar23 != plVar21 + lVar12);\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n          *plVar23 = 0;\n          lVar4 = lVar4 + lVar12;\n          minisyms = pvVar24;\n        }" if (parenthesized_expression "(lVar12 < 1)" ( (binary_expression "lVar12 < 1" identifier < number_literal) )) (compound_statement "{\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n        }" { (expression_statement "sVar7 = (size_t)size;" (assignment_expression "sVar7 = (size_t)size" identifier = (cast_expression "(size_t)size" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "pbVar28 = abfd->xvec;" (assignment_expression "pbVar28 = abfd->xvec" identifier = (field_expression "abfd->xvec" identifier -> field_identifier)) ;) }) (else_clause "else {\n          pvVar24 = (void *)xmalloc((lVar4 + lVar12) * 8 + 8);\n          memcpy(pvVar24,minisyms,lVar4 * 8);\n          plVar21 = (long *)(lVar4 * 8 + (long)pvVar24);\n          paVar6 = synthsyms;\n          plVar22 = plVar21;\n          do {\n            plVar23 = plVar22 + 1;\n            *plVar22 = (long)paVar6;\n            paVar6 = paVar6 + 1;\n            plVar22 = plVar23;\n          } while (plVar23 != plVar21 + lVar12);\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n          *plVar23 = 0;\n          lVar4 = lVar4 + lVar12;\n          minisyms = pvVar24;\n        }" else (compound_statement "{\n          pvVar24 = (void *)xmalloc((lVar4 + lVar12) * 8 + 8);\n          memcpy(pvVar24,minisyms,lVar4 * 8);\n          plVar21 = (long *)(lVar4 * 8 + (long)pvVar24);\n          paVar6 = synthsyms;\n          plVar22 = plVar21;\n          do {\n            plVar23 = plVar22 + 1;\n            *plVar22 = (long)paVar6;\n            paVar6 = paVar6 + 1;\n            plVar22 = plVar23;\n          } while (plVar23 != plVar21 + lVar12);\n          sVar7 = (size_t)size;\n          pbVar28 = abfd->xvec;\n          *plVar23 = 0;\n          lVar4 = lVar4 + lVar12;\n          minisyms = pvVar24;\n        }" { (expression_statement "pvVar24 = (void *)xmalloc((lVar4 + lVar12) * 8 + 8);" (assignment_expression "pvVar24 = (void *)xmalloc((lVar4 + lVar12) * 8 + 8)" identifier = (cast_expression "(void *)xmalloc((lVar4 + lVar12) * 8 + 8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc((lVar4 + lVar12) * 8 + 8)" identifier (argument_list "((lVar4 + lVar12) * 8 + 8)" ( (binary_expression "(lVar4 + lVar12) * 8 + 8" (binary_expression "(lVar4 + lVar12) * 8" (parenthesized_expression "(lVar4 + lVar12)" ( (binary_expression "lVar4 + lVar12" identifier + identifier) )) * number_literal) + number_literal) ))))) ;) (expression_statement "memcpy(pvVar24,minisyms,lVar4 * 8);" (call_expression "memcpy(pvVar24,minisyms,lVar4 * 8)" identifier (argument_list "(pvVar24,minisyms,lVar4 * 8)" ( identifier , identifier , (binary_expression "lVar4 * 8" identifier * number_literal) ))) ;) (expression_statement "plVar21 = (long *)(lVar4 * 8 + (long)pvVar24);" (assignment_expression "plVar21 = (long *)(lVar4 * 8 + (long)pvVar24)" identifier = (cast_expression "(long *)(lVar4 * 8 + (long)pvVar24)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 * 8 + (long)pvVar24)" ( (binary_expression "lVar4 * 8 + (long)pvVar24" (binary_expression "lVar4 * 8" identifier * number_literal) + (cast_expression "(long)pvVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "paVar6 = synthsyms;" (assignment_expression "paVar6 = synthsyms" identifier = identifier) ;) (expression_statement "plVar22 = plVar21;" (assignment_expression "plVar22 = plVar21" identifier = identifier) ;) (do_statement "do {\n            plVar23 = plVar22 + 1;\n            *plVar22 = (long)paVar6;\n            paVar6 = paVar6 + 1;\n            plVar22 = plVar23;\n          } while (plVar23 != plVar21 + lVar12);" do (compound_statement "{\n            plVar23 = plVar22 + 1;\n            *plVar22 = (long)paVar6;\n            paVar6 = paVar6 + 1;\n            plVar22 = plVar23;\n          }" { (expression_statement "plVar23 = plVar22 + 1;" (assignment_expression "plVar23 = plVar22 + 1" identifier = (binary_expression "plVar22 + 1" identifier + number_literal)) ;) (expression_statement "*plVar22 = (long)paVar6;" (assignment_expression "*plVar22 = (long)paVar6" (pointer_expression "*plVar22" * identifier) = (cast_expression "(long)paVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "paVar6 = paVar6 + 1;" (assignment_expression "paVar6 = paVar6 + 1" identifier = (binary_expression "paVar6 + 1" identifier + number_literal)) ;) (expression_statement "plVar22 = plVar23;" (assignment_expression "plVar22 = plVar23" identifier = identifier) ;) }) while (parenthesized_expression "(plVar23 != plVar21 + lVar12)" ( (binary_expression "plVar23 != plVar21 + lVar12" identifier != (binary_expression "plVar21 + lVar12" identifier + identifier)) )) ;) (expression_statement "sVar7 = (size_t)size;" (assignment_expression "sVar7 = (size_t)size" identifier = (cast_expression "(size_t)size" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "pbVar28 = abfd->xvec;" (assignment_expression "pbVar28 = abfd->xvec" identifier = (field_expression "abfd->xvec" identifier -> field_identifier)) ;) (expression_statement "*plVar23 = 0;" (assignment_expression "*plVar23 = 0" (pointer_expression "*plVar23" * identifier) = number_literal) ;) (expression_statement "lVar4 = lVar4 + lVar12;" (assignment_expression "lVar4 = lVar4 + lVar12" identifier = (binary_expression "lVar4 + lVar12" identifier + identifier)) ;) (expression_statement "minisyms = pvVar24;" (assignment_expression "minisyms = pvVar24" identifier = identifier) ;) }))) })) (expression_statement "pvVar24 = minisyms;" (assignment_expression "pvVar24 = minisyms" identifier = identifier) ;) (expression_statement "iVar3 = dynamic;" (assignment_expression "iVar3 = dynamic" identifier = identifier) ;) (expression_statement "pbVar5 = (*pbVar28->_bfd_make_empty_symbol)(abfd);" (assignment_expression "pbVar5 = (*pbVar28->_bfd_make_empty_symbol)(abfd)" identifier = (call_expression "(*pbVar28->_bfd_make_empty_symbol)(abfd)" (parenthesized_expression "(*pbVar28->_bfd_make_empty_symbol)" ( (pointer_expression "*pbVar28->_bfd_make_empty_symbol" * (field_expression "pbVar28->_bfd_make_empty_symbol" identifier -> field_identifier)) )) (argument_list "(abfd)" ( identifier )))) ;) (if_statement "if (pbVar5 != (bfd_symbol *)0x0) {\n        pvVar20 = (void *)((long)pvVar24 + lVar4 * sVar7);\n        pvVar17 = pvVar24;\n        __src = pvVar24;\n        if (pvVar24 < pvVar20) {\nLAB_001048a5:\n          do {\n            paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5);\n            if (paVar6 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              bfd_fatal(abfd->filename);\n            }\n            pcVar14 = paVar6->name;\n            if ((*pcVar14 == '_') && (pcVar14[1] == '_')) {\n              lVar4 = 0xf;\n              bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));\n              bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;\n              pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));\n              pbVar27 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              } while (bVar31);\n              if ((!bVar30 && !bVar31) == bVar30) {\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }\n            }\n            if (undefined_only != 0) {\n              if ((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))\n              goto LAB_00104897;\nLAB_00104851:\n              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar7);\n              if (pvVar20 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (external_only != 0) {\n              uVar1 = paVar6->flags;\n              if ((uVar1 & 0x800082) == 0) {\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((print_debug_syms != 0) || ((paVar6->flags & 4) == 0)) {\nLAB_00104928:\n              if (sort_by_size == 0) goto LAB_00104851;\n              if ((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar7);\n          } while (__src < pvVar20);\n          sVar7 = ((long)pvVar17 - (long)pvVar24) / (long)sVar7;\n        }\n        else {\n          sVar7 = 0;\n        }\n        p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n        if (no_sort == 0) {\n          sort_dynamic = dynamic;\n          sort_bfd = abfd;\n          sort_x = (*p_Var11)(abfd);\n          sort_y = (*abfd->xvec->_bfd_make_empty_symbol)(abfd);\n          pvVar24 = minisyms;\n          iVar3 = dynamic;\n          if ((sort_x == (asymbol *)0x0) || (sort_y == (bfd_symbol *)0x0)) goto LAB_00104f21;\n          __size = (ulong)size;\n          if (sort_by_size == 0) {\n            qsort(minisyms,sVar7,__size,(__compar_fn_t)sorters[sort_numerically][reverse_sort]);\n            local_68 = (undefined8 *)0x0;\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n          else {\n            qsort(minisyms,sVar7,__size,size_forward1);\n            local_68 = (undefined8 *)xmalloc(sVar7 << 4);\n            paVar29 = sort_x;\n            paVar6 = sort_y;\n            pvVar20 = (void *)((long)pvVar24 + sVar7 * __size);\n            if (pvVar24 < pvVar20) {\n              paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);\n              puVar19 = local_68;\n              if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);\n              sVar7 = (long)puVar18 - (long)local_68 >> 4;\n            }\n            else {\n              sVar7 = 0;\n            }\n            qsort(local_68,sVar7,0x10,size_forward2);\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n        }\n        else {\n          local_68 = (undefined8 *)0x0;\n        }\n        pvVar24 = minisyms;\n        iVar3 = dynamic;\n        if (sort_by_size == 0) {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            pvVar20 = (void *)(sVar7 * size + (long)pvVar24);\n            for (; pvVar24 < pvVar20; pvVar24 = (void *)((long)pvVar24 + (ulong)size)) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,0,archive_bfd);\n            }\nLAB_00104d08:\n            if (synthsyms != (asymbol *)0x0) {\n              free(synthsyms);\n            }\n            free(minisyms);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            for (puVar19 = local_68; puVar19 < local_68 + sVar7 * 2; puVar19 = puVar19 + 2) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,puVar19[1],archive_bfd);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }" if (parenthesized_expression "(pbVar5 != (bfd_symbol *)0x0)" ( (binary_expression "pbVar5 != (bfd_symbol *)0x0" identifier != (cast_expression "(bfd_symbol *)0x0" ( (type_descriptor "bfd_symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pvVar20 = (void *)((long)pvVar24 + lVar4 * sVar7);\n        pvVar17 = pvVar24;\n        __src = pvVar24;\n        if (pvVar24 < pvVar20) {\nLAB_001048a5:\n          do {\n            paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5);\n            if (paVar6 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              bfd_fatal(abfd->filename);\n            }\n            pcVar14 = paVar6->name;\n            if ((*pcVar14 == '_') && (pcVar14[1] == '_')) {\n              lVar4 = 0xf;\n              bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));\n              bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;\n              pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));\n              pbVar27 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              } while (bVar31);\n              if ((!bVar30 && !bVar31) == bVar30) {\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }\n            }\n            if (undefined_only != 0) {\n              if ((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))\n              goto LAB_00104897;\nLAB_00104851:\n              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar7);\n              if (pvVar20 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (external_only != 0) {\n              uVar1 = paVar6->flags;\n              if ((uVar1 & 0x800082) == 0) {\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((print_debug_syms != 0) || ((paVar6->flags & 4) == 0)) {\nLAB_00104928:\n              if (sort_by_size == 0) goto LAB_00104851;\n              if ((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar7);\n          } while (__src < pvVar20);\n          sVar7 = ((long)pvVar17 - (long)pvVar24) / (long)sVar7;\n        }\n        else {\n          sVar7 = 0;\n        }\n        p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n        if (no_sort == 0) {\n          sort_dynamic = dynamic;\n          sort_bfd = abfd;\n          sort_x = (*p_Var11)(abfd);\n          sort_y = (*abfd->xvec->_bfd_make_empty_symbol)(abfd);\n          pvVar24 = minisyms;\n          iVar3 = dynamic;\n          if ((sort_x == (asymbol *)0x0) || (sort_y == (bfd_symbol *)0x0)) goto LAB_00104f21;\n          __size = (ulong)size;\n          if (sort_by_size == 0) {\n            qsort(minisyms,sVar7,__size,(__compar_fn_t)sorters[sort_numerically][reverse_sort]);\n            local_68 = (undefined8 *)0x0;\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n          else {\n            qsort(minisyms,sVar7,__size,size_forward1);\n            local_68 = (undefined8 *)xmalloc(sVar7 << 4);\n            paVar29 = sort_x;\n            paVar6 = sort_y;\n            pvVar20 = (void *)((long)pvVar24 + sVar7 * __size);\n            if (pvVar24 < pvVar20) {\n              paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);\n              puVar19 = local_68;\n              if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);\n              sVar7 = (long)puVar18 - (long)local_68 >> 4;\n            }\n            else {\n              sVar7 = 0;\n            }\n            qsort(local_68,sVar7,0x10,size_forward2);\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n        }\n        else {\n          local_68 = (undefined8 *)0x0;\n        }\n        pvVar24 = minisyms;\n        iVar3 = dynamic;\n        if (sort_by_size == 0) {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            pvVar20 = (void *)(sVar7 * size + (long)pvVar24);\n            for (; pvVar24 < pvVar20; pvVar24 = (void *)((long)pvVar24 + (ulong)size)) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,0,archive_bfd);\n            }\nLAB_00104d08:\n            if (synthsyms != (asymbol *)0x0) {\n              free(synthsyms);\n            }\n            free(minisyms);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            for (puVar19 = local_68; puVar19 < local_68 + sVar7 * 2; puVar19 = puVar19 + 2) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,puVar19[1],archive_bfd);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }" { (expression_statement "pvVar20 = (void *)((long)pvVar24 + lVar4 * sVar7);" (assignment_expression "pvVar20 = (void *)((long)pvVar24 + lVar4 * sVar7)" identifier = (cast_expression "(void *)((long)pvVar24 + lVar4 * sVar7)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar24 + lVar4 * sVar7)" ( (binary_expression "(long)pvVar24 + lVar4 * sVar7" (cast_expression "(long)pvVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "lVar4 * sVar7" identifier * identifier)) )))) ;) (expression_statement "pvVar17 = pvVar24;" (assignment_expression "pvVar17 = pvVar24" identifier = identifier) ;) (expression_statement "__src = pvVar24;" (assignment_expression "__src = pvVar24" identifier = identifier) ;) (if_statement "if (pvVar24 < pvVar20) {\nLAB_001048a5:\n          do {\n            paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5);\n            if (paVar6 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              bfd_fatal(abfd->filename);\n            }\n            pcVar14 = paVar6->name;\n            if ((*pcVar14 == '_') && (pcVar14[1] == '_')) {\n              lVar4 = 0xf;\n              bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));\n              bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;\n              pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));\n              pbVar27 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              } while (bVar31);\n              if ((!bVar30 && !bVar31) == bVar30) {\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }\n            }\n            if (undefined_only != 0) {\n              if ((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))\n              goto LAB_00104897;\nLAB_00104851:\n              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar7);\n              if (pvVar20 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (external_only != 0) {\n              uVar1 = paVar6->flags;\n              if ((uVar1 & 0x800082) == 0) {\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((print_debug_syms != 0) || ((paVar6->flags & 4) == 0)) {\nLAB_00104928:\n              if (sort_by_size == 0) goto LAB_00104851;\n              if ((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar7);\n          } while (__src < pvVar20);\n          sVar7 = ((long)pvVar17 - (long)pvVar24) / (long)sVar7;\n        }\n        else {\n          sVar7 = 0;\n        }" if (parenthesized_expression "(pvVar24 < pvVar20)" ( (binary_expression "pvVar24 < pvVar20" identifier < identifier) )) (compound_statement "{\nLAB_001048a5:\n          do {\n            paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5);\n            if (paVar6 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              bfd_fatal(abfd->filename);\n            }\n            pcVar14 = paVar6->name;\n            if ((*pcVar14 == '_') && (pcVar14[1] == '_')) {\n              lVar4 = 0xf;\n              bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));\n              bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;\n              pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));\n              pbVar27 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              } while (bVar31);\n              if ((!bVar30 && !bVar31) == bVar30) {\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }\n            }\n            if (undefined_only != 0) {\n              if ((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))\n              goto LAB_00104897;\nLAB_00104851:\n              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar7);\n              if (pvVar20 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (external_only != 0) {\n              uVar1 = paVar6->flags;\n              if ((uVar1 & 0x800082) == 0) {\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((print_debug_syms != 0) || ((paVar6->flags & 4) == 0)) {\nLAB_00104928:\n              if (sort_by_size == 0) goto LAB_00104851;\n              if ((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar7);\n          } while (__src < pvVar20);\n          sVar7 = ((long)pvVar17 - (long)pvVar24) / (long)sVar7;\n        }" { (labeled_statement "LAB_001048a5:\n          do {\n            paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5);\n            if (paVar6 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              bfd_fatal(abfd->filename);\n            }\n            pcVar14 = paVar6->name;\n            if ((*pcVar14 == '_') && (pcVar14[1] == '_')) {\n              lVar4 = 0xf;\n              bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));\n              bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;\n              pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));\n              pbVar27 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              } while (bVar31);\n              if ((!bVar30 && !bVar31) == bVar30) {\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }\n            }\n            if (undefined_only != 0) {\n              if ((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))\n              goto LAB_00104897;\nLAB_00104851:\n              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar7);\n              if (pvVar20 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (external_only != 0) {\n              uVar1 = paVar6->flags;\n              if ((uVar1 & 0x800082) == 0) {\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((print_debug_syms != 0) || ((paVar6->flags & 4) == 0)) {\nLAB_00104928:\n              if (sort_by_size == 0) goto LAB_00104851;\n              if ((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar7);\n          } while (__src < pvVar20);" statement_identifier : (do_statement "do {\n            paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5);\n            if (paVar6 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              bfd_fatal(abfd->filename);\n            }\n            pcVar14 = paVar6->name;\n            if ((*pcVar14 == '_') && (pcVar14[1] == '_')) {\n              lVar4 = 0xf;\n              bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));\n              bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;\n              pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));\n              pbVar27 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              } while (bVar31);\n              if ((!bVar30 && !bVar31) == bVar30) {\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }\n            }\n            if (undefined_only != 0) {\n              if ((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))\n              goto LAB_00104897;\nLAB_00104851:\n              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar7);\n              if (pvVar20 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (external_only != 0) {\n              uVar1 = paVar6->flags;\n              if ((uVar1 & 0x800082) == 0) {\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((print_debug_syms != 0) || ((paVar6->flags & 4) == 0)) {\nLAB_00104928:\n              if (sort_by_size == 0) goto LAB_00104851;\n              if ((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar7);\n          } while (__src < pvVar20);" do (compound_statement "{\n            paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5);\n            if (paVar6 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              bfd_fatal(abfd->filename);\n            }\n            pcVar14 = paVar6->name;\n            if ((*pcVar14 == '_') && (pcVar14[1] == '_')) {\n              lVar4 = 0xf;\n              bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));\n              bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;\n              pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));\n              pbVar27 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              } while (bVar31);\n              if ((!bVar30 && !bVar31) == bVar30) {\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }\n            }\n            if (undefined_only != 0) {\n              if ((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))\n              goto LAB_00104897;\nLAB_00104851:\n              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar7);\n              if (pvVar20 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (external_only != 0) {\n              uVar1 = paVar6->flags;\n              if ((uVar1 & 0x800082) == 0) {\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((print_debug_syms != 0) || ((paVar6->flags & 4) == 0)) {\nLAB_00104928:\n              if (sort_by_size == 0) goto LAB_00104851;\n              if ((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar7);\n          }" { (expression_statement "paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5);" (assignment_expression "paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5)" identifier = (call_expression "(*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,__src,pbVar5)" (parenthesized_expression "(*abfd->xvec->_minisymbol_to_symbol)" ( (pointer_expression "*abfd->xvec->_minisymbol_to_symbol" * (field_expression "abfd->xvec->_minisymbol_to_symbol" (field_expression "abfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(abfd,iVar3,__src,pbVar5)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (paVar6 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              bfd_fatal(abfd->filename);\n            }" if (parenthesized_expression "(paVar6 == (asymbol *)0x0)" ( (binary_expression "paVar6 == (asymbol *)0x0" identifier == (cast_expression "(asymbol *)0x0" ( (type_descriptor "asymbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              bfd_fatal(abfd->filename);\n            }" { comment (expression_statement "bfd_fatal(abfd->filename);" (call_expression "bfd_fatal(abfd->filename)" identifier (argument_list "(abfd->filename)" ( (field_expression "abfd->filename" identifier -> field_identifier) ))) ;) })) (expression_statement "pcVar14 = paVar6->name;" (assignment_expression "pcVar14 = paVar6->name" identifier = (field_expression "paVar6->name" identifier -> field_identifier)) ;) (if_statement "if ((*pcVar14 == '_') && (pcVar14[1] == '_')) {\n              lVar4 = 0xf;\n              bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));\n              bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;\n              pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));\n              pbVar27 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              } while (bVar31);\n              if ((!bVar30 && !bVar31) == bVar30) {\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }\n            }" if (parenthesized_expression "((*pcVar14 == '_') && (pcVar14[1] == '_'))" ( (binary_expression "(*pcVar14 == '_') && (pcVar14[1] == '_')" (parenthesized_expression "(*pcVar14 == '_')" ( (binary_expression "*pcVar14 == '_'" (pointer_expression "*pcVar14" * identifier) == (char_literal "'_'" ' character ')) )) && (parenthesized_expression "(pcVar14[1] == '_')" ( (binary_expression "pcVar14[1] == '_'" (subscript_expression "pcVar14[1]" identifier [ number_literal ]) == (char_literal "'_'" ' character ')) ))) )) (compound_statement "{\n              lVar4 = 0xf;\n              bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));\n              bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;\n              pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));\n              pbVar27 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              } while (bVar31);\n              if ((!bVar30 && !bVar31) == bVar30) {\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }\n            }" { (expression_statement "lVar4 = 0xf;" (assignment_expression "lVar4 = 0xf" identifier = number_literal) ;) (expression_statement "bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'));" (assignment_expression "bVar30 = CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'))" identifier = (call_expression "CARRY8((ulong)pcVar14,(ulong)(pcVar14[2] == '_'))" identifier (argument_list "((ulong)pcVar14,(ulong)(pcVar14[2] == '_'))" ( (cast_expression "(ulong)pcVar14" ( (type_descriptor "ulong" type_identifier) ) identifier) , (call_expression "(ulong)(pcVar14[2] == '_')" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar14[2] == '_')" ( (binary_expression "pcVar14[2] == '_'" (subscript_expression "pcVar14[2]" identifier [ number_literal ]) == (char_literal "'_'" ' character ')) ))) )))) ;) (expression_statement "bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0;" (assignment_expression "bVar31 = (byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0" identifier = (binary_expression "(byte *)(pcVar14 + (pcVar14[2] == '_')) == (byte *)0x0" (cast_expression "(byte *)(pcVar14 + (pcVar14[2] == '_'))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + (pcVar14[2] == '_'))" ( (binary_expression "pcVar14 + (pcVar14[2] == '_')" identifier + (parenthesized_expression "(pcVar14[2] == '_')" ( (binary_expression "pcVar14[2] == '_'" (subscript_expression "pcVar14[2]" identifier [ number_literal ]) == (char_literal "'_'" ' character ')) ))) ))) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'));" (assignment_expression "pbVar25 = (byte *)(pcVar14 + (pcVar14[2] == '_'))" identifier = (cast_expression "(byte *)(pcVar14 + (pcVar14[2] == '_'))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar14 + (pcVar14[2] == '_'))" ( (binary_expression "pcVar14 + (pcVar14[2] == '_')" identifier + (parenthesized_expression "(pcVar14[2] == '_')" ( (binary_expression "pcVar14[2] == '_'" (subscript_expression "pcVar14[2]" identifier [ number_literal ]) == (char_literal "'_'" ' character ')) ))) )))) ;) (expression_statement "pbVar27 = (byte *)"__gnu_lto_slim";" (assignment_expression "pbVar27 = (byte *)"__gnu_lto_slim"" identifier = (cast_expression "(byte *)"__gnu_lto_slim"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__gnu_lto_slim"" " string_content "))) ;) (do_statement "do {\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              } while (bVar31);" do (compound_statement "{\n                if (lVar4 == 0) break;\n                lVar4 = lVar4 + -1;\n                bVar30 = *pbVar25 < *pbVar27;\n                bVar31 = *pbVar25 == *pbVar27;\n                pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;\n                pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;\n              }" { (if_statement "if (lVar4 == 0) break;" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar4 = lVar4 + -1;" (assignment_expression "lVar4 = lVar4 + -1" identifier = (binary_expression "lVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar30 = *pbVar25 < *pbVar27;" (assignment_expression "bVar30 = *pbVar25 < *pbVar27" identifier = (binary_expression "*pbVar25 < *pbVar27" (pointer_expression "*pbVar25" * identifier) < (pointer_expression "*pbVar27" * identifier))) ;) (expression_statement "bVar31 = *pbVar25 == *pbVar27;" (assignment_expression "bVar31 = *pbVar25 == *pbVar27" identifier = (binary_expression "*pbVar25 == *pbVar27" (pointer_expression "*pbVar25" * identifier) == (pointer_expression "*pbVar27" * identifier))) ;) (expression_statement "pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1;" (assignment_expression "pbVar25 = pbVar25 + (ulong)bVar32 * -2 + 1" identifier = (binary_expression "pbVar25 + (ulong)bVar32 * -2 + 1" (binary_expression "pbVar25 + (ulong)bVar32 * -2" identifier + (binary_expression "(ulong)bVar32 * -2" (cast_expression "(ulong)bVar32" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1;" (assignment_expression "pbVar27 = pbVar27 + (ulong)bVar32 * -2 + 1" identifier = (binary_expression "pbVar27 + (ulong)bVar32 * -2 + 1" (binary_expression "pbVar27 + (ulong)bVar32 * -2" identifier + (binary_expression "(ulong)bVar32 * -2" (cast_expression "(ulong)bVar32" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar31)" ( identifier )) ;) (if_statement "if ((!bVar30 && !bVar31) == bVar30) {\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }" if (parenthesized_expression "((!bVar30 && !bVar31) == bVar30)" ( (binary_expression "(!bVar30 && !bVar31) == bVar30" (parenthesized_expression "(!bVar30 && !bVar31)" ( (binary_expression "!bVar30 && !bVar31" (unary_expression "!bVar30" ! identifier) && (unary_expression "!bVar31" ! identifier)) )) == identifier) )) (compound_statement "{\n                pcVar14 = abfd->filename;\n                pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);\n                non_fatal(pcVar10,pcVar14);\n              }" { (expression_statement "pcVar14 = abfd->filename;" (assignment_expression "pcVar14 = abfd->filename" identifier = (field_expression "abfd->filename" identifier -> field_identifier)) ;) (expression_statement "pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5);" (assignment_expression "pcVar10 = (char *)dcgettext(0,"%s: plugin needed to handle lto object",5)" identifier = (cast_expression "(char *)dcgettext(0,"%s: plugin needed to handle lto object",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%s: plugin needed to handle lto object",5)" identifier (argument_list "(0,"%s: plugin needed to handle lto object",5)" ( number_literal , (string_literal ""%s: plugin needed to handle lto object"" " string_content ") , number_literal ))))) ;) (expression_statement "non_fatal(pcVar10,pcVar14);" (call_expression "non_fatal(pcVar10,pcVar14)" identifier (argument_list "(pcVar10,pcVar14)" ( identifier , identifier ))) ;) })) })) (if_statement "if (undefined_only != 0) {\n              if ((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))\n              goto LAB_00104897;\nLAB_00104851:\n              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar7);\n              if (pvVar20 <= __src) break;\n              goto LAB_001048a5;\n            }" if (parenthesized_expression "(undefined_only != 0)" ( (binary_expression "undefined_only != 0" identifier != number_literal) )) (compound_statement "{\n              if ((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))\n              goto LAB_00104897;\nLAB_00104851:\n              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar7);\n              if (pvVar20 <= __src) break;\n              goto LAB_001048a5;\n            }" { (if_statement "if ((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))\n              goto LAB_00104897;" if (parenthesized_expression "((paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))))" ( (binary_expression "(paVar6->section != (bfd_section *)0x10c838) ||\n                 (((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0)))" (parenthesized_expression "(paVar6->section != (bfd_section *)0x10c838)" ( (binary_expression "paVar6->section != (bfd_section *)0x10c838" (field_expression "paVar6->section" identifier -> field_identifier) != (cast_expression "(bfd_section *)0x10c838" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0)))" ( (parenthesized_expression "((print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0))" ( (binary_expression "(print_debug_syms == 0 && ((paVar6->flags & 4) != 0)) || (sort_by_size != 0)" (parenthesized_expression "(print_debug_syms == 0 && ((paVar6->flags & 4) != 0))" ( (binary_expression "print_debug_syms == 0 && ((paVar6->flags & 4) != 0)" (binary_expression "print_debug_syms == 0" identifier == number_literal) && (parenthesized_expression "((paVar6->flags & 4) != 0)" ( (binary_expression "(paVar6->flags & 4) != 0" (parenthesized_expression "(paVar6->flags & 4)" ( (binary_expression "paVar6->flags & 4" (field_expression "paVar6->flags" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(sort_by_size != 0)" ( (binary_expression "sort_by_size != 0" identifier != number_literal) ))) )) ))) )) (goto_statement "goto LAB_00104897;" goto statement_identifier ;)) (labeled_statement "LAB_00104851:\n              if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }" statement_identifier : (if_statement "if ((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)) {\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }" if (parenthesized_expression "((defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838))" ( (binary_expression "(defined_only == 0) || (paVar6->section != (bfd_section *)0x10c838)" (parenthesized_expression "(defined_only == 0)" ( (binary_expression "defined_only == 0" identifier == number_literal) )) || (parenthesized_expression "(paVar6->section != (bfd_section *)0x10c838)" ( (binary_expression "paVar6->section != (bfd_section *)0x10c838" (field_expression "paVar6->section" identifier -> field_identifier) != (cast_expression "(bfd_section *)0x10c838" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\nLAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);\n                if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }\n              }" { (labeled_statement "LAB_00104861:\n                bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);" statement_identifier : (expression_statement "bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6);" (assignment_expression "bVar2 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6)" identifier = (call_expression "(*abfd->xvec->_bfd_is_target_special_symbol)(abfd,paVar6)" (parenthesized_expression "(*abfd->xvec->_bfd_is_target_special_symbol)" ( (pointer_expression "*abfd->xvec->_bfd_is_target_special_symbol" * (field_expression "abfd->xvec->_bfd_is_target_special_symbol" (field_expression "abfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(abfd,paVar6)" ( identifier , identifier )))) ;)) (if_statement "if ((bVar2 == 0) || (allow_special_symbols != 0)) {\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }" if (parenthesized_expression "((bVar2 == 0) || (allow_special_symbols != 0))" ( (binary_expression "(bVar2 == 0) || (allow_special_symbols != 0)" (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) || (parenthesized_expression "(allow_special_symbols != 0)" ( (binary_expression "allow_special_symbols != 0" identifier != number_literal) ))) )) (compound_statement "{\n                  if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }\n                  pvVar17 = (void *)((long)pvVar17 + sVar7);\n                }" { (if_statement "if (__src != pvVar17) {\n                    memcpy(pvVar17,__src,sVar7);\n                  }" if (parenthesized_expression "(__src != pvVar17)" ( (binary_expression "__src != pvVar17" identifier != identifier) )) (compound_statement "{\n                    memcpy(pvVar17,__src,sVar7);\n                  }" { (expression_statement "memcpy(pvVar17,__src,sVar7);" (call_expression "memcpy(pvVar17,__src,sVar7)" identifier (argument_list "(pvVar17,__src,sVar7)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pvVar17 = (void *)((long)pvVar17 + sVar7);" (assignment_expression "pvVar17 = (void *)((long)pvVar17 + sVar7)" identifier = (cast_expression "(void *)((long)pvVar17 + sVar7)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar17 + sVar7)" ( (binary_expression "(long)pvVar17 + sVar7" (cast_expression "(long)pvVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) })) }))) (labeled_statement "LAB_00104897:\n              __src = (void *)((long)__src + sVar7);" statement_identifier : (expression_statement "__src = (void *)((long)__src + sVar7);" (assignment_expression "__src = (void *)((long)__src + sVar7)" identifier = (cast_expression "(void *)((long)__src + sVar7)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__src + sVar7)" ( (binary_expression "(long)__src + sVar7" (cast_expression "(long)__src" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;)) (if_statement "if (pvVar20 <= __src) break;" if (parenthesized_expression "(pvVar20 <= __src)" ( (binary_expression "pvVar20 <= __src" identifier <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_001048a5;" goto statement_identifier ;) })) (if_statement "if (external_only != 0) {\n              uVar1 = paVar6->flags;\n              if ((uVar1 & 0x800082) == 0) {\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }" if (parenthesized_expression "(external_only != 0)" ( (binary_expression "external_only != 0" identifier != number_literal) )) (compound_statement "{\n              uVar1 = paVar6->flags;\n              if ((uVar1 & 0x800082) == 0) {\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }" { (expression_statement "uVar1 = paVar6->flags;" (assignment_expression "uVar1 = paVar6->flags" identifier = (field_expression "paVar6->flags" identifier -> field_identifier)) ;) (if_statement "if ((uVar1 & 0x800082) == 0) {\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }" if (parenthesized_expression "((uVar1 & 0x800082) == 0)" ( (binary_expression "(uVar1 & 0x800082) == 0" (parenthesized_expression "(uVar1 & 0x800082)" ( (binary_expression "uVar1 & 0x800082" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;\n              }" { (if_statement "if (paVar6->section == (bfd_section *)0x10c838) {\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }\n                else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;" if (parenthesized_expression "(paVar6->section == (bfd_section *)0x10c838)" ( (binary_expression "paVar6->section == (bfd_section *)0x10c838" (field_expression "paVar6->section" identifier -> field_identifier) == (cast_expression "(bfd_section *)0x10c838" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;\n                }" { (if_statement "if (((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))) goto LAB_00104861;" if (parenthesized_expression "(((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0))))" ( (binary_expression "((print_debug_syms != 0) || ((uVar1 & 4) == 0)) &&\n                     ((sort_by_size == 0 && (defined_only == 0)))" (parenthesized_expression "((print_debug_syms != 0) || ((uVar1 & 4) == 0))" ( (binary_expression "(print_debug_syms != 0) || ((uVar1 & 4) == 0)" (parenthesized_expression "(print_debug_syms != 0)" ( (binary_expression "print_debug_syms != 0" identifier != number_literal) )) || (parenthesized_expression "((uVar1 & 4) == 0)" ( (binary_expression "(uVar1 & 4) == 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((sort_by_size == 0 && (defined_only == 0)))" ( (parenthesized_expression "(sort_by_size == 0 && (defined_only == 0))" ( (binary_expression "sort_by_size == 0 && (defined_only == 0)" (binary_expression "sort_by_size == 0" identifier == number_literal) && (parenthesized_expression "(defined_only == 0)" ( (binary_expression "defined_only == 0" identifier == number_literal) ))) )) ))) )) (goto_statement "goto LAB_00104861;" goto statement_identifier ;)) }) (else_clause "else if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;" else (if_statement "if ((paVar6->section->flags & 0x1000) != 0) goto LAB_00104913;" if (parenthesized_expression "((paVar6->section->flags & 0x1000) != 0)" ( (binary_expression "(paVar6->section->flags & 0x1000) != 0" (parenthesized_expression "(paVar6->section->flags & 0x1000)" ( (binary_expression "paVar6->section->flags & 0x1000" (field_expression "paVar6->section->flags" (field_expression "paVar6->section" identifier -> field_identifier) -> field_identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00104913;" goto statement_identifier ;)))) }) (else_clause "else {\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }" else (compound_statement "{\nLAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }" { (labeled_statement "LAB_00104913:\n                if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;" statement_identifier : (if_statement "if ((print_debug_syms != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;" if (parenthesized_expression "((print_debug_syms != 0) || ((uVar1 & 4) == 0))" ( (binary_expression "(print_debug_syms != 0) || ((uVar1 & 4) == 0)" (parenthesized_expression "(print_debug_syms != 0)" ( (binary_expression "print_debug_syms != 0" identifier != number_literal) )) || (parenthesized_expression "((uVar1 & 4) == 0)" ( (binary_expression "(uVar1 & 4) == 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00104928;" goto statement_identifier ;))) }))) (goto_statement "goto LAB_00104897;" goto statement_identifier ;) })) (if_statement "if ((print_debug_syms != 0) || ((paVar6->flags & 4) == 0)) {\nLAB_00104928:\n              if (sort_by_size == 0) goto LAB_00104851;\n              if ((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;\n              goto LAB_00104861;\n            }" if (parenthesized_expression "((print_debug_syms != 0) || ((paVar6->flags & 4) == 0))" ( (binary_expression "(print_debug_syms != 0) || ((paVar6->flags & 4) == 0)" (parenthesized_expression "(print_debug_syms != 0)" ( (binary_expression "print_debug_syms != 0" identifier != number_literal) )) || (parenthesized_expression "((paVar6->flags & 4) == 0)" ( (binary_expression "(paVar6->flags & 4) == 0" (parenthesized_expression "(paVar6->flags & 4)" ( (binary_expression "paVar6->flags & 4" (field_expression "paVar6->flags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_00104928:\n              if (sort_by_size == 0) goto LAB_00104851;\n              if ((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;\n              goto LAB_00104861;\n            }" { (labeled_statement "LAB_00104928:\n              if (sort_by_size == 0) goto LAB_00104851;" statement_identifier : (if_statement "if (sort_by_size == 0) goto LAB_00104851;" if (parenthesized_expression "(sort_by_size == 0)" ( (binary_expression "sort_by_size == 0" identifier == number_literal) )) (goto_statement "goto LAB_00104851;" goto statement_identifier ;))) (if_statement "if ((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)) goto LAB_00104897;" if (parenthesized_expression "((paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950))" ( (binary_expression "(paVar6->section == (bfd_section *)0x10c838) ||\n                 (paVar6->section == (bfd_section *)0x10c950)" (parenthesized_expression "(paVar6->section == (bfd_section *)0x10c838)" ( (binary_expression "paVar6->section == (bfd_section *)0x10c838" (field_expression "paVar6->section" identifier -> field_identifier) == (cast_expression "(bfd_section *)0x10c838" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(paVar6->section == (bfd_section *)0x10c950)" ( (binary_expression "paVar6->section == (bfd_section *)0x10c950" (field_expression "paVar6->section" identifier -> field_identifier) == (cast_expression "(bfd_section *)0x10c950" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_00104897;" goto statement_identifier ;)) (goto_statement "goto LAB_00104861;" goto statement_identifier ;) })) (expression_statement "__src = (void *)((long)__src + sVar7);" (assignment_expression "__src = (void *)((long)__src + sVar7)" identifier = (cast_expression "(void *)((long)__src + sVar7)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__src + sVar7)" ( (binary_expression "(long)__src + sVar7" (cast_expression "(long)__src" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) }) while (parenthesized_expression "(__src < pvVar20)" ( (binary_expression "__src < pvVar20" identifier < identifier) )) ;)) (expression_statement "sVar7 = ((long)pvVar17 - (long)pvVar24) / (long)sVar7;" (assignment_expression "sVar7 = ((long)pvVar17 - (long)pvVar24) / (long)sVar7" identifier = (binary_expression "((long)pvVar17 - (long)pvVar24) / (long)sVar7" (parenthesized_expression "((long)pvVar17 - (long)pvVar24)" ( (binary_expression "(long)pvVar17 - (long)pvVar24" (cast_expression "(long)pvVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pvVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) / (cast_expression "(long)sVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) }) (else_clause "else {\n          sVar7 = 0;\n        }" else (compound_statement "{\n          sVar7 = 0;\n        }" { (expression_statement "sVar7 = 0;" (assignment_expression "sVar7 = 0" identifier = number_literal) ;) }))) (expression_statement "p_Var11 = abfd->xvec->_bfd_make_empty_symbol;" (assignment_expression "p_Var11 = abfd->xvec->_bfd_make_empty_symbol" identifier = (field_expression "abfd->xvec->_bfd_make_empty_symbol" (field_expression "abfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (no_sort == 0) {\n          sort_dynamic = dynamic;\n          sort_bfd = abfd;\n          sort_x = (*p_Var11)(abfd);\n          sort_y = (*abfd->xvec->_bfd_make_empty_symbol)(abfd);\n          pvVar24 = minisyms;\n          iVar3 = dynamic;\n          if ((sort_x == (asymbol *)0x0) || (sort_y == (bfd_symbol *)0x0)) goto LAB_00104f21;\n          __size = (ulong)size;\n          if (sort_by_size == 0) {\n            qsort(minisyms,sVar7,__size,(__compar_fn_t)sorters[sort_numerically][reverse_sort]);\n            local_68 = (undefined8 *)0x0;\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n          else {\n            qsort(minisyms,sVar7,__size,size_forward1);\n            local_68 = (undefined8 *)xmalloc(sVar7 << 4);\n            paVar29 = sort_x;\n            paVar6 = sort_y;\n            pvVar20 = (void *)((long)pvVar24 + sVar7 * __size);\n            if (pvVar24 < pvVar20) {\n              paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);\n              puVar19 = local_68;\n              if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);\n              sVar7 = (long)puVar18 - (long)local_68 >> 4;\n            }\n            else {\n              sVar7 = 0;\n            }\n            qsort(local_68,sVar7,0x10,size_forward2);\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n        }\n        else {\n          local_68 = (undefined8 *)0x0;\n        }" if (parenthesized_expression "(no_sort == 0)" ( (binary_expression "no_sort == 0" identifier == number_literal) )) (compound_statement "{\n          sort_dynamic = dynamic;\n          sort_bfd = abfd;\n          sort_x = (*p_Var11)(abfd);\n          sort_y = (*abfd->xvec->_bfd_make_empty_symbol)(abfd);\n          pvVar24 = minisyms;\n          iVar3 = dynamic;\n          if ((sort_x == (asymbol *)0x0) || (sort_y == (bfd_symbol *)0x0)) goto LAB_00104f21;\n          __size = (ulong)size;\n          if (sort_by_size == 0) {\n            qsort(minisyms,sVar7,__size,(__compar_fn_t)sorters[sort_numerically][reverse_sort]);\n            local_68 = (undefined8 *)0x0;\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n          else {\n            qsort(minisyms,sVar7,__size,size_forward1);\n            local_68 = (undefined8 *)xmalloc(sVar7 << 4);\n            paVar29 = sort_x;\n            paVar6 = sort_y;\n            pvVar20 = (void *)((long)pvVar24 + sVar7 * __size);\n            if (pvVar24 < pvVar20) {\n              paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);\n              puVar19 = local_68;\n              if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);\n              sVar7 = (long)puVar18 - (long)local_68 >> 4;\n            }\n            else {\n              sVar7 = 0;\n            }\n            qsort(local_68,sVar7,0x10,size_forward2);\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n        }" { (expression_statement "sort_dynamic = dynamic;" (assignment_expression "sort_dynamic = dynamic" identifier = identifier) ;) (expression_statement "sort_bfd = abfd;" (assignment_expression "sort_bfd = abfd" identifier = identifier) ;) (expression_statement "sort_x = (*p_Var11)(abfd);" (assignment_expression "sort_x = (*p_Var11)(abfd)" identifier = (call_expression "(*p_Var11)(abfd)" (parenthesized_expression "(*p_Var11)" ( (pointer_expression "*p_Var11" * identifier) )) (argument_list "(abfd)" ( identifier )))) ;) (expression_statement "sort_y = (*abfd->xvec->_bfd_make_empty_symbol)(abfd);" (assignment_expression "sort_y = (*abfd->xvec->_bfd_make_empty_symbol)(abfd)" identifier = (call_expression "(*abfd->xvec->_bfd_make_empty_symbol)(abfd)" (parenthesized_expression "(*abfd->xvec->_bfd_make_empty_symbol)" ( (pointer_expression "*abfd->xvec->_bfd_make_empty_symbol" * (field_expression "abfd->xvec->_bfd_make_empty_symbol" (field_expression "abfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(abfd)" ( identifier )))) ;) (expression_statement "pvVar24 = minisyms;" (assignment_expression "pvVar24 = minisyms" identifier = identifier) ;) (expression_statement "iVar3 = dynamic;" (assignment_expression "iVar3 = dynamic" identifier = identifier) ;) (if_statement "if ((sort_x == (asymbol *)0x0) || (sort_y == (bfd_symbol *)0x0)) goto LAB_00104f21;" if (parenthesized_expression "((sort_x == (asymbol *)0x0) || (sort_y == (bfd_symbol *)0x0))" ( (binary_expression "(sort_x == (asymbol *)0x0) || (sort_y == (bfd_symbol *)0x0)" (parenthesized_expression "(sort_x == (asymbol *)0x0)" ( (binary_expression "sort_x == (asymbol *)0x0" identifier == (cast_expression "(asymbol *)0x0" ( (type_descriptor "asymbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(sort_y == (bfd_symbol *)0x0)" ( (binary_expression "sort_y == (bfd_symbol *)0x0" identifier == (cast_expression "(bfd_symbol *)0x0" ( (type_descriptor "bfd_symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_00104f21;" goto statement_identifier ;)) (expression_statement "__size = (ulong)size;" (assignment_expression "__size = (ulong)size" identifier = (cast_expression "(ulong)size" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (sort_by_size == 0) {\n            qsort(minisyms,sVar7,__size,(__compar_fn_t)sorters[sort_numerically][reverse_sort]);\n            local_68 = (undefined8 *)0x0;\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }\n          else {\n            qsort(minisyms,sVar7,__size,size_forward1);\n            local_68 = (undefined8 *)xmalloc(sVar7 << 4);\n            paVar29 = sort_x;\n            paVar6 = sort_y;\n            pvVar20 = (void *)((long)pvVar24 + sVar7 * __size);\n            if (pvVar24 < pvVar20) {\n              paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);\n              puVar19 = local_68;\n              if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);\n              sVar7 = (long)puVar18 - (long)local_68 >> 4;\n            }\n            else {\n              sVar7 = 0;\n            }\n            qsort(local_68,sVar7,0x10,size_forward2);\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }" if (parenthesized_expression "(sort_by_size == 0)" ( (binary_expression "sort_by_size == 0" identifier == number_literal) )) (compound_statement "{\n            qsort(minisyms,sVar7,__size,(__compar_fn_t)sorters[sort_numerically][reverse_sort]);\n            local_68 = (undefined8 *)0x0;\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }" { (expression_statement "qsort(minisyms,sVar7,__size,(__compar_fn_t)sorters[sort_numerically][reverse_sort]);" (call_expression "qsort(minisyms,sVar7,__size,(__compar_fn_t)sorters[sort_numerically][reverse_sort])" identifier (argument_list "(minisyms,sVar7,__size,(__compar_fn_t)sorters[sort_numerically][reverse_sort])" ( identifier , identifier , identifier , (cast_expression "(__compar_fn_t)sorters[sort_numerically][reverse_sort]" ( (type_descriptor "__compar_fn_t" type_identifier) ) (subscript_expression "sorters[sort_numerically][reverse_sort]" (subscript_expression "sorters[sort_numerically]" identifier [ identifier ]) [ identifier ])) ))) ;) (expression_statement "local_68 = (undefined8 *)0x0;" (assignment_expression "local_68 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "p_Var11 = abfd->xvec->_bfd_make_empty_symbol;" (assignment_expression "p_Var11 = abfd->xvec->_bfd_make_empty_symbol" identifier = (field_expression "abfd->xvec->_bfd_make_empty_symbol" (field_expression "abfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) }) (else_clause "else {\n            qsort(minisyms,sVar7,__size,size_forward1);\n            local_68 = (undefined8 *)xmalloc(sVar7 << 4);\n            paVar29 = sort_x;\n            paVar6 = sort_y;\n            pvVar20 = (void *)((long)pvVar24 + sVar7 * __size);\n            if (pvVar24 < pvVar20) {\n              paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);\n              puVar19 = local_68;\n              if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);\n              sVar7 = (long)puVar18 - (long)local_68 >> 4;\n            }\n            else {\n              sVar7 = 0;\n            }\n            qsort(local_68,sVar7,0x10,size_forward2);\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }" else (compound_statement "{\n            qsort(minisyms,sVar7,__size,size_forward1);\n            local_68 = (undefined8 *)xmalloc(sVar7 << 4);\n            paVar29 = sort_x;\n            paVar6 = sort_y;\n            pvVar20 = (void *)((long)pvVar24 + sVar7 * __size);\n            if (pvVar24 < pvVar20) {\n              paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);\n              puVar19 = local_68;\n              if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);\n              sVar7 = (long)puVar18 - (long)local_68 >> 4;\n            }\n            else {\n              sVar7 = 0;\n            }\n            qsort(local_68,sVar7,0x10,size_forward2);\n            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;\n          }" { (expression_statement "qsort(minisyms,sVar7,__size,size_forward1);" (call_expression "qsort(minisyms,sVar7,__size,size_forward1)" identifier (argument_list "(minisyms,sVar7,__size,size_forward1)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_68 = (undefined8 *)xmalloc(sVar7 << 4);" (assignment_expression "local_68 = (undefined8 *)xmalloc(sVar7 << 4)" identifier = (cast_expression "(undefined8 *)xmalloc(sVar7 << 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar7 << 4)" identifier (argument_list "(sVar7 << 4)" ( (binary_expression "sVar7 << 4" identifier << number_literal) ))))) ;) (expression_statement "paVar29 = sort_x;" (assignment_expression "paVar29 = sort_x" identifier = identifier) ;) (expression_statement "paVar6 = sort_y;" (assignment_expression "paVar6 = sort_y" identifier = identifier) ;) (expression_statement "pvVar20 = (void *)((long)pvVar24 + sVar7 * __size);" (assignment_expression "pvVar20 = (void *)((long)pvVar24 + sVar7 * __size)" identifier = (cast_expression "(void *)((long)pvVar24 + sVar7 * __size)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar24 + sVar7 * __size)" ( (binary_expression "(long)pvVar24 + sVar7 * __size" (cast_expression "(long)pvVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "sVar7 * __size" identifier * identifier)) )))) ;) (if_statement "if (pvVar24 < pvVar20) {\n              paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);\n              puVar19 = local_68;\n              if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);\n              sVar7 = (long)puVar18 - (long)local_68 >> 4;\n            }\n            else {\n              sVar7 = 0;\n            }" if (parenthesized_expression "(pvVar24 < pvVar20)" ( (binary_expression "pvVar24 < pvVar20" identifier < identifier) )) (compound_statement "{\n              paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);\n              puVar19 = local_68;\n              if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);\n              sVar7 = (long)puVar18 - (long)local_68 >> 4;\n            }" { (expression_statement "paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x);" (assignment_expression "paVar8 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x)" identifier = (call_expression "(*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,sort_x)" (parenthesized_expression "(*abfd->xvec->_minisymbol_to_symbol)" ( (pointer_expression "*abfd->xvec->_minisymbol_to_symbol" * (field_expression "abfd->xvec->_minisymbol_to_symbol" (field_expression "abfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(abfd,iVar3,pvVar24,sort_x)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar19 = local_68;" (assignment_expression "puVar19 = local_68" identifier = identifier) ;) (if_statement "if (paVar8 == (asymbol *)0x0) goto LAB_00104f21;" if (parenthesized_expression "(paVar8 == (asymbol *)0x0)" ( (binary_expression "paVar8 == (asymbol *)0x0" identifier == (cast_expression "(asymbol *)0x0" ( (type_descriptor "asymbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00104f21;" goto statement_identifier ;)) (labeled_statement "LAB_00104bad:\n              do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);" statement_identifier : (do_statement "do {\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              } while (pvVar24 < pvVar20);" do (compound_statement "{\n                paVar9 = paVar29;\n                paVar29 = paVar6;\n                pvVar17 = pvVar24;\n                pvVar24 = (void *)((long)pvVar17 + __size);\n                paVar6 = paVar9;\n                if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }\n                puVar19 = puVar18;\n                paVar8 = paVar9;\n              }" { (expression_statement "paVar9 = paVar29;" (assignment_expression "paVar9 = paVar29" identifier = identifier) ;) (expression_statement "paVar29 = paVar6;" (assignment_expression "paVar29 = paVar6" identifier = identifier) ;) (expression_statement "pvVar17 = pvVar24;" (assignment_expression "pvVar17 = pvVar24" identifier = identifier) ;) (expression_statement "pvVar24 = (void *)((long)pvVar17 + __size);" (assignment_expression "pvVar24 = (void *)((long)pvVar17 + __size)" identifier = (cast_expression "(void *)((long)pvVar17 + __size)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar17 + __size)" ( (binary_expression "(long)pvVar17 + __size" (cast_expression "(long)pvVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (expression_statement "paVar6 = paVar9;" (assignment_expression "paVar6 = paVar9" identifier = identifier) ;) (if_statement "if (pvVar24 < pvVar20) {\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }\n                else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }" if (parenthesized_expression "(pvVar24 < pvVar20)" ( (binary_expression "pvVar24 < pvVar20" identifier < identifier) )) (compound_statement "{\n                  paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);\n                  if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }\n                  pbVar15 = paVar8->section;\n                  if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;\n                  pcVar14 = (char *)paVar8->value;\n                  if (paVar9->section != pbVar15) goto LAB_00104b7b;\nLAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);\n                  paVar8 = paVar9;\n                  if (pcVar14 == (char *)0x0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar19 = pvVar17;\n                  puVar18 = puVar19 + 2;\n                  puVar19[1] = pcVar14;\n                }" { (expression_statement "paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29);" (assignment_expression "paVar9 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29)" identifier = (call_expression "(*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,paVar29)" (parenthesized_expression "(*abfd->xvec->_minisymbol_to_symbol)" ( (pointer_expression "*abfd->xvec->_minisymbol_to_symbol" * (field_expression "abfd->xvec->_minisymbol_to_symbol" (field_expression "abfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(abfd,iVar3,pvVar24,paVar29)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (paVar9 == (asymbol *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }" if (parenthesized_expression "(paVar9 == (asymbol *)0x0)" ( (binary_expression "paVar9 == (asymbol *)0x0" identifier == (cast_expression "(asymbol *)0x0" ( (type_descriptor "asymbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    bfd_fatal(abfd->filename);\n                  }" { comment (expression_statement "bfd_fatal(abfd->filename);" (call_expression "bfd_fatal(abfd->filename)" identifier (argument_list "(abfd->filename)" ( (field_expression "abfd->filename" identifier -> field_identifier) ))) ;) })) (expression_statement "pbVar15 = paVar8->section;" (assignment_expression "pbVar15 = paVar8->section" identifier = (field_expression "paVar8->section" identifier -> field_identifier)) ;) (if_statement "if ((paVar8->flags & 0x200100) == 0) goto LAB_00104e70;" if (parenthesized_expression "((paVar8->flags & 0x200100) == 0)" ( (binary_expression "(paVar8->flags & 0x200100) == 0" (parenthesized_expression "(paVar8->flags & 0x200100)" ( (binary_expression "paVar8->flags & 0x200100" (field_expression "paVar8->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00104e70;" goto statement_identifier ;)) (expression_statement "pcVar14 = (char *)paVar8->value;" (assignment_expression "pcVar14 = (char *)paVar8->value" identifier = (cast_expression "(char *)paVar8->value" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "paVar8->value" identifier -> field_identifier))) ;) (if_statement "if (paVar9->section != pbVar15) goto LAB_00104b7b;" if (parenthesized_expression "(paVar9->section != pbVar15)" ( (binary_expression "paVar9->section != pbVar15" (field_expression "paVar9->section" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_00104b7b;" goto statement_identifier ;)) (labeled_statement "LAB_00104ea0:\n                  pcVar14 = (char *)(paVar9->value - (long)pcVar14);" statement_identifier : (expression_statement "pcVar14 = (char *)(paVar9->value - (long)pcVar14);" (assignment_expression "pcVar14 = (char *)(paVar9->value - (long)pcVar14)" identifier = (cast_expression "(char *)(paVar9->value - (long)pcVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar9->value - (long)pcVar14)" ( (binary_expression "paVar9->value - (long)pcVar14" (field_expression "paVar9->value" identifier -> field_identifier) - (cast_expression "(long)pcVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;)) (expression_statement "paVar8 = paVar9;" (assignment_expression "paVar8 = paVar9" identifier = identifier) ;) (if_statement "if (pcVar14 == (char *)0x0) goto LAB_00104bad;" if (parenthesized_expression "(pcVar14 == (char *)0x0)" ( (binary_expression "pcVar14 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00104bad;" goto statement_identifier ;)) (labeled_statement "LAB_00104b8a:\n                  *puVar19 = pvVar17;" statement_identifier : (expression_statement "*puVar19 = pvVar17;" (assignment_expression "*puVar19 = pvVar17" (pointer_expression "*puVar19" * identifier) = identifier) ;)) (expression_statement "puVar18 = puVar19 + 2;" (assignment_expression "puVar18 = puVar19 + 2" identifier = (binary_expression "puVar19 + 2" identifier + number_literal)) ;) (expression_statement "puVar19[1] = pcVar14;" (assignment_expression "puVar19[1] = pcVar14" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }" else (compound_statement "{\n                  pbVar15 = paVar8->section;\n                  paVar9 = (asymbol *)0x0;\n                  if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }\n                  puVar18 = puVar19;\n                  if (pcVar14 != (char *)0x0) goto LAB_00104b8a;\n                }" { (expression_statement "pbVar15 = paVar8->section;" (assignment_expression "pbVar15 = paVar8->section" identifier = (field_expression "paVar8->section" identifier -> field_identifier)) ;) (expression_statement "paVar9 = (asymbol *)0x0;" (assignment_expression "paVar9 = (asymbol *)0x0" identifier = (cast_expression "(asymbol *)0x0" ( (type_descriptor "asymbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((paVar8->flags & 0x200100) == 0) {\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }" if (parenthesized_expression "((paVar8->flags & 0x200100) == 0)" ( (binary_expression "(paVar8->flags & 0x200100) == 0" (parenthesized_expression "(paVar8->flags & 0x200100)" ( (binary_expression "paVar8->flags & 0x200100" (field_expression "paVar8->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }" { (labeled_statement "LAB_00104e70:\n                    if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }" statement_identifier : (if_statement "if (abfd->xvec->flavour == bfd_target_elf_flavour) {\n                      pcVar14 = paVar8[1].name;\n                    }\n                    else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }" if (parenthesized_expression "(abfd->xvec->flavour == bfd_target_elf_flavour)" ( (binary_expression "abfd->xvec->flavour == bfd_target_elf_flavour" (field_expression "abfd->xvec->flavour" (field_expression "abfd->xvec" identifier -> field_identifier) -> field_identifier) == identifier) )) (compound_statement "{\n                      pcVar14 = paVar8[1].name;\n                    }" { (expression_statement "pcVar14 = paVar8[1].name;" (assignment_expression "pcVar14 = paVar8[1].name" identifier = (field_expression "paVar8[1].name" (subscript_expression "paVar8[1]" identifier [ number_literal ]) . field_identifier)) ;) }) (else_clause "else {\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }" else (compound_statement "{\n                      pcVar14 = (char *)paVar8->value;\n                      if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }" { (expression_statement "pcVar14 = (char *)paVar8->value;" (assignment_expression "pcVar14 = (char *)paVar8->value" identifier = (cast_expression "(char *)paVar8->value" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "paVar8->value" identifier -> field_identifier))) ;) (if_statement "if ((pbVar15->flags & 0x1000) == 0) {\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }" if (parenthesized_expression "((pbVar15->flags & 0x1000) == 0)" ( (binary_expression "(pbVar15->flags & 0x1000) == 0" (parenthesized_expression "(pbVar15->flags & 0x1000)" ( (binary_expression "pbVar15->flags & 0x1000" (field_expression "pbVar15->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                        if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }" { (if_statement "if ((pvVar24 < pvVar20) && (paVar9->section == pbVar15)) goto LAB_00104ea0;" if (parenthesized_expression "((pvVar24 < pvVar20) && (paVar9->section == pbVar15))" ( (binary_expression "(pvVar24 < pvVar20) && (paVar9->section == pbVar15)" (parenthesized_expression "(pvVar24 < pvVar20)" ( (binary_expression "pvVar24 < pvVar20" identifier < identifier) )) && (parenthesized_expression "(paVar9->section == pbVar15)" ( (binary_expression "paVar9->section == pbVar15" (field_expression "paVar9->section" identifier -> field_identifier) == identifier) ))) )) (goto_statement "goto LAB_00104ea0;" goto statement_identifier ;)) (goto_statement "goto LAB_00104b7b;" goto statement_identifier ;) })) })))) }) (else_clause "else {\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }" else (compound_statement "{\n                    pcVar14 = (char *)paVar8->value;\nLAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);\n                  }" { (expression_statement "pcVar14 = (char *)paVar8->value;" (assignment_expression "pcVar14 = (char *)paVar8->value" identifier = (cast_expression "(char *)paVar8->value" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "paVar8->value" identifier -> field_identifier))) ;) (labeled_statement "LAB_00104b7b:\n                    pcVar14 = (char *)(pbVar15->size - (long)pcVar14);" statement_identifier : (expression_statement "pcVar14 = (char *)(pbVar15->size - (long)pcVar14);" (assignment_expression "pcVar14 = (char *)(pbVar15->size - (long)pcVar14)" identifier = (cast_expression "(char *)(pbVar15->size - (long)pcVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar15->size - (long)pcVar14)" ( (binary_expression "pbVar15->size - (long)pcVar14" (field_expression "pbVar15->size" identifier -> field_identifier) - (cast_expression "(long)pcVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;)) }))) (expression_statement "puVar18 = puVar19;" (assignment_expression "puVar18 = puVar19" identifier = identifier) ;) (if_statement "if (pcVar14 != (char *)0x0) goto LAB_00104b8a;" if (parenthesized_expression "(pcVar14 != (char *)0x0)" ( (binary_expression "pcVar14 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00104b8a;" goto statement_identifier ;)) }))) (expression_statement "puVar19 = puVar18;" (assignment_expression "puVar19 = puVar18" identifier = identifier) ;) (expression_statement "paVar8 = paVar9;" (assignment_expression "paVar8 = paVar9" identifier = identifier) ;) }) while (parenthesized_expression "(pvVar24 < pvVar20)" ( (binary_expression "pvVar24 < pvVar20" identifier < identifier) )) ;)) (expression_statement "sVar7 = (long)puVar18 - (long)local_68 >> 4;" (assignment_expression "sVar7 = (long)puVar18 - (long)local_68 >> 4" identifier = (binary_expression "(long)puVar18 - (long)local_68 >> 4" (binary_expression "(long)puVar18 - (long)local_68" (cast_expression "(long)puVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)local_68" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal)) ;) }) (else_clause "else {\n              sVar7 = 0;\n            }" else (compound_statement "{\n              sVar7 = 0;\n            }" { (expression_statement "sVar7 = 0;" (assignment_expression "sVar7 = 0" identifier = number_literal) ;) }))) (expression_statement "qsort(local_68,sVar7,0x10,size_forward2);" (call_expression "qsort(local_68,sVar7,0x10,size_forward2)" identifier (argument_list "(local_68,sVar7,0x10,size_forward2)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "p_Var11 = abfd->xvec->_bfd_make_empty_symbol;" (assignment_expression "p_Var11 = abfd->xvec->_bfd_make_empty_symbol" identifier = (field_expression "abfd->xvec->_bfd_make_empty_symbol" (field_expression "abfd->xvec" identifier -> field_identifier) -> field_identifier)) ;) }))) }) (else_clause "else {\n          local_68 = (undefined8 *)0x0;\n        }" else (compound_statement "{\n          local_68 = (undefined8 *)0x0;\n        }" { (expression_statement "local_68 = (undefined8 *)0x0;" (assignment_expression "local_68 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "pvVar24 = minisyms;" (assignment_expression "pvVar24 = minisyms" identifier = identifier) ;) (expression_statement "iVar3 = dynamic;" (assignment_expression "iVar3 = dynamic" identifier = identifier) ;) (if_statement "if (sort_by_size == 0) {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            pvVar20 = (void *)(sVar7 * size + (long)pvVar24);\n            for (; pvVar24 < pvVar20; pvVar24 = (void *)((long)pvVar24 + (ulong)size)) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,0,archive_bfd);\n            }\nLAB_00104d08:\n            if (synthsyms != (asymbol *)0x0) {\n              free(synthsyms);\n            }\n            free(minisyms);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            for (puVar19 = local_68; puVar19 < local_68 + sVar7 * 2; puVar19 = puVar19 + 2) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,puVar19[1],archive_bfd);\n            }\n            goto LAB_00104d08;\n          }\n        }" if (parenthesized_expression "(sort_by_size == 0)" ( (binary_expression "sort_by_size == 0" identifier == number_literal) )) (compound_statement "{\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            pvVar20 = (void *)(sVar7 * size + (long)pvVar24);\n            for (; pvVar24 < pvVar20; pvVar24 = (void *)((long)pvVar24 + (ulong)size)) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,0,archive_bfd);\n            }\nLAB_00104d08:\n            if (synthsyms != (asymbol *)0x0) {\n              free(synthsyms);\n            }\n            free(minisyms);\n            free(local_68);\n            return;\n          }\n        }" { (expression_statement "pbVar5 = (*p_Var11)(abfd);" (assignment_expression "pbVar5 = (*p_Var11)(abfd)" identifier = (call_expression "(*p_Var11)(abfd)" (parenthesized_expression "(*p_Var11)" ( (pointer_expression "*p_Var11" * identifier) )) (argument_list "(abfd)" ( identifier )))) ;) (if_statement "if (pbVar5 != (bfd_symbol *)0x0) {\n            pvVar20 = (void *)(sVar7 * size + (long)pvVar24);\n            for (; pvVar24 < pvVar20; pvVar24 = (void *)((long)pvVar24 + (ulong)size)) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,0,archive_bfd);\n            }\nLAB_00104d08:\n            if (synthsyms != (asymbol *)0x0) {\n              free(synthsyms);\n            }\n            free(minisyms);\n            free(local_68);\n            return;\n          }" if (parenthesized_expression "(pbVar5 != (bfd_symbol *)0x0)" ( (binary_expression "pbVar5 != (bfd_symbol *)0x0" identifier != (cast_expression "(bfd_symbol *)0x0" ( (type_descriptor "bfd_symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pvVar20 = (void *)(sVar7 * size + (long)pvVar24);\n            for (; pvVar24 < pvVar20; pvVar24 = (void *)((long)pvVar24 + (ulong)size)) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,0,archive_bfd);\n            }\nLAB_00104d08:\n            if (synthsyms != (asymbol *)0x0) {\n              free(synthsyms);\n            }\n            free(minisyms);\n            free(local_68);\n            return;\n          }" { (expression_statement "pvVar20 = (void *)(sVar7 * size + (long)pvVar24);" (assignment_expression "pvVar20 = (void *)(sVar7 * size + (long)pvVar24)" identifier = (cast_expression "(void *)(sVar7 * size + (long)pvVar24)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar7 * size + (long)pvVar24)" ( (binary_expression "sVar7 * size + (long)pvVar24" (binary_expression "sVar7 * size" identifier * identifier) + (cast_expression "(long)pvVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (for_statement "for (; pvVar24 < pvVar20; pvVar24 = (void *)((long)pvVar24 + (ulong)size)) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,0,archive_bfd);\n            }" for ( ; (binary_expression "pvVar24 < pvVar20" identifier < identifier) ; (assignment_expression "pvVar24 = (void *)((long)pvVar24 + (ulong)size)" identifier = (cast_expression "(void *)((long)pvVar24 + (ulong)size)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar24 + (ulong)size)" ( (binary_expression "(long)pvVar24 + (ulong)size" (cast_expression "(long)pvVar24" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)size" ( (type_descriptor "ulong" type_identifier) ) identifier)) )))) ) (compound_statement "{\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,0,archive_bfd);\n            }" { (expression_statement "paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5);" (assignment_expression "paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5)" identifier = (call_expression "(*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,pvVar24,pbVar5)" (parenthesized_expression "(*abfd->xvec->_minisymbol_to_symbol)" ( (pointer_expression "*abfd->xvec->_minisymbol_to_symbol" * (field_expression "abfd->xvec->_minisymbol_to_symbol" (field_expression "abfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(abfd,iVar3,pvVar24,pbVar5)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;" if (parenthesized_expression "(paVar6 == (asymbol *)0x0)" ( (binary_expression "paVar6 == (asymbol *)0x0" identifier == (cast_expression "(asymbol *)0x0" ( (type_descriptor "asymbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00104f21;" goto statement_identifier ;)) (expression_statement "print_symbol(abfd,paVar6,0,archive_bfd);" (call_expression "print_symbol(abfd,paVar6,0,archive_bfd)" identifier (argument_list "(abfd,paVar6,0,archive_bfd)" ( identifier , identifier , number_literal , identifier ))) ;) })) (labeled_statement "LAB_00104d08:\n            if (synthsyms != (asymbol *)0x0) {\n              free(synthsyms);\n            }" statement_identifier : (if_statement "if (synthsyms != (asymbol *)0x0) {\n              free(synthsyms);\n            }" if (parenthesized_expression "(synthsyms != (asymbol *)0x0)" ( (binary_expression "synthsyms != (asymbol *)0x0" identifier != (cast_expression "(asymbol *)0x0" ( (type_descriptor "asymbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              free(synthsyms);\n            }" { (expression_statement "free(synthsyms);" (call_expression "free(synthsyms)" identifier (argument_list "(synthsyms)" ( identifier ))) ;) }))) (expression_statement "free(minisyms);" (call_expression "free(minisyms)" identifier (argument_list "(minisyms)" ( identifier ))) ;) (expression_statement "free(local_68);" (call_expression "free(local_68)" identifier (argument_list "(local_68)" ( identifier ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            for (puVar19 = local_68; puVar19 < local_68 + sVar7 * 2; puVar19 = puVar19 + 2) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,puVar19[1],archive_bfd);\n            }\n            goto LAB_00104d08;\n          }\n        }" else (compound_statement "{\n          pbVar5 = (*p_Var11)(abfd);\n          if (pbVar5 != (bfd_symbol *)0x0) {\n            for (puVar19 = local_68; puVar19 < local_68 + sVar7 * 2; puVar19 = puVar19 + 2) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,puVar19[1],archive_bfd);\n            }\n            goto LAB_00104d08;\n          }\n        }" { (expression_statement "pbVar5 = (*p_Var11)(abfd);" (assignment_expression "pbVar5 = (*p_Var11)(abfd)" identifier = (call_expression "(*p_Var11)(abfd)" (parenthesized_expression "(*p_Var11)" ( (pointer_expression "*p_Var11" * identifier) )) (argument_list "(abfd)" ( identifier )))) ;) (if_statement "if (pbVar5 != (bfd_symbol *)0x0) {\n            for (puVar19 = local_68; puVar19 < local_68 + sVar7 * 2; puVar19 = puVar19 + 2) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,puVar19[1],archive_bfd);\n            }\n            goto LAB_00104d08;\n          }" if (parenthesized_expression "(pbVar5 != (bfd_symbol *)0x0)" ( (binary_expression "pbVar5 != (bfd_symbol *)0x0" identifier != (cast_expression "(bfd_symbol *)0x0" ( (type_descriptor "bfd_symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            for (puVar19 = local_68; puVar19 < local_68 + sVar7 * 2; puVar19 = puVar19 + 2) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,puVar19[1],archive_bfd);\n            }\n            goto LAB_00104d08;\n          }" { (for_statement "for (puVar19 = local_68; puVar19 < local_68 + sVar7 * 2; puVar19 = puVar19 + 2) {\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,puVar19[1],archive_bfd);\n            }" for ( (assignment_expression "puVar19 = local_68" identifier = identifier) ; (binary_expression "puVar19 < local_68 + sVar7 * 2" identifier < (binary_expression "local_68 + sVar7 * 2" identifier + (binary_expression "sVar7 * 2" identifier * number_literal))) ; (assignment_expression "puVar19 = puVar19 + 2" identifier = (binary_expression "puVar19 + 2" identifier + number_literal)) ) (compound_statement "{\n              paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);\n              if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;\n              print_symbol(abfd,paVar6,puVar19[1],archive_bfd);\n            }" { (expression_statement "paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5);" (assignment_expression "paVar6 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5)" identifier = (call_expression "(*abfd->xvec->_minisymbol_to_symbol)(abfd,iVar3,(void *)*puVar19,pbVar5)" (parenthesized_expression "(*abfd->xvec->_minisymbol_to_symbol)" ( (pointer_expression "*abfd->xvec->_minisymbol_to_symbol" * (field_expression "abfd->xvec->_minisymbol_to_symbol" (field_expression "abfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(abfd,iVar3,(void *)*puVar19,pbVar5)" ( identifier , identifier , (cast_expression "(void *)*puVar19" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar19" * identifier)) , identifier )))) ;) (if_statement "if (paVar6 == (asymbol *)0x0) goto LAB_00104f21;" if (parenthesized_expression "(paVar6 == (asymbol *)0x0)" ( (binary_expression "paVar6 == (asymbol *)0x0" identifier == (cast_expression "(asymbol *)0x0" ( (type_descriptor "asymbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00104f21;" goto statement_identifier ;)) (expression_statement "print_symbol(abfd,paVar6,puVar19[1],archive_bfd);" (call_expression "print_symbol(abfd,paVar6,puVar19[1],archive_bfd)" identifier (argument_list "(abfd,paVar6,puVar19[1],archive_bfd)" ( identifier , identifier , (subscript_expression "puVar19[1]" identifier [ number_literal ]) , identifier ))) ;) })) (goto_statement "goto LAB_00104d08;" goto statement_identifier ;) })) }))) })) (labeled_statement "LAB_00104f21:\n                    /* WARNING: Subroutine does not return */\n      bfd_fatal(abfd->filename);" statement_identifier : comment (expression_statement "bfd_fatal(abfd->filename);" (call_expression "bfd_fatal(abfd->filename)" identifier (argument_list "(abfd->filename)" ( (field_expression "abfd->filename" identifier -> field_identifier) ))) ;)) })))) })) (expression_statement "pcVar14 = abfd->filename;" (assignment_expression "pcVar14 = abfd->filename" identifier = (field_expression "abfd->filename" identifier -> field_identifier)) ;) (expression_statement "pcVar10 = (char *)dcgettext(0,"%s: no symbols",5);" (assignment_expression "pcVar10 = (char *)dcgettext(0,"%s: no symbols",5)" identifier = (cast_expression "(char *)dcgettext(0,"%s: no symbols",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%s: no symbols",5)" identifier (argument_list "(0,"%s: no symbols",5)" ( number_literal , (string_literal ""%s: no symbols"" " string_content ") , number_literal ))))) ;) (expression_statement "non_fatal(pcVar10,pcVar14);" (call_expression "non_fatal(pcVar10,pcVar14)" identifier (argument_list "(pcVar10,pcVar14)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00104760(undefined8 *param_1,undefined8 param_2)\n\n{\n  uint uVar1;\n  char *pcVar2;\n  undefined8 uVar3;\n  int iVar4;\n  int iVar5;\n  long lVar6;\n  long lVar7;\n  size_t sVar8;\n  long lVar9;\n  long lVar10;\n  undefined8 uVar11;\n  code *pcVar12;\n  ulong uVar13;\n  long lVar14;\n  void *pvVar15;\n  ulong *puVar16;\n  ulong *puVar17;\n  void *pvVar18;\n  long *plVar19;\n  long *plVar20;\n  void *__src;\n  void *pvVar22;\n  byte *pbVar23;\n  ulong __size;\n  byte *pbVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  ulong *local_68;\n  uint local_4c;\n  void *local_48;\n  void *local_40 [2];\n  long *plVar21;\n  \n  bVar27 = 0;\n  local_40[0] = (void *)0x0;\n  if ((DAT_0010cc20 != 0) || ((*(byte *)((long)param_1 + 0x45) & 2) != 0)) {\n    lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c);\n    if (lVar6 < 0) {\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    \n      FUN_00106090(*param_1);\n    }\n  }\n  uVar3 = *param_1;\n  uVar11 = dcgettext(0,"%s: no symbols",5);\n  FUN_001061b0(uVar11,uVar3);\n  return;\n}\n\n" (function_definition "void FUN_00104760(undefined8 *param_1,undefined8 param_2)\n\n{\n  uint uVar1;\n  char *pcVar2;\n  undefined8 uVar3;\n  int iVar4;\n  int iVar5;\n  long lVar6;\n  long lVar7;\n  size_t sVar8;\n  long lVar9;\n  long lVar10;\n  undefined8 uVar11;\n  code *pcVar12;\n  ulong uVar13;\n  long lVar14;\n  void *pvVar15;\n  ulong *puVar16;\n  ulong *puVar17;\n  void *pvVar18;\n  long *plVar19;\n  long *plVar20;\n  void *__src;\n  void *pvVar22;\n  byte *pbVar23;\n  ulong __size;\n  byte *pbVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  ulong *local_68;\n  uint local_4c;\n  void *local_48;\n  void *local_40 [2];\n  long *plVar21;\n  \n  bVar27 = 0;\n  local_40[0] = (void *)0x0;\n  if ((DAT_0010cc20 != 0) || ((*(byte *)((long)param_1 + 0x45) & 2) != 0)) {\n    lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c);\n    if (lVar6 < 0) {\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    \n      FUN_00106090(*param_1);\n    }\n  }\n  uVar3 = *param_1;\n  uVar11 = dcgettext(0,"%s: no symbols",5);\n  FUN_001061b0(uVar11,uVar3);\n  return;\n}" primitive_type (function_declarator "FUN_00104760(undefined8 *param_1,undefined8 param_2)" identifier (parameter_list "(undefined8 *param_1,undefined8 param_2)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  char *pcVar2;\n  undefined8 uVar3;\n  int iVar4;\n  int iVar5;\n  long lVar6;\n  long lVar7;\n  size_t sVar8;\n  long lVar9;\n  long lVar10;\n  undefined8 uVar11;\n  code *pcVar12;\n  ulong uVar13;\n  long lVar14;\n  void *pvVar15;\n  ulong *puVar16;\n  ulong *puVar17;\n  void *pvVar18;\n  long *plVar19;\n  long *plVar20;\n  void *__src;\n  void *pvVar22;\n  byte *pbVar23;\n  ulong __size;\n  byte *pbVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  ulong *local_68;\n  uint local_4c;\n  void *local_48;\n  void *local_40 [2];\n  long *plVar21;\n  \n  bVar27 = 0;\n  local_40[0] = (void *)0x0;\n  if ((DAT_0010cc20 != 0) || ((*(byte *)((long)param_1 + 0x45) & 2) != 0)) {\n    lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c);\n    if (lVar6 < 0) {\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    \n      FUN_00106090(*param_1);\n    }\n  }\n  uVar3 = *param_1;\n  uVar11 = dcgettext(0,"%s: no symbols",5);\n  FUN_001061b0(uVar11,uVar3);\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar10;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar11;" type_identifier identifier ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "long lVar14;" (sized_type_specifier "long" long) identifier ;) (declaration "void *pvVar15;" primitive_type (pointer_declarator "*pvVar15" * identifier) ;) (declaration "ulong *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "ulong *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "void *pvVar18;" primitive_type (pointer_declarator "*pvVar18" * identifier) ;) (declaration "long *plVar19;" (sized_type_specifier "long" long) (pointer_declarator "*plVar19" * identifier) ;) (declaration "long *plVar20;" (sized_type_specifier "long" long) (pointer_declarator "*plVar20" * identifier) ;) (declaration "void *__src;" primitive_type (pointer_declarator "*__src" * identifier) ;) (declaration "void *pvVar22;" primitive_type (pointer_declarator "*pvVar22" * identifier) ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "ulong __size;" type_identifier identifier ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "byte bVar27;" type_identifier identifier ;) (declaration "ulong *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "void *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "void *local_40 [2];" primitive_type (pointer_declarator "*local_40 [2]" * (array_declarator "local_40 [2]" identifier [ number_literal ])) ;) (declaration "long *plVar21;" (sized_type_specifier "long" long) (pointer_declarator "*plVar21" * identifier) ;) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" identifier = number_literal) ;) (expression_statement "local_40[0] = (void *)0x0;" (assignment_expression "local_40[0] = (void *)0x0" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((DAT_0010cc20 != 0) || ((*(byte *)((long)param_1 + 0x45) & 2) != 0)) {\n    lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c);\n    if (lVar6 < 0) {\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    \n      FUN_00106090(*param_1);\n    }\n  }" if (parenthesized_expression "((DAT_0010cc20 != 0) || ((*(byte *)((long)param_1 + 0x45) & 2) != 0))" ( (binary_expression "(DAT_0010cc20 != 0) || ((*(byte *)((long)param_1 + 0x45) & 2) != 0)" (parenthesized_expression "(DAT_0010cc20 != 0)" ( (binary_expression "DAT_0010cc20 != 0" identifier != number_literal) )) || (parenthesized_expression "((*(byte *)((long)param_1 + 0x45) & 2) != 0)" ( (binary_expression "(*(byte *)((long)param_1 + 0x45) & 2) != 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x45) & 2)" ( (binary_expression "*(byte *)((long)param_1 + 0x45) & 2" (pointer_expression "*(byte *)((long)param_1 + 0x45)" * (cast_expression "(byte *)((long)param_1 + 0x45)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x45)" ( (binary_expression "(long)param_1 + 0x45" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c);\n    if (lVar6 < 0) {\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    \n      FUN_00106090(*param_1);\n    }\n  }" { (expression_statement "lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c);" (assignment_expression "lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c)" identifier = (call_expression "(**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c)" (parenthesized_expression "(**(code **)(param_1[1] + 600))" ( (pointer_expression "**(code **)(param_1[1] + 600)" * (pointer_expression "*(code **)(param_1[1] + 600)" * (cast_expression "(code **)(param_1[1] + 600)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 600)" ( (binary_expression "param_1[1] + 600" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,DAT_0010cc20,&local_48,&local_4c)" ( identifier , identifier , (pointer_expression "&local_48" & identifier) , (pointer_expression "&local_4c" & identifier) )))) ;) (if_statement "if (lVar6 < 0) {\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    \n      FUN_00106090(*param_1);\n    }" if (parenthesized_expression "(lVar6 < 0)" ( (binary_expression "lVar6 < 0" identifier < number_literal) )) (compound_statement "{\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }" { (if_statement "if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;" if (parenthesized_expression "((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7))" ( (binary_expression "(DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)" (parenthesized_expression "(DAT_0010cc20 == 0)" ( (binary_expression "DAT_0010cc20 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar5 = bfd_get_error(), iVar5 != 7)" ( (comma_expression "iVar5 = bfd_get_error(), iVar5 != 7" (assignment_expression "iVar5 = bfd_get_error()" identifier = (call_expression "bfd_get_error()" identifier (argument_list "()" ( )))) , (binary_expression "iVar5 != 7" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00104f21;" goto statement_identifier ;)) }) (else_clause "else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    \n      FUN_00106090(*param_1);\n    }" else (if_statement "if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    \n      FUN_00106090(*param_1);\n    }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    \n      FUN_00106090(*param_1);\n    }" { (expression_statement "sVar8 = (size_t)local_4c;" (assignment_expression "sVar8 = (size_t)local_4c" identifier = (cast_expression "(size_t)local_4c" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "lVar7 = param_1[1];" (assignment_expression "lVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }" if (parenthesized_expression "((DAT_0010cc18 != 0) && (local_4c == 8))" ( (binary_expression "(DAT_0010cc18 != 0) && (local_4c == 8)" (parenthesized_expression "(DAT_0010cc18 != 0)" ( (binary_expression "DAT_0010cc18 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_4c == 8)" ( (binary_expression "local_4c == 8" identifier == number_literal) ))) )) (compound_statement "{\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }" { (if_statement "if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }" if (parenthesized_expression "(DAT_0010cc20 == 0)" ( (binary_expression "DAT_0010cc20 == 0" identifier == number_literal) )) (compound_statement "{\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }" { (expression_statement "lVar7 = (**(code **)(lVar7 + 0x338))(param_1);" (assignment_expression "lVar7 = (**(code **)(lVar7 + 0x338))(param_1)" identifier = (call_expression "(**(code **)(lVar7 + 0x338))(param_1)" (parenthesized_expression "(**(code **)(lVar7 + 0x338))" ( (pointer_expression "**(code **)(lVar7 + 0x338)" * (pointer_expression "*(code **)(lVar7 + 0x338)" * (cast_expression "(code **)(lVar7 + 0x338)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar7 + 0x338)" ( (binary_expression "lVar7 + 0x338" identifier + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pvVar22 = local_48;" (assignment_expression "pvVar22 = local_48" identifier = identifier) ;) (expression_statement "lVar10 = lVar6;" (assignment_expression "lVar10 = lVar6" identifier = identifier) ;) (if_statement "if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }" if (parenthesized_expression "(lVar7 < 1)" ( (binary_expression "lVar7 < 1" identifier < number_literal) )) (compound_statement "{\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }" { (expression_statement "lVar7 = param_1[1];" (assignment_expression "lVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "lVar9 = 0;" (assignment_expression "lVar9 = 0" identifier = number_literal) ;) (expression_statement "pvVar18 = (void *)0x0;" (assignment_expression "pvVar18 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }" else (compound_statement "{\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }" { (expression_statement "pvVar18 = (void *)xmalloc(lVar7);" (assignment_expression "pvVar18 = (void *)xmalloc(lVar7)" identifier = (cast_expression "(void *)xmalloc(lVar7)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(lVar7)" identifier (argument_list "(lVar7)" ( identifier ))))) ;) (expression_statement "lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);" (assignment_expression "lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18)" identifier = (call_expression "(**(code **)(param_1[1] + 0x340))(param_1,pvVar18)" (parenthesized_expression "(**(code **)(param_1[1] + 0x340))" ( (pointer_expression "**(code **)(param_1[1] + 0x340)" * (pointer_expression "*(code **)(param_1[1] + 0x340)" * (cast_expression "(code **)(param_1[1] + 0x340)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x340)" ( (binary_expression "param_1[1] + 0x340" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,pvVar18)" ( identifier , identifier )))) ;) (if_statement "if (lVar9 < 0) goto LAB_00104f21;" if (parenthesized_expression "(lVar9 < 0)" ( (binary_expression "lVar9 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00104f21;" goto statement_identifier ;)) (expression_statement "lVar7 = param_1[1];" (assignment_expression "lVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) }))) }) (else_clause "else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }" else (compound_statement "{\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }" { (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (expression_statement "pvVar22 = (void *)0x0;" (assignment_expression "pvVar22 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "lVar9 = lVar6;" (assignment_expression "lVar9 = lVar6" identifier = identifier) ;) (expression_statement "pvVar18 = local_48;" (assignment_expression "pvVar18 = local_48" identifier = identifier) ;) }))) (expression_statement "lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);" (assignment_expression "lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40)" identifier = (call_expression "(**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40)" (parenthesized_expression "(**(code **)(lVar7 + 0x348))" ( (pointer_expression "**(code **)(lVar7 + 0x348)" * (pointer_expression "*(code **)(lVar7 + 0x348)" * (cast_expression "(code **)(lVar7 + 0x348)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar7 + 0x348)" ( (binary_expression "lVar7 + 0x348" identifier + number_literal) ))))) )) (argument_list "(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }" if (parenthesized_expression "(lVar9 < 1)" ( (binary_expression "lVar9 < 1" identifier < number_literal) )) (compound_statement "{\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }" { (expression_statement "sVar8 = (size_t)local_4c;" (assignment_expression "sVar8 = (size_t)local_4c" identifier = (cast_expression "(size_t)local_4c" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "lVar7 = param_1[1];" (assignment_expression "lVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }" else (compound_statement "{\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }" { (expression_statement "pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);" (assignment_expression "pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8)" identifier = (cast_expression "(void *)xmalloc((lVar6 + lVar9) * 8 + 8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc((lVar6 + lVar9) * 8 + 8)" identifier (argument_list "((lVar6 + lVar9) * 8 + 8)" ( (binary_expression "(lVar6 + lVar9) * 8 + 8" (binary_expression "(lVar6 + lVar9) * 8" (parenthesized_expression "(lVar6 + lVar9)" ( (binary_expression "lVar6 + lVar9" identifier + identifier) )) * number_literal) + number_literal) ))))) ;) (expression_statement "memcpy(pvVar18,local_48,lVar6 * 8);" (call_expression "memcpy(pvVar18,local_48,lVar6 * 8)" identifier (argument_list "(pvVar18,local_48,lVar6 * 8)" ( identifier , identifier , (binary_expression "lVar6 * 8" identifier * number_literal) ))) ;) (expression_statement "plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);" (assignment_expression "plVar19 = (long *)(lVar6 * 8 + (long)pvVar18)" identifier = (cast_expression "(long *)(lVar6 * 8 + (long)pvVar18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 * 8 + (long)pvVar18)" ( (binary_expression "lVar6 * 8 + (long)pvVar18" (binary_expression "lVar6 * 8" identifier * number_literal) + (cast_expression "(long)pvVar18" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "pvVar22 = local_40[0];" (assignment_expression "pvVar22 = local_40[0]" identifier = (subscript_expression "local_40[0]" identifier [ number_literal ])) ;) (expression_statement "plVar20 = plVar19;" (assignment_expression "plVar20 = plVar19" identifier = identifier) ;) (do_statement "do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);" do (compound_statement "{\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          }" { (expression_statement "plVar21 = plVar20 + 1;" (assignment_expression "plVar21 = plVar20 + 1" identifier = (binary_expression "plVar20 + 1" identifier + number_literal)) ;) (expression_statement "*plVar20 = (long)pvVar22;" (assignment_expression "*plVar20 = (long)pvVar22" (pointer_expression "*plVar20" * identifier) = (cast_expression "(long)pvVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "pvVar22 = (void *)((long)pvVar22 + 0x30);" (assignment_expression "pvVar22 = (void *)((long)pvVar22 + 0x30)" identifier = (cast_expression "(void *)((long)pvVar22 + 0x30)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar22 + 0x30)" ( (binary_expression "(long)pvVar22 + 0x30" (cast_expression "(long)pvVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "plVar20 = plVar21;" (assignment_expression "plVar20 = plVar21" identifier = identifier) ;) }) while (parenthesized_expression "(plVar21 != plVar19 + lVar9)" ( (binary_expression "plVar21 != plVar19 + lVar9" identifier != (binary_expression "plVar19 + lVar9" identifier + identifier)) )) ;) (expression_statement "sVar8 = (size_t)local_4c;" (assignment_expression "sVar8 = (size_t)local_4c" identifier = (cast_expression "(size_t)local_4c" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "lVar7 = param_1[1];" (assignment_expression "lVar7 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "*plVar21 = 0;" (assignment_expression "*plVar21 = 0" (pointer_expression "*plVar21" * identifier) = number_literal) ;) (expression_statement "lVar6 = lVar6 + lVar9;" (assignment_expression "lVar6 = lVar6 + lVar9" identifier = (binary_expression "lVar6 + lVar9" identifier + identifier)) ;) (expression_statement "local_48 = pvVar18;" (assignment_expression "local_48 = pvVar18" identifier = identifier) ;) }))) })) (expression_statement "pvVar22 = local_48;" (assignment_expression "pvVar22 = local_48" identifier = identifier) ;) (expression_statement "iVar5 = DAT_0010cc20;" (assignment_expression "iVar5 = DAT_0010cc20" identifier = identifier) ;) (expression_statement "lVar7 = (**(code **)(lVar7 + 0x200))(param_1);" (assignment_expression "lVar7 = (**(code **)(lVar7 + 0x200))(param_1)" identifier = (call_expression "(**(code **)(lVar7 + 0x200))(param_1)" (parenthesized_expression "(**(code **)(lVar7 + 0x200))" ( (pointer_expression "**(code **)(lVar7 + 0x200)" * (pointer_expression "*(code **)(lVar7 + 0x200)" * (cast_expression "(code **)(lVar7 + 0x200)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar7 + 0x200)" ( (binary_expression "lVar7 + 0x200" identifier + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }" if (parenthesized_expression "(lVar7 != 0)" ( (binary_expression "lVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }" { (expression_statement "pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);" (assignment_expression "pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8)" identifier = (cast_expression "(void *)((long)pvVar22 + lVar6 * sVar8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar22 + lVar6 * sVar8)" ( (binary_expression "(long)pvVar22 + lVar6 * sVar8" (cast_expression "(long)pvVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "lVar6 * sVar8" identifier * identifier)) )))) ;) (expression_statement "pvVar15 = pvVar22;" (assignment_expression "pvVar15 = pvVar22" identifier = identifier) ;) (expression_statement "__src = pvVar22;" (assignment_expression "__src = pvVar22" identifier = identifier) ;) (if_statement "if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }" if (parenthesized_expression "(pvVar22 < pvVar18)" ( (binary_expression "pvVar22 < pvVar18" identifier < identifier) )) (compound_statement "{\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }" { (labeled_statement "LAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);" statement_identifier : (do_statement "do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);" do (compound_statement "{\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          }" { (expression_statement "lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);" (assignment_expression "lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7)" identifier = (call_expression "(**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7)" (parenthesized_expression "(**(code **)(param_1[1] + 0x260))" ( (pointer_expression "**(code **)(param_1[1] + 0x260)" * (pointer_expression "*(code **)(param_1[1] + 0x260)" * (cast_expression "(code **)(param_1[1] + 0x260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x260)" ( (binary_expression "param_1[1] + 0x260" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,iVar5,__src,lVar7)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }" if (parenthesized_expression "(lVar6 == 0)" ( (binary_expression "lVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n              FUN_00106090(*param_1);\n            }" { (expression_statement "FUN_00106090(*param_1);" (call_expression "FUN_00106090(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))) ;) })) (expression_statement "pcVar2 = *(char **)(lVar6 + 8);" (assignment_expression "pcVar2 = *(char **)(lVar6 + 8)" identifier = (pointer_expression "*(char **)(lVar6 + 8)" * (cast_expression "(char **)(lVar6 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar6 + 8)" ( (binary_expression "lVar6 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }" if (parenthesized_expression "((*pcVar2 == '_') && (pcVar2[1] == '_'))" ( (binary_expression "(*pcVar2 == '_') && (pcVar2[1] == '_')" (parenthesized_expression "(*pcVar2 == '_')" ( (binary_expression "*pcVar2 == '_'" (pointer_expression "*pcVar2" * identifier) == (char_literal "'_'" ' character ')) )) && (parenthesized_expression "(pcVar2[1] == '_')" ( (binary_expression "pcVar2[1] == '_'" (subscript_expression "pcVar2[1]" identifier [ number_literal ]) == (char_literal "'_'" ' character ')) ))) )) (compound_statement "{\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }" { (expression_statement "lVar9 = 0xf;" (assignment_expression "lVar9 = 0xf" identifier = number_literal) ;) (expression_statement "bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));" (assignment_expression "bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'))" identifier = (call_expression "CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'))" identifier (argument_list "((ulong)pcVar2,(ulong)(pcVar2[2] == '_'))" ( (cast_expression "(ulong)pcVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) , (call_expression "(ulong)(pcVar2[2] == '_')" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar2[2] == '_')" ( (binary_expression "pcVar2[2] == '_'" (subscript_expression "pcVar2[2]" identifier [ number_literal ]) == (char_literal "'_'" ' character ')) ))) )))) ;) (expression_statement "bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;" (assignment_expression "bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0" identifier = (binary_expression "(byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0" (cast_expression "(byte *)(pcVar2 + (pcVar2[2] == '_'))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + (pcVar2[2] == '_'))" ( (binary_expression "pcVar2 + (pcVar2[2] == '_')" identifier + (parenthesized_expression "(pcVar2[2] == '_')" ( (binary_expression "pcVar2[2] == '_'" (subscript_expression "pcVar2[2]" identifier [ number_literal ]) == (char_literal "'_'" ' character ')) ))) ))) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));" (assignment_expression "pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'))" identifier = (cast_expression "(byte *)(pcVar2 + (pcVar2[2] == '_'))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + (pcVar2[2] == '_'))" ( (binary_expression "pcVar2 + (pcVar2[2] == '_')" identifier + (parenthesized_expression "(pcVar2[2] == '_')" ( (binary_expression "pcVar2[2] == '_'" (subscript_expression "pcVar2[2]" identifier [ number_literal ]) == (char_literal "'_'" ' character ')) ))) )))) ;) (expression_statement "pbVar24 = (byte *)"__gnu_lto_slim";" (assignment_expression "pbVar24 = (byte *)"__gnu_lto_slim"" identifier = (cast_expression "(byte *)"__gnu_lto_slim"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""__gnu_lto_slim"" " string_content "))) ;) (do_statement "do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);" do (compound_statement "{\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              }" { (if_statement "if (lVar9 == 0) break;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" identifier = (binary_expression "lVar9 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar23 < *pbVar24;" (assignment_expression "bVar25 = *pbVar23 < *pbVar24" identifier = (binary_expression "*pbVar23 < *pbVar24" (pointer_expression "*pbVar23" * identifier) < (pointer_expression "*pbVar24" * identifier))) ;) (expression_statement "bVar26 = *pbVar23 == *pbVar24;" (assignment_expression "bVar26 = *pbVar23 == *pbVar24" identifier = (binary_expression "*pbVar23 == *pbVar24" (pointer_expression "*pbVar23" * identifier) == (pointer_expression "*pbVar24" * identifier))) ;) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1" identifier = (binary_expression "pbVar23 + (ulong)bVar27 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar27 * -2" identifier + (binary_expression "(ulong)bVar27 * -2" (cast_expression "(ulong)bVar27" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;" (assignment_expression "pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1" identifier = (binary_expression "pbVar24 + (ulong)bVar27 * -2 + 1" (binary_expression "pbVar24 + (ulong)bVar27 * -2" identifier + (binary_expression "(ulong)bVar27 * -2" (cast_expression "(ulong)bVar27" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }" if (parenthesized_expression "((!bVar25 && !bVar26) == bVar25)" ( (binary_expression "(!bVar25 && !bVar26) == bVar25" (parenthesized_expression "(!bVar25 && !bVar26)" ( (binary_expression "!bVar25 && !bVar26" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }" { (expression_statement "uVar3 = *param_1;" (assignment_expression "uVar3 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);" (assignment_expression "uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5)" identifier = (call_expression "dcgettext(0,"%s: plugin needed to handle lto object",5)" identifier (argument_list "(0,"%s: plugin needed to handle lto object",5)" ( number_literal , (string_literal ""%s: plugin needed to handle lto object"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_001061b0(uVar11,uVar3);" (call_expression "FUN_001061b0(uVar11,uVar3)" identifier (argument_list "(uVar11,uVar3)" ( identifier , identifier ))) ;) })) })) (if_statement "if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }" if (parenthesized_expression "(DAT_0010cc24 != 0)" ( (binary_expression "DAT_0010cc24 != 0" identifier != number_literal) )) (compound_statement "{\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }" { (if_statement "if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;" if (parenthesized_expression "((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0))))" ( (binary_expression "(*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))" (parenthesized_expression "(*(long *)(lVar6 + 0x20) != 0x10c838)" ( (binary_expression "*(long *)(lVar6 + 0x20) != 0x10c838" (pointer_expression "*(long *)(lVar6 + 0x20)" * (cast_expression "(long *)(lVar6 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))" ( (parenthesized_expression "((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0))" ( (binary_expression "(DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)" (parenthesized_expression "(DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0))" ( (binary_expression "DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)" (binary_expression "DAT_0010cc3c == 0" identifier == number_literal) && (parenthesized_expression "((*(byte *)(lVar6 + 0x18) & 4) != 0)" ( (binary_expression "(*(byte *)(lVar6 + 0x18) & 4) != 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x18) & 4)" ( (binary_expression "*(byte *)(lVar6 + 0x18) & 4" (pointer_expression "*(byte *)(lVar6 + 0x18)" * (cast_expression "(byte *)(lVar6 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "(DAT_0010cc28 != 0)" ( (binary_expression "DAT_0010cc28 != 0" identifier != number_literal) ))) )) ))) )) (goto_statement "goto LAB_00104897;" goto statement_identifier ;)) (labeled_statement "LAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }" statement_identifier : (if_statement "if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }" if (parenthesized_expression "((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838))" ( (binary_expression "(DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)" (parenthesized_expression "(DAT_0010cc44 == 0)" ( (binary_expression "DAT_0010cc44 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(long *)(lVar6 + 0x20) != 0x10c838)" ( (binary_expression "*(long *)(lVar6 + 0x20) != 0x10c838" (pointer_expression "*(long *)(lVar6 + 0x20)" * (cast_expression "(long *)(lVar6 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }" { (labeled_statement "LAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);" statement_identifier : (expression_statement "iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);" (assignment_expression "iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6)" identifier = (call_expression "(**(code **)(param_1[1] + 0x228))(param_1,lVar6)" (parenthesized_expression "(**(code **)(param_1[1] + 0x228))" ( (pointer_expression "**(code **)(param_1[1] + 0x228)" * (pointer_expression "*(code **)(param_1[1] + 0x228)" * (cast_expression "(code **)(param_1[1] + 0x228)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x228)" ( (binary_expression "param_1[1] + 0x228" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,lVar6)" ( identifier , identifier )))) ;)) (if_statement "if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }" if (parenthesized_expression "((iVar4 == 0) || (DAT_0010cc10 != 0))" ( (binary_expression "(iVar4 == 0) || (DAT_0010cc10 != 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(DAT_0010cc10 != 0)" ( (binary_expression "DAT_0010cc10 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }" { (if_statement "if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }" if (parenthesized_expression "(__src != pvVar15)" ( (binary_expression "__src != pvVar15" identifier != identifier) )) (compound_statement "{\n                    memcpy(pvVar15,__src,sVar8);\n                  }" { (expression_statement "memcpy(pvVar15,__src,sVar8);" (call_expression "memcpy(pvVar15,__src,sVar8)" identifier (argument_list "(pvVar15,__src,sVar8)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pvVar15 = (void *)((long)pvVar15 + sVar8);" (assignment_expression "pvVar15 = (void *)((long)pvVar15 + sVar8)" identifier = (cast_expression "(void *)((long)pvVar15 + sVar8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar15 + sVar8)" ( (binary_expression "(long)pvVar15 + sVar8" (cast_expression "(long)pvVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) })) }))) (labeled_statement "LAB_00104897:\n              __src = (void *)((long)__src + sVar8);" statement_identifier : (expression_statement "__src = (void *)((long)__src + sVar8);" (assignment_expression "__src = (void *)((long)__src + sVar8)" identifier = (cast_expression "(void *)((long)__src + sVar8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__src + sVar8)" ( (binary_expression "(long)__src + sVar8" (cast_expression "(long)__src" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;)) (if_statement "if (pvVar18 <= __src) break;" if (parenthesized_expression "(pvVar18 <= __src)" ( (binary_expression "pvVar18 <= __src" identifier <= identifier) )) (break_statement "break;" break ;)) (goto_statement "goto LAB_001048a5;" goto statement_identifier ;) })) (if_statement "if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }" if (parenthesized_expression "(DAT_0010cc48 != 0)" ( (binary_expression "DAT_0010cc48 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }" { (expression_statement "uVar1 = *(uint *)(lVar6 + 0x18);" (assignment_expression "uVar1 = *(uint *)(lVar6 + 0x18)" identifier = (pointer_expression "*(uint *)(lVar6 + 0x18)" * (cast_expression "(uint *)(lVar6 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }" if (parenthesized_expression "((uVar1 & 0x800082) == 0)" ( (binary_expression "(uVar1 & 0x800082) == 0" (parenthesized_expression "(uVar1 & 0x800082)" ( (binary_expression "uVar1 & 0x800082" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }" { (if_statement "if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;" if (parenthesized_expression "(*(long *)(lVar6 + 0x20) == 0x10c838)" ( (binary_expression "*(long *)(lVar6 + 0x20) == 0x10c838" (pointer_expression "*(long *)(lVar6 + 0x20)" * (cast_expression "(long *)(lVar6 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }" { (if_statement "if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;" if (parenthesized_expression "(((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0))))" ( (binary_expression "((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))" (parenthesized_expression "((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0))" ( (binary_expression "(DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)" (parenthesized_expression "(DAT_0010cc3c != 0)" ( (binary_expression "DAT_0010cc3c != 0" identifier != number_literal) )) || (parenthesized_expression "((uVar1 & 4) == 0)" ( (binary_expression "(uVar1 & 4) == 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))" ( (parenthesized_expression "(DAT_0010cc28 == 0 && (DAT_0010cc44 == 0))" ( (binary_expression "DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)" (binary_expression "DAT_0010cc28 == 0" identifier == number_literal) && (parenthesized_expression "(DAT_0010cc44 == 0)" ( (binary_expression "DAT_0010cc44 == 0" identifier == number_literal) ))) )) ))) )) (goto_statement "goto LAB_00104861;" goto statement_identifier ;)) }) (else_clause "else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;" else (if_statement "if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;" if (parenthesized_expression "((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0)" ( (binary_expression "(*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0" (parenthesized_expression "(*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10)" ( (binary_expression "*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10" (pointer_expression "*(byte *)(*(long *)(lVar6 + 0x20) + 0x21)" * (cast_expression "(byte *)(*(long *)(lVar6 + 0x20) + 0x21)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar6 + 0x20) + 0x21)" ( (binary_expression "*(long *)(lVar6 + 0x20) + 0x21" (pointer_expression "*(long *)(lVar6 + 0x20)" * (cast_expression "(long *)(lVar6 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00104913;" goto statement_identifier ;)))) }) (else_clause "else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }" else (compound_statement "{\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }" { (labeled_statement "LAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;" statement_identifier : (if_statement "if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;" if (parenthesized_expression "((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0))" ( (binary_expression "(DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)" (parenthesized_expression "(DAT_0010cc3c != 0)" ( (binary_expression "DAT_0010cc3c != 0" identifier != number_literal) )) || (parenthesized_expression "((uVar1 & 4) == 0)" ( (binary_expression "(uVar1 & 4) == 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00104928;" goto statement_identifier ;))) }))) (goto_statement "goto LAB_00104897;" goto statement_identifier ;) })) (if_statement "if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }" if (parenthesized_expression "((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0))" ( (binary_expression "(DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)" (parenthesized_expression "(DAT_0010cc3c != 0)" ( (binary_expression "DAT_0010cc3c != 0" identifier != number_literal) )) || (parenthesized_expression "((*(byte *)(lVar6 + 0x18) & 4) == 0)" ( (binary_expression "(*(byte *)(lVar6 + 0x18) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x18) & 4)" ( (binary_expression "*(byte *)(lVar6 + 0x18) & 4" (pointer_expression "*(byte *)(lVar6 + 0x18)" * (cast_expression "(byte *)(lVar6 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }" { (labeled_statement "LAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;" statement_identifier : (if_statement "if (DAT_0010cc28 == 0) goto LAB_00104851;" if (parenthesized_expression "(DAT_0010cc28 == 0)" ( (binary_expression "DAT_0010cc28 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00104851;" goto statement_identifier ;))) (if_statement "if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;" if (parenthesized_expression "((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))" ( (binary_expression "(*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950)" (parenthesized_expression "(*(long *)(lVar6 + 0x20) == 0x10c838)" ( (binary_expression "*(long *)(lVar6 + 0x20) == 0x10c838" (pointer_expression "*(long *)(lVar6 + 0x20)" * (cast_expression "(long *)(lVar6 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(long *)(lVar6 + 0x20) == 0x10c950)" ( (binary_expression "*(long *)(lVar6 + 0x20) == 0x10c950" (pointer_expression "*(long *)(lVar6 + 0x20)" * (cast_expression "(long *)(lVar6 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x20)" ( (binary_expression "lVar6 + 0x20" identifier + number_literal) )))) == number_literal) ))) )) (goto_statement "goto LAB_00104897;" goto statement_identifier ;)) (goto_statement "goto LAB_00104861;" goto statement_identifier ;) })) (expression_statement "__src = (void *)((long)__src + sVar8);" (assignment_expression "__src = (void *)((long)__src + sVar8)" identifier = (cast_expression "(void *)((long)__src + sVar8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__src + sVar8)" ( (binary_expression "(long)__src + sVar8" (cast_expression "(long)__src" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) }) while (parenthesized_expression "(__src < pvVar18)" ( (binary_expression "__src < pvVar18" identifier < identifier) )) ;)) (expression_statement "sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;" (assignment_expression "sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8" identifier = (binary_expression "((long)pvVar15 - (long)pvVar22) / (long)sVar8" (parenthesized_expression "((long)pvVar15 - (long)pvVar22)" ( (binary_expression "(long)pvVar15 - (long)pvVar22" (cast_expression "(long)pvVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pvVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) / (cast_expression "(long)sVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) }) (else_clause "else {\n          sVar8 = 0;\n        }" else (compound_statement "{\n          sVar8 = 0;\n        }" { (expression_statement "sVar8 = 0;" (assignment_expression "sVar8 = 0" identifier = number_literal) ;) }))) (expression_statement "pcVar12 = *(code **)(param_1[1] + 0x200);" (assignment_expression "pcVar12 = *(code **)(param_1[1] + 0x200)" identifier = (pointer_expression "*(code **)(param_1[1] + 0x200)" * (cast_expression "(code **)(param_1[1] + 0x200)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x200)" ( (binary_expression "param_1[1] + 0x200" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }" if (parenthesized_expression "(DAT_0010cc40 == 0)" ( (binary_expression "DAT_0010cc40 == 0" identifier == number_literal) )) (compound_statement "{\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }" { (expression_statement "DAT_0010cbd8 = DAT_0010cc20;" (assignment_expression "DAT_0010cbd8 = DAT_0010cc20" identifier = identifier) ;) (expression_statement "DAT_0010cbe0 = param_1;" (assignment_expression "DAT_0010cbe0 = param_1" identifier = identifier) ;) (expression_statement "DAT_0010cbd0 = (*pcVar12)(param_1);" (assignment_expression "DAT_0010cbd0 = (*pcVar12)(param_1)" identifier = (call_expression "(*pcVar12)(param_1)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);" (assignment_expression "DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1)" identifier = (call_expression "(**(code **)(param_1[1] + 0x200))(param_1)" (parenthesized_expression "(**(code **)(param_1[1] + 0x200))" ( (pointer_expression "**(code **)(param_1[1] + 0x200)" * (pointer_expression "*(code **)(param_1[1] + 0x200)" * (cast_expression "(code **)(param_1[1] + 0x200)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x200)" ( (binary_expression "param_1[1] + 0x200" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pvVar22 = local_48;" (assignment_expression "pvVar22 = local_48" identifier = identifier) ;) (expression_statement "iVar5 = DAT_0010cc20;" (assignment_expression "iVar5 = DAT_0010cc20" identifier = identifier) ;) (if_statement "if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;" if (parenthesized_expression "((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0))" ( (binary_expression "(DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)" (parenthesized_expression "(DAT_0010cbd0 == 0)" ( (binary_expression "DAT_0010cbd0 == 0" identifier == number_literal) )) || (parenthesized_expression "(DAT_0010cbc8 == 0)" ( (binary_expression "DAT_0010cbc8 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00104f21;" goto statement_identifier ;)) (expression_statement "__size = (ulong)local_4c;" (assignment_expression "__size = (ulong)local_4c" identifier = (cast_expression "(ulong)local_4c" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }" if (parenthesized_expression "(DAT_0010cc28 == 0)" ( (binary_expression "DAT_0010cc28 == 0" identifier == number_literal) )) (compound_statement "{\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }" { (expression_statement "qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);" (call_expression "qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2])" identifier (argument_list "(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2])" ( identifier , identifier , identifier , (subscript_expression "(__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]" (call_expression "(__compar_fn_t)(&PTR_FUN_0010bd80)" (parenthesized_expression "(__compar_fn_t)" ( identifier )) (argument_list "(&PTR_FUN_0010bd80)" ( (pointer_expression "&PTR_FUN_0010bd80" & identifier) ))) [ (binary_expression "(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2" (cast_expression "(long)DAT_0010cc30" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(long)DAT_0010cc2c * 2" (cast_expression "(long)DAT_0010cc2c" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) ]) ))) ;) (expression_statement "local_68 = (ulong *)0x0;" (assignment_expression "local_68 = (ulong *)0x0" identifier = (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar12 = *(code **)(param_1[1] + 0x200);" (assignment_expression "pcVar12 = *(code **)(param_1[1] + 0x200)" identifier = (pointer_expression "*(code **)(param_1[1] + 0x200)" * (cast_expression "(code **)(param_1[1] + 0x200)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x200)" ( (binary_expression "param_1[1] + 0x200" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) ;) }) (else_clause "else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }" else (compound_statement "{\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }" { (expression_statement "qsort(local_48,sVar8,__size,FUN_00103ec0);" (call_expression "qsort(local_48,sVar8,__size,FUN_00103ec0)" identifier (argument_list "(local_48,sVar8,__size,FUN_00103ec0)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_68 = (ulong *)xmalloc(sVar8 << 4);" (assignment_expression "local_68 = (ulong *)xmalloc(sVar8 << 4)" identifier = (cast_expression "(ulong *)xmalloc(sVar8 << 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar8 << 4)" identifier (argument_list "(sVar8 << 4)" ( (binary_expression "sVar8 << 4" identifier << number_literal) ))))) ;) (expression_statement "lVar7 = DAT_0010cbd0;" (assignment_expression "lVar7 = DAT_0010cbd0" identifier = identifier) ;) (expression_statement "lVar6 = DAT_0010cbc8;" (assignment_expression "lVar6 = DAT_0010cbc8" identifier = identifier) ;) (expression_statement "pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);" (assignment_expression "pvVar18 = (void *)((long)pvVar22 + sVar8 * __size)" identifier = (cast_expression "(void *)((long)pvVar22 + sVar8 * __size)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar22 + sVar8 * __size)" ( (binary_expression "(long)pvVar22 + sVar8 * __size" (cast_expression "(long)pvVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "sVar8 * __size" identifier * identifier)) )))) ;) (if_statement "if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }" if (parenthesized_expression "(pvVar22 < pvVar18)" ( (binary_expression "pvVar22 < pvVar18" identifier < identifier) )) (compound_statement "{\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }" { (expression_statement "lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);" (assignment_expression "lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0)" identifier = (call_expression "(**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0)" (parenthesized_expression "(**(code **)(param_1[1] + 0x260))" ( (pointer_expression "**(code **)(param_1[1] + 0x260)" * (pointer_expression "*(code **)(param_1[1] + 0x260)" * (cast_expression "(code **)(param_1[1] + 0x260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x260)" ( (binary_expression "param_1[1] + 0x260" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,iVar5,pvVar22,DAT_0010cbd0)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar17 = local_68;" (assignment_expression "puVar17 = local_68" identifier = identifier) ;) (if_statement "if (lVar9 == 0) goto LAB_00104f21;" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00104f21;" goto statement_identifier ;)) (labeled_statement "LAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);" statement_identifier : (do_statement "do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);" do (compound_statement "{\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              }" { (expression_statement "lVar10 = lVar7;" (assignment_expression "lVar10 = lVar7" identifier = identifier) ;) (expression_statement "lVar7 = lVar6;" (assignment_expression "lVar7 = lVar6" identifier = identifier) ;) (expression_statement "pvVar15 = pvVar22;" (assignment_expression "pvVar15 = pvVar22" identifier = identifier) ;) (expression_statement "pvVar22 = (void *)((long)pvVar15 + __size);" (assignment_expression "pvVar22 = (void *)((long)pvVar15 + __size)" identifier = (cast_expression "(void *)((long)pvVar15 + __size)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar15 + __size)" ( (binary_expression "(long)pvVar15 + __size" (cast_expression "(long)pvVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ;) (expression_statement "lVar6 = lVar10;" (assignment_expression "lVar6 = lVar10" identifier = identifier) ;) (if_statement "if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }" if (parenthesized_expression "(pvVar22 < pvVar18)" ( (binary_expression "pvVar22 < pvVar18" identifier < identifier) )) (compound_statement "{\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }" { (expression_statement "lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);" (assignment_expression "lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7)" identifier = (call_expression "(**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7)" (parenthesized_expression "(**(code **)(param_1[1] + 0x260))" ( (pointer_expression "**(code **)(param_1[1] + 0x260)" * (pointer_expression "*(code **)(param_1[1] + 0x260)" * (cast_expression "(code **)(param_1[1] + 0x260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x260)" ( (binary_expression "param_1[1] + 0x260" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,iVar5,pvVar22,lVar7)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }" if (parenthesized_expression "(lVar10 == 0)" ( (binary_expression "lVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n                    FUN_00106090(*param_1);\n                  }" { (expression_statement "FUN_00106090(*param_1);" (call_expression "FUN_00106090(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))) ;) })) (expression_statement "lVar14 = *(long *)(lVar9 + 0x20);" (assignment_expression "lVar14 = *(long *)(lVar9 + 0x20)" identifier = (pointer_expression "*(long *)(lVar9 + 0x20)" * (cast_expression "(long *)(lVar9 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x20)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) ))))) ;) (if_statement "if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;" if (parenthesized_expression "((*(uint *)(lVar9 + 0x18) & 0x200100) == 0)" ( (binary_expression "(*(uint *)(lVar9 + 0x18) & 0x200100) == 0" (parenthesized_expression "(*(uint *)(lVar9 + 0x18) & 0x200100)" ( (binary_expression "*(uint *)(lVar9 + 0x18) & 0x200100" (pointer_expression "*(uint *)(lVar9 + 0x18)" * (cast_expression "(uint *)(lVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00104e70;" goto statement_identifier ;)) (expression_statement "uVar13 = *(ulong *)(lVar9 + 0x10);" (assignment_expression "uVar13 = *(ulong *)(lVar9 + 0x10)" identifier = (pointer_expression "*(ulong *)(lVar9 + 0x10)" * (cast_expression "(ulong *)(lVar9 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;" if (parenthesized_expression "(*(long *)(lVar10 + 0x20) != lVar14)" ( (binary_expression "*(long *)(lVar10 + 0x20) != lVar14" (pointer_expression "*(long *)(lVar10 + 0x20)" * (cast_expression "(long *)(lVar10 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x20)" ( (binary_expression "lVar10 + 0x20" identifier + number_literal) )))) != identifier) )) (goto_statement "goto LAB_00104b7b;" goto statement_identifier ;)) (labeled_statement "LAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;" statement_identifier : (expression_statement "uVar13 = *(long *)(lVar10 + 0x10) - uVar13;" (assignment_expression "uVar13 = *(long *)(lVar10 + 0x10) - uVar13" identifier = (binary_expression "*(long *)(lVar10 + 0x10) - uVar13" (pointer_expression "*(long *)(lVar10 + 0x10)" * (cast_expression "(long *)(lVar10 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x10)" ( (binary_expression "lVar10 + 0x10" identifier + number_literal) )))) - identifier)) ;)) (expression_statement "lVar9 = lVar10;" (assignment_expression "lVar9 = lVar10" identifier = identifier) ;) (if_statement "if (uVar13 == 0) goto LAB_00104bad;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00104bad;" goto statement_identifier ;)) (labeled_statement "LAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;" statement_identifier : (expression_statement "*puVar17 = (ulong)pvVar15;" (assignment_expression "*puVar17 = (ulong)pvVar15" (pointer_expression "*puVar17" * identifier) = (cast_expression "(ulong)pvVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;)) (expression_statement "puVar16 = puVar17 + 2;" (assignment_expression "puVar16 = puVar17 + 2" identifier = (binary_expression "puVar17 + 2" identifier + number_literal)) ;) (expression_statement "puVar17[1] = uVar13;" (assignment_expression "puVar17[1] = uVar13" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }" else (compound_statement "{\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }" { (expression_statement "lVar14 = *(long *)(lVar9 + 0x20);" (assignment_expression "lVar14 = *(long *)(lVar9 + 0x20)" identifier = (pointer_expression "*(long *)(lVar9 + 0x20)" * (cast_expression "(long *)(lVar9 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x20)" ( (binary_expression "lVar9 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" identifier = number_literal) ;) (if_statement "if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }" if (parenthesized_expression "((*(uint *)(lVar9 + 0x18) & 0x200100) == 0)" ( (binary_expression "(*(uint *)(lVar9 + 0x18) & 0x200100) == 0" (parenthesized_expression "(*(uint *)(lVar9 + 0x18) & 0x200100)" ( (binary_expression "*(uint *)(lVar9 + 0x18) & 0x200100" (pointer_expression "*(uint *)(lVar9 + 0x18)" * (cast_expression "(uint *)(lVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x18)" ( (binary_expression "lVar9 + 0x18" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }" { (labeled_statement "LAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }" statement_identifier : (if_statement "if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }" if (parenthesized_expression "(*(int *)(param_1[1] + 8) == 5)" ( (binary_expression "*(int *)(param_1[1] + 8) == 5" (pointer_expression "*(int *)(param_1[1] + 8)" * (cast_expression "(int *)(param_1[1] + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[1] + 8)" ( (binary_expression "param_1[1] + 8" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) (compound_statement "{\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }" { (expression_statement "uVar13 = *(ulong *)(lVar9 + 0x38);" (assignment_expression "uVar13 = *(ulong *)(lVar9 + 0x38)" identifier = (pointer_expression "*(ulong *)(lVar9 + 0x38)" * (cast_expression "(ulong *)(lVar9 + 0x38)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x38)" ( (binary_expression "lVar9 + 0x38" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }" else (compound_statement "{\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }" { (expression_statement "uVar13 = *(ulong *)(lVar9 + 0x10);" (assignment_expression "uVar13 = *(ulong *)(lVar9 + 0x10)" identifier = (pointer_expression "*(ulong *)(lVar9 + 0x10)" * (cast_expression "(ulong *)(lVar9 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }" if (parenthesized_expression "((*(byte *)(lVar14 + 0x21) & 0x10) == 0)" ( (binary_expression "(*(byte *)(lVar14 + 0x21) & 0x10) == 0" (parenthesized_expression "(*(byte *)(lVar14 + 0x21) & 0x10)" ( (binary_expression "*(byte *)(lVar14 + 0x21) & 0x10" (pointer_expression "*(byte *)(lVar14 + 0x21)" * (cast_expression "(byte *)(lVar14 + 0x21)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x21)" ( (binary_expression "lVar14 + 0x21" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }" { (if_statement "if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;" if (parenthesized_expression "((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))" ( (binary_expression "(pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14)" (parenthesized_expression "(pvVar22 < pvVar18)" ( (binary_expression "pvVar22 < pvVar18" identifier < identifier) )) && (parenthesized_expression "(*(long *)(lVar10 + 0x20) == lVar14)" ( (binary_expression "*(long *)(lVar10 + 0x20) == lVar14" (pointer_expression "*(long *)(lVar10 + 0x20)" * (cast_expression "(long *)(lVar10 + 0x20)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar10 + 0x20)" ( (binary_expression "lVar10 + 0x20" identifier + number_literal) )))) == identifier) ))) )) (goto_statement "goto LAB_00104ea0;" goto statement_identifier ;)) (goto_statement "goto LAB_00104b7b;" goto statement_identifier ;) })) })))) }) (else_clause "else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }" else (compound_statement "{\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }" { (expression_statement "uVar13 = *(ulong *)(lVar9 + 0x10);" (assignment_expression "uVar13 = *(ulong *)(lVar9 + 0x10)" identifier = (pointer_expression "*(ulong *)(lVar9 + 0x10)" * (cast_expression "(ulong *)(lVar9 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0x10)" ( (binary_expression "lVar9 + 0x10" identifier + number_literal) ))))) ;) (labeled_statement "LAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;" statement_identifier : (expression_statement "uVar13 = *(long *)(lVar14 + 0x38) - uVar13;" (assignment_expression "uVar13 = *(long *)(lVar14 + 0x38) - uVar13" identifier = (binary_expression "*(long *)(lVar14 + 0x38) - uVar13" (pointer_expression "*(long *)(lVar14 + 0x38)" * (cast_expression "(long *)(lVar14 + 0x38)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar14 + 0x38)" ( (binary_expression "lVar14 + 0x38" identifier + number_literal) )))) - identifier)) ;)) }))) (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" identifier = identifier) ;) (if_statement "if (uVar13 != 0) goto LAB_00104b8a;" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00104b8a;" goto statement_identifier ;)) }))) (expression_statement "puVar17 = puVar16;" (assignment_expression "puVar17 = puVar16" identifier = identifier) ;) (expression_statement "lVar9 = lVar10;" (assignment_expression "lVar9 = lVar10" identifier = identifier) ;) }) while (parenthesized_expression "(pvVar22 < pvVar18)" ( (binary_expression "pvVar22 < pvVar18" identifier < identifier) )) ;)) (expression_statement "sVar8 = (long)puVar16 - (long)local_68 >> 4;" (assignment_expression "sVar8 = (long)puVar16 - (long)local_68 >> 4" identifier = (binary_expression "(long)puVar16 - (long)local_68 >> 4" (binary_expression "(long)puVar16 - (long)local_68" (cast_expression "(long)puVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)local_68" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal)) ;) }) (else_clause "else {\n              sVar8 = 0;\n            }" else (compound_statement "{\n              sVar8 = 0;\n            }" { (expression_statement "sVar8 = 0;" (assignment_expression "sVar8 = 0" identifier = number_literal) ;) }))) (expression_statement "qsort(local_68,sVar8,0x10,FUN_00105010);" (call_expression "qsort(local_68,sVar8,0x10,FUN_00105010)" identifier (argument_list "(local_68,sVar8,0x10,FUN_00105010)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "pcVar12 = *(code **)(param_1[1] + 0x200);" (assignment_expression "pcVar12 = *(code **)(param_1[1] + 0x200)" identifier = (pointer_expression "*(code **)(param_1[1] + 0x200)" * (cast_expression "(code **)(param_1[1] + 0x200)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x200)" ( (binary_expression "param_1[1] + 0x200" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) ;) }))) }) (else_clause "else {\n          local_68 = (ulong *)0x0;\n        }" else (compound_statement "{\n          local_68 = (ulong *)0x0;\n        }" { (expression_statement "local_68 = (ulong *)0x0;" (assignment_expression "local_68 = (ulong *)0x0" identifier = (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "pvVar22 = local_48;" (assignment_expression "pvVar22 = local_48" identifier = identifier) ;) (expression_statement "iVar5 = DAT_0010cc20;" (assignment_expression "iVar5 = DAT_0010cc20" identifier = identifier) ;) (if_statement "if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }" if (parenthesized_expression "(DAT_0010cc28 == 0)" ( (binary_expression "DAT_0010cc28 == 0" identifier == number_literal) )) (compound_statement "{\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }" { (expression_statement "lVar6 = (*pcVar12)(param_1);" (assignment_expression "lVar6 = (*pcVar12)(param_1)" identifier = (call_expression "(*pcVar12)(param_1)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }" { (expression_statement "pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);" (assignment_expression "pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22)" identifier = (cast_expression "(void *)(sVar8 * local_4c + (long)pvVar22)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar8 * local_4c + (long)pvVar22)" ( (binary_expression "sVar8 * local_4c + (long)pvVar22" (binary_expression "sVar8 * local_4c" identifier * identifier) + (cast_expression "(long)pvVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (for_statement "for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }" for ( ; (binary_expression "pvVar22 < pvVar18" identifier < identifier) ; (assignment_expression "pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)" identifier = (cast_expression "(void *)((long)pvVar22 + (ulong)local_4c)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar22 + (ulong)local_4c)" ( (binary_expression "(long)pvVar22 + (ulong)local_4c" (cast_expression "(long)pvVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (cast_expression "(ulong)local_4c" ( (type_descriptor "ulong" type_identifier) ) identifier)) )))) ) (compound_statement "{\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }" { (expression_statement "lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);" (assignment_expression "lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6)" identifier = (call_expression "(**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6)" (parenthesized_expression "(**(code **)(param_1[1] + 0x260))" ( (pointer_expression "**(code **)(param_1[1] + 0x260)" * (pointer_expression "*(code **)(param_1[1] + 0x260)" * (cast_expression "(code **)(param_1[1] + 0x260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x260)" ( (binary_expression "param_1[1] + 0x260" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,iVar5,pvVar22,lVar6)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar7 == 0) goto LAB_00104f21;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00104f21;" goto statement_identifier ;)) (expression_statement "FUN_00104200(param_1,lVar7,0,param_2);" (call_expression "FUN_00104200(param_1,lVar7,0,param_2)" identifier (argument_list "(param_1,lVar7,0,param_2)" ( identifier , identifier , number_literal , identifier ))) ;) })) (labeled_statement "LAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }" statement_identifier : (if_statement "if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }" if (parenthesized_expression "(local_40[0] != (void *)0x0)" ( (binary_expression "local_40[0] != (void *)0x0" (subscript_expression "local_40[0]" identifier [ number_literal ]) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              free(local_40[0]);\n            }" { (expression_statement "free(local_40[0]);" (call_expression "free(local_40[0])" identifier (argument_list "(local_40[0])" ( (subscript_expression "local_40[0]" identifier [ number_literal ]) ))) ;) }))) (expression_statement "free(local_48);" (call_expression "free(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) (expression_statement "free(local_68);" (call_expression "free(local_68)" identifier (argument_list "(local_68)" ( identifier ))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }" else (compound_statement "{\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }" { (expression_statement "lVar6 = (*pcVar12)(param_1);" (assignment_expression "lVar6 = (*pcVar12)(param_1)" identifier = (call_expression "(*pcVar12)(param_1)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }" if (parenthesized_expression "(lVar6 != 0)" ( (binary_expression "lVar6 != 0" identifier != number_literal) )) (compound_statement "{\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }" { (for_statement "for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }" for ( (assignment_expression "puVar17 = local_68" identifier = identifier) ; (binary_expression "puVar17 < local_68 + sVar8 * 2" identifier < (binary_expression "local_68 + sVar8 * 2" identifier + (binary_expression "sVar8 * 2" identifier * number_literal))) ; (assignment_expression "puVar17 = puVar17 + 2" identifier = (binary_expression "puVar17 + 2" identifier + number_literal)) ) (compound_statement "{\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }" { (expression_statement "lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);" (assignment_expression "lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6)" identifier = (call_expression "(**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6)" (parenthesized_expression "(**(code **)(param_1[1] + 0x260))" ( (pointer_expression "**(code **)(param_1[1] + 0x260)" * (pointer_expression "*(code **)(param_1[1] + 0x260)" * (cast_expression "(code **)(param_1[1] + 0x260)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[1] + 0x260)" ( (binary_expression "param_1[1] + 0x260" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(param_1,iVar5,*puVar17,lVar6)" ( identifier , identifier , (pointer_expression "*puVar17" * identifier) , identifier )))) ;) (if_statement "if (lVar7 == 0) goto LAB_00104f21;" if (parenthesized_expression "(lVar7 == 0)" ( (binary_expression "lVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00104f21;" goto statement_identifier ;)) (expression_statement "FUN_00104200(param_1,lVar7,puVar17[1],param_2);" (call_expression "FUN_00104200(param_1,lVar7,puVar17[1],param_2)" identifier (argument_list "(param_1,lVar7,puVar17[1],param_2)" ( identifier , identifier , (subscript_expression "puVar17[1]" identifier [ number_literal ]) , identifier ))) ;) })) (goto_statement "goto LAB_00104d08;" goto statement_identifier ;) })) }))) })) (labeled_statement "LAB_00104f21:\n                    \n      FUN_00106090(*param_1);" statement_identifier : (expression_statement "FUN_00106090(*param_1);" (call_expression "FUN_00106090(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))) ;)) })))) })) (expression_statement "uVar3 = *param_1;" (assignment_expression "uVar3 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar11 = dcgettext(0,"%s: no symbols",5);" (assignment_expression "uVar11 = dcgettext(0,"%s: no symbols",5)" identifier = (call_expression "dcgettext(0,"%s: no symbols",5)" identifier (argument_list "(0,"%s: no symbols",5)" ( number_literal , (string_literal ""%s: no symbols"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_001061b0(uVar11,uVar3);" (call_expression "FUN_001061b0(uVar11,uVar3)" identifier (argument_list "(uVar11,uVar3)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration (sized_type_specifier long) (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 *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (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 = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) * LIT) + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT * LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + IDENT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression IDENT * IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * 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 (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) ))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) ))) ))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) ))) )))) ;) (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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == 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 IDENT != LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (goto_statement goto 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (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) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (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 (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) (goto_statement goto statement_identifier ;))) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != 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 { (labeled_statement statement_identifier : (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 (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) / (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (subscript_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (pointer_expression & IDENT) ))) [ (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT)) ]) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT << LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression IDENT * IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (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)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) })))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT)) ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) >> LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( 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 *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) (for_statement for ( ; (binary_expression IDENT < IDENT) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT < (binary_expression IDENT + (binary_expression IDENT * LIT))) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT , IDENT , (pointer_expression * IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) }))) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;)) })))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00104760(undefined8 *param_1,undefined8 param_2)\n\n{\n  uint uVar1;\n  char *pcVar2;\n  undefined8 uVar3;\n  int iVar4;\n  int iVar5;\n  long lVar6;\n  long lVar7;\n  size_t sVar8;\n  long lVar9;\n  long lVar10;\n  undefined8 uVar11;\n  code *pcVar12;\n  ulong uVar13;\n  long lVar14;\n  void *pvVar15;\n  ulong *puVar16;\n  ulong *puVar17;\n  void *pvVar18;\n  long *plVar19;\n  long *plVar20;\n  void *__src;\n  void *pvVar22;\n  byte *pbVar23;\n  ulong __size;\n  byte *pbVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  ulong *local_68;\n  uint local_4c;\n  void *local_48;\n  void *local_40 [2];\n  long *plVar21;\n  \n  bVar27 = 0;\n  local_40[0] = (void *)0x0;\n  if ((DAT_0010cc20 != 0) || ((*(byte *)((long)param_1 + 0x45) & 2) != 0)) {\n    lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c);\n    if (lVar6 < 0) {\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    \n      FUN_00106090(*param_1);\n    }\n  }\n  uVar3 = *param_1;\n  uVar11 = dcgettext(0,"%s: no symbols",5);\n  FUN_001061b0(uVar11,uVar3);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00104760(undefined8 *param_1,undefined8 param_2)" (identifier "FUN_00104760") (parameter_list "(undefined8 *param_1,undefined8 param_2)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) () ")"))) (compound_statement "{\n  uint uVar1;\n  char *pcVar2;\n  undefined8 uVar3;\n  int iVar4;\n  int iVar5;\n  long lVar6;\n  long lVar7;\n  size_t sVar8;\n  long lVar9;\n  long lVar10;\n  undefined8 uVar11;\n  code *pcVar12;\n  ulong uVar13;\n  long lVar14;\n  void *pvVar15;\n  ulong *puVar16;\n  ulong *puVar17;\n  void *pvVar18;\n  long *plVar19;\n  long *plVar20;\n  void *__src;\n  void *pvVar22;\n  byte *pbVar23;\n  ulong __size;\n  byte *pbVar24;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  ulong *local_68;\n  uint local_4c;\n  void *local_48;\n  void *local_40 [2];\n  long *plVar21;\n  \n  bVar27 = 0;\n  local_40[0] = (void *)0x0;\n  if ((DAT_0010cc20 != 0) || ((*(byte *)((long)param_1 + 0x45) & 2) != 0)) {\n    lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c);\n    if (lVar6 < 0) {\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    \n      FUN_00106090(*param_1);\n    }\n  }\n  uVar3 = *param_1;\n  uVar11 = dcgettext(0,"%s: no symbols",5);\n  FUN_001061b0(uVar11,uVar3);\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "size_t sVar8;" (primitive_type "size_t") (identifier "sVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "long lVar10;" (sized_type_specifier "long" (long "long")) (identifier "lVar10") (; ";")) (declaration "undefined8 uVar11;" (type_identifier "undefined8") (identifier "uVar11") (; ";")) (declaration "code *pcVar12;" (type_identifier "code") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "ulong uVar13;" (type_identifier "ulong") (identifier "uVar13") (; ";")) (declaration "long lVar14;" (sized_type_specifier "long" (long "long")) (identifier "lVar14") (; ";")) (declaration "void *pvVar15;" (primitive_type "void") (pointer_declarator "*pvVar15" (* "*") (identifier "pvVar15")) (; ";")) (declaration "ulong *puVar16;" (type_identifier "ulong") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "ulong *puVar17;" (type_identifier "ulong") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "void *pvVar18;" (primitive_type "void") (pointer_declarator "*pvVar18" (* "*") (identifier "pvVar18")) (; ";")) (declaration "long *plVar19;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar19" (* "*") (identifier "plVar19")) (; ";")) (declaration "long *plVar20;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar20" (* "*") (identifier "plVar20")) (; ";")) (declaration "void *__src;" (primitive_type "void") (pointer_declarator "*__src" (* "*") (identifier "__src")) (; ";")) (declaration "void *pvVar22;" (primitive_type "void") (pointer_declarator "*pvVar22" (* "*") (identifier "pvVar22")) (; ";")) (declaration "byte *pbVar23;" (type_identifier "byte") (pointer_declarator "*pbVar23" (* "*") (identifier "pbVar23")) (; ";")) (declaration "ulong __size;" (type_identifier "ulong") (identifier "__size") (; ";")) (declaration "byte *pbVar24;" (type_identifier "byte") (pointer_declarator "*pbVar24" (* "*") (identifier "pbVar24")) (; ";")) (declaration "bool bVar25;" (primitive_type "bool") (identifier "bVar25") (; ";")) (declaration "bool bVar26;" (primitive_type "bool") (identifier "bVar26") (; ";")) (declaration "byte bVar27;" (type_identifier "byte") (identifier "bVar27") (; ";")) (declaration "ulong *local_68;" (type_identifier "ulong") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "uint local_4c;" (type_identifier "uint") (identifier "local_4c") (; ";")) (declaration "void *local_48;" (primitive_type "void") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "void *local_40 [2];" (primitive_type "void") (pointer_declarator "*local_40 [2]" (* "*") (array_declarator "local_40 [2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "long *plVar21;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar21" (* "*") (identifier "plVar21")) (; ";")) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" (identifier "bVar27") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40[0] = (void *)0x0;" (assignment_expression "local_40[0] = (void *)0x0" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((DAT_0010cc20 != 0) || ((*(byte *)((long)param_1 + 0x45) & 2) != 0)) {\n    lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c);\n    if (lVar6 < 0) {\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    \n      FUN_00106090(*param_1);\n    }\n  }" (if "if") (parenthesized_expression "((DAT_0010cc20 != 0) || ((*(byte *)((long)param_1 + 0x45) & 2) != 0))" (( "(") (binary_expression "(DAT_0010cc20 != 0) || ((*(byte *)((long)param_1 + 0x45) & 2) != 0)" (parenthesized_expression "(DAT_0010cc20 != 0)" (( "(") (binary_expression "DAT_0010cc20 != 0" (identifier "DAT_0010cc20") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)((long)param_1 + 0x45) & 2) != 0)" (( "(") (binary_expression "(*(byte *)((long)param_1 + 0x45) & 2) != 0" (parenthesized_expression "(*(byte *)((long)param_1 + 0x45) & 2)" (( "(") (binary_expression "*(byte *)((long)param_1 + 0x45) & 2" (pointer_expression "*(byte *)((long)param_1 + 0x45)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x45)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x45)" (( "(") (binary_expression "(long)param_1 + 0x45" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x45")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c);\n    if (lVar6 < 0) {\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    \n      FUN_00106090(*param_1);\n    }\n  }" ({ "{") (expression_statement "lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c);" (assignment_expression "lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c)" (identifier "lVar6") (= "=") (call_expression "(**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c)" (parenthesized_expression "(**(code **)(param_1[1] + 600))" (( "(") (pointer_expression "**(code **)(param_1[1] + 600)" (* "*") (pointer_expression "*(code **)(param_1[1] + 600)" (* "*") (cast_expression "(code **)(param_1[1] + 600)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1[1] + 600)" (( "(") (binary_expression "param_1[1] + 600" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "600")) () ")"))))) () ")")) (argument_list "(param_1,DAT_0010cc20,&local_48,&local_4c)" (( "(") (identifier "param_1") (, ",") (identifier "DAT_0010cc20") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) (, ",") (pointer_expression "&local_4c" (& "&") (identifier "local_4c")) () ")")))) (; ";")) (if_statement "if (lVar6 < 0) {\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }\n    else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    \n      FUN_00106090(*param_1);\n    }" (if "if") (parenthesized_expression "(lVar6 < 0)" (( "(") (binary_expression "lVar6 < 0" (identifier "lVar6") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;\n    }" ({ "{") (if_statement "if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;" (if "if") (parenthesized_expression "((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7))" (( "(") (binary_expression "(DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)" (parenthesized_expression "(DAT_0010cc20 == 0)" (( "(") (binary_expression "DAT_0010cc20 == 0" (identifier "DAT_0010cc20") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar5 = bfd_get_error(), iVar5 != 7)" (( "(") (comma_expression "iVar5 = bfd_get_error(), iVar5 != 7" (assignment_expression "iVar5 = bfd_get_error()" (identifier "iVar5") (= "=") (call_expression "bfd_get_error()" (identifier "bfd_get_error") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar5 != 7" (identifier "iVar5") (!= "!=") (number_literal "7"))) () ")"))) () ")")) (goto_statement "goto LAB_00104f21;" (goto "goto") (statement_identifier "LAB_00104f21") (; ";"))) (} "}")) (else_clause "else if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    \n      FUN_00106090(*param_1);\n    }" (else "else") (if_statement "if (lVar6 != 0) {\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    \n      FUN_00106090(*param_1);\n    }" (if "if") (parenthesized_expression "(lVar6 != 0)" (( "(") (binary_expression "lVar6 != 0" (identifier "lVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      sVar8 = (size_t)local_4c;\n      lVar7 = param_1[1];\n      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }\n      pvVar22 = local_48;\n      iVar5 = DAT_0010cc20;\n      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);\n      if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }\nLAB_00104f21:\n                    \n      FUN_00106090(*param_1);\n    }" ({ "{") (expression_statement "sVar8 = (size_t)local_4c;" (assignment_expression "sVar8 = (size_t)local_4c" (identifier "sVar8") (= "=") (cast_expression "(size_t)local_4c" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "local_4c"))) (; ";")) (expression_statement "lVar7 = param_1[1];" (assignment_expression "lVar7 = param_1[1]" (identifier "lVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((DAT_0010cc18 != 0) && (local_4c == 8)) {\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }" (if "if") (parenthesized_expression "((DAT_0010cc18 != 0) && (local_4c == 8))" (( "(") (binary_expression "(DAT_0010cc18 != 0) && (local_4c == 8)" (parenthesized_expression "(DAT_0010cc18 != 0)" (( "(") (binary_expression "DAT_0010cc18 != 0" (identifier "DAT_0010cc18") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_4c == 8)" (( "(") (binary_expression "local_4c == 8" (identifier "local_4c") (== "==") (number_literal "8")) () ")"))) () ")")) (compound_statement "{\n        if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }\n        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);\n        if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }\n      }" ({ "{") (if_statement "if (DAT_0010cc20 == 0) {\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }\n        else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }" (if "if") (parenthesized_expression "(DAT_0010cc20 == 0)" (( "(") (binary_expression "DAT_0010cc20 == 0" (identifier "DAT_0010cc20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);\n          pvVar22 = local_48;\n          lVar10 = lVar6;\n          if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }\n        }" ({ "{") (expression_statement "lVar7 = (**(code **)(lVar7 + 0x338))(param_1);" (assignment_expression "lVar7 = (**(code **)(lVar7 + 0x338))(param_1)" (identifier "lVar7") (= "=") (call_expression "(**(code **)(lVar7 + 0x338))(param_1)" (parenthesized_expression "(**(code **)(lVar7 + 0x338))" (( "(") (pointer_expression "**(code **)(lVar7 + 0x338)" (* "*") (pointer_expression "*(code **)(lVar7 + 0x338)" (* "*") (cast_expression "(code **)(lVar7 + 0x338)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar7 + 0x338)" (( "(") (binary_expression "lVar7 + 0x338" (identifier "lVar7") (+ "+") (number_literal "0x338")) () ")"))))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "pvVar22 = local_48;" (assignment_expression "pvVar22 = local_48" (identifier "pvVar22") (= "=") (identifier "local_48")) (; ";")) (expression_statement "lVar10 = lVar6;" (assignment_expression "lVar10 = lVar6" (identifier "lVar10") (= "=") (identifier "lVar6")) (; ";")) (if_statement "if (lVar7 < 1) {\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }\n          else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }" (if "if") (parenthesized_expression "(lVar7 < 1)" (( "(") (binary_expression "lVar7 < 1" (identifier "lVar7") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n            lVar7 = param_1[1];\n            lVar9 = 0;\n            pvVar18 = (void *)0x0;\n          }" ({ "{") (expression_statement "lVar7 = param_1[1];" (assignment_expression "lVar7 = param_1[1]" (identifier "lVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "lVar9 = 0;" (assignment_expression "lVar9 = 0" (identifier "lVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "pvVar18 = (void *)0x0;" (assignment_expression "pvVar18 = (void *)0x0" (identifier "pvVar18") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }" (else "else") (compound_statement "{\n            pvVar18 = (void *)xmalloc(lVar7);\n            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);\n            if (lVar9 < 0) goto LAB_00104f21;\n            lVar7 = param_1[1];\n          }" ({ "{") (expression_statement "pvVar18 = (void *)xmalloc(lVar7);" (assignment_expression "pvVar18 = (void *)xmalloc(lVar7)" (identifier "pvVar18") (= "=") (cast_expression "(void *)xmalloc(lVar7)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(lVar7)" (identifier "xmalloc") (argument_list "(lVar7)" (( "(") (identifier "lVar7") () ")"))))) (; ";")) (expression_statement "lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);" (assignment_expression "lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18)" (identifier "lVar9") (= "=") (call_expression "(**(code **)(param_1[1] + 0x340))(param_1,pvVar18)" (parenthesized_expression "(**(code **)(param_1[1] + 0x340))" (( "(") (pointer_expression "**(code **)(param_1[1] + 0x340)" (* "*") (pointer_expression "*(code **)(param_1[1] + 0x340)" (* "*") (cast_expression "(code **)(param_1[1] + 0x340)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1[1] + 0x340)" (( "(") (binary_expression "param_1[1] + 0x340" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x340")) () ")"))))) () ")")) (argument_list "(param_1,pvVar18)" (( "(") (identifier "param_1") (, ",") (identifier "pvVar18") () ")")))) (; ";")) (if_statement "if (lVar9 < 0) goto LAB_00104f21;" (if "if") (parenthesized_expression "(lVar9 < 0)" (( "(") (binary_expression "lVar9 < 0" (identifier "lVar9") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00104f21;" (goto "goto") (statement_identifier "LAB_00104f21") (; ";"))) (expression_statement "lVar7 = param_1[1];" (assignment_expression "lVar7 = param_1[1]" (identifier "lVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }" (else "else") (compound_statement "{\n          lVar10 = 0;\n          pvVar22 = (void *)0x0;\n          lVar9 = lVar6;\n          pvVar18 = local_48;\n        }" ({ "{") (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" (identifier "lVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "pvVar22 = (void *)0x0;" (assignment_expression "pvVar22 = (void *)0x0" (identifier "pvVar22") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "lVar9 = lVar6;" (assignment_expression "lVar9 = lVar6" (identifier "lVar9") (= "=") (identifier "lVar6")) (; ";")) (expression_statement "pvVar18 = local_48;" (assignment_expression "pvVar18 = local_48" (identifier "pvVar18") (= "=") (identifier "local_48")) (; ";")) (} "}")))) (expression_statement "lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);" (assignment_expression "lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40)" (identifier "lVar9") (= "=") (call_expression "(**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40)" (parenthesized_expression "(**(code **)(lVar7 + 0x348))" (( "(") (pointer_expression "**(code **)(lVar7 + 0x348)" (* "*") (pointer_expression "*(code **)(lVar7 + 0x348)" (* "*") (cast_expression "(code **)(lVar7 + 0x348)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar7 + 0x348)" (( "(") (binary_expression "lVar7 + 0x348" (identifier "lVar7") (+ "+") (number_literal "0x348")) () ")"))))) () ")")) (argument_list "(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40)" (( "(") (identifier "param_1") (, ",") (identifier "lVar10") (, ",") (identifier "pvVar22") (, ",") (identifier "lVar9") (, ",") (identifier "pvVar18") (, ",") (identifier "local_40") () ")")))) (; ";")) (if_statement "if (lVar9 < 1) {\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }\n        else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }" (if "if") (parenthesized_expression "(lVar9 < 1)" (( "(") (binary_expression "lVar9 < 1" (identifier "lVar9") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n        }" ({ "{") (expression_statement "sVar8 = (size_t)local_4c;" (assignment_expression "sVar8 = (size_t)local_4c" (identifier "sVar8") (= "=") (cast_expression "(size_t)local_4c" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "local_4c"))) (; ";")) (expression_statement "lVar7 = param_1[1];" (assignment_expression "lVar7 = param_1[1]" (identifier "lVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }" (else "else") (compound_statement "{\n          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);\n          memcpy(pvVar18,local_48,lVar6 * 8);\n          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);\n          pvVar22 = local_40[0];\n          plVar20 = plVar19;\n          do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);\n          sVar8 = (size_t)local_4c;\n          lVar7 = param_1[1];\n          *plVar21 = 0;\n          lVar6 = lVar6 + lVar9;\n          local_48 = pvVar18;\n        }" ({ "{") (expression_statement "pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);" (assignment_expression "pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8)" (identifier "pvVar18") (= "=") (cast_expression "(void *)xmalloc((lVar6 + lVar9) * 8 + 8)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc((lVar6 + lVar9) * 8 + 8)" (identifier "xmalloc") (argument_list "((lVar6 + lVar9) * 8 + 8)" (( "(") (binary_expression "(lVar6 + lVar9) * 8 + 8" (binary_expression "(lVar6 + lVar9) * 8" (parenthesized_expression "(lVar6 + lVar9)" (( "(") (binary_expression "lVar6 + lVar9" (identifier "lVar6") (+ "+") (identifier "lVar9")) () ")")) (* "*") (number_literal "8")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "memcpy(pvVar18,local_48,lVar6 * 8);" (call_expression "memcpy(pvVar18,local_48,lVar6 * 8)" (identifier "memcpy") (argument_list "(pvVar18,local_48,lVar6 * 8)" (( "(") (identifier "pvVar18") (, ",") (identifier "local_48") (, ",") (binary_expression "lVar6 * 8" (identifier "lVar6") (* "*") (number_literal "8")) () ")"))) (; ";")) (expression_statement "plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);" (assignment_expression "plVar19 = (long *)(lVar6 * 8 + (long)pvVar18)" (identifier "plVar19") (= "=") (cast_expression "(long *)(lVar6 * 8 + (long)pvVar18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 * 8 + (long)pvVar18)" (( "(") (binary_expression "lVar6 * 8 + (long)pvVar18" (binary_expression "lVar6 * 8" (identifier "lVar6") (* "*") (number_literal "8")) (+ "+") (cast_expression "(long)pvVar18" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar18"))) () ")")))) (; ";")) (expression_statement "pvVar22 = local_40[0];" (assignment_expression "pvVar22 = local_40[0]" (identifier "pvVar22") (= "=") (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "plVar20 = plVar19;" (assignment_expression "plVar20 = plVar19" (identifier "plVar20") (= "=") (identifier "plVar19")) (; ";")) (do_statement "do {\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          } while (plVar21 != plVar19 + lVar9);" (do "do") (compound_statement "{\n            plVar21 = plVar20 + 1;\n            *plVar20 = (long)pvVar22;\n            pvVar22 = (void *)((long)pvVar22 + 0x30);\n            plVar20 = plVar21;\n          }" ({ "{") (expression_statement "plVar21 = plVar20 + 1;" (assignment_expression "plVar21 = plVar20 + 1" (identifier "plVar21") (= "=") (binary_expression "plVar20 + 1" (identifier "plVar20") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*plVar20 = (long)pvVar22;" (assignment_expression "*plVar20 = (long)pvVar22" (pointer_expression "*plVar20" (* "*") (identifier "plVar20")) (= "=") (cast_expression "(long)pvVar22" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar22"))) (; ";")) (expression_statement "pvVar22 = (void *)((long)pvVar22 + 0x30);" (assignment_expression "pvVar22 = (void *)((long)pvVar22 + 0x30)" (identifier "pvVar22") (= "=") (cast_expression "(void *)((long)pvVar22 + 0x30)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar22 + 0x30)" (( "(") (binary_expression "(long)pvVar22 + 0x30" (cast_expression "(long)pvVar22" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar22")) (+ "+") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "plVar20 = plVar21;" (assignment_expression "plVar20 = plVar21" (identifier "plVar20") (= "=") (identifier "plVar21")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(plVar21 != plVar19 + lVar9)" (( "(") (binary_expression "plVar21 != plVar19 + lVar9" (identifier "plVar21") (!= "!=") (binary_expression "plVar19 + lVar9" (identifier "plVar19") (+ "+") (identifier "lVar9"))) () ")")) (; ";")) (expression_statement "sVar8 = (size_t)local_4c;" (assignment_expression "sVar8 = (size_t)local_4c" (identifier "sVar8") (= "=") (cast_expression "(size_t)local_4c" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "local_4c"))) (; ";")) (expression_statement "lVar7 = param_1[1];" (assignment_expression "lVar7 = param_1[1]" (identifier "lVar7") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*plVar21 = 0;" (assignment_expression "*plVar21 = 0" (pointer_expression "*plVar21" (* "*") (identifier "plVar21")) (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar6 = lVar6 + lVar9;" (assignment_expression "lVar6 = lVar6 + lVar9" (identifier "lVar6") (= "=") (binary_expression "lVar6 + lVar9" (identifier "lVar6") (+ "+") (identifier "lVar9"))) (; ";")) (expression_statement "local_48 = pvVar18;" (assignment_expression "local_48 = pvVar18" (identifier "local_48") (= "=") (identifier "pvVar18")) (; ";")) (} "}")))) (} "}"))) (expression_statement "pvVar22 = local_48;" (assignment_expression "pvVar22 = local_48" (identifier "pvVar22") (= "=") (identifier "local_48")) (; ";")) (expression_statement "iVar5 = DAT_0010cc20;" (assignment_expression "iVar5 = DAT_0010cc20" (identifier "iVar5") (= "=") (identifier "DAT_0010cc20")) (; ";")) (expression_statement "lVar7 = (**(code **)(lVar7 + 0x200))(param_1);" (assignment_expression "lVar7 = (**(code **)(lVar7 + 0x200))(param_1)" (identifier "lVar7") (= "=") (call_expression "(**(code **)(lVar7 + 0x200))(param_1)" (parenthesized_expression "(**(code **)(lVar7 + 0x200))" (( "(") (pointer_expression "**(code **)(lVar7 + 0x200)" (* "*") (pointer_expression "*(code **)(lVar7 + 0x200)" (* "*") (cast_expression "(code **)(lVar7 + 0x200)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar7 + 0x200)" (( "(") (binary_expression "lVar7 + 0x200" (identifier "lVar7") (+ "+") (number_literal "0x200")) () ")"))))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (lVar7 != 0) {\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(lVar7 != 0)" (( "(") (binary_expression "lVar7 != 0" (identifier "lVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);\n        pvVar15 = pvVar22;\n        __src = pvVar22;\n        if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }\n        pcVar12 = *(code **)(param_1[1] + 0x200);\n        if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }\n        pvVar22 = local_48;\n        iVar5 = DAT_0010cc20;\n        if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }\n      }" ({ "{") (expression_statement "pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);" (assignment_expression "pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8)" (identifier "pvVar18") (= "=") (cast_expression "(void *)((long)pvVar22 + lVar6 * sVar8)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar22 + lVar6 * sVar8)" (( "(") (binary_expression "(long)pvVar22 + lVar6 * sVar8" (cast_expression "(long)pvVar22" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar22")) (+ "+") (binary_expression "lVar6 * sVar8" (identifier "lVar6") (* "*") (identifier "sVar8"))) () ")")))) (; ";")) (expression_statement "pvVar15 = pvVar22;" (assignment_expression "pvVar15 = pvVar22" (identifier "pvVar15") (= "=") (identifier "pvVar22")) (; ";")) (expression_statement "__src = pvVar22;" (assignment_expression "__src = pvVar22" (identifier "__src") (= "=") (identifier "pvVar22")) (; ";")) (if_statement "if (pvVar22 < pvVar18) {\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }\n        else {\n          sVar8 = 0;\n        }" (if "if") (parenthesized_expression "(pvVar22 < pvVar18)" (( "(") (binary_expression "pvVar22 < pvVar18" (identifier "pvVar22") (< "<") (identifier "pvVar18")) () ")")) (compound_statement "{\nLAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);\n          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;\n        }" ({ "{") (labeled_statement "LAB_001048a5:\n          do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);" (statement_identifier "LAB_001048a5") (: ":") (do_statement "do {\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          } while (__src < pvVar18);" (do "do") (compound_statement "{\n            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);\n            if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }\n            pcVar2 = *(char **)(lVar6 + 8);\n            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }\n            if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }\n            if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }\n            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }\n            __src = (void *)((long)__src + sVar8);\n          }" ({ "{") (expression_statement "lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);" (assignment_expression "lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7)" (identifier "lVar6") (= "=") (call_expression "(**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7)" (parenthesized_expression "(**(code **)(param_1[1] + 0x260))" (( "(") (pointer_expression "**(code **)(param_1[1] + 0x260)" (* "*") (pointer_expression "*(code **)(param_1[1] + 0x260)" (* "*") (cast_expression "(code **)(param_1[1] + 0x260)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1[1] + 0x260)" (( "(") (binary_expression "param_1[1] + 0x260" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x260")) () ")"))))) () ")")) (argument_list "(param_1,iVar5,__src,lVar7)" (( "(") (identifier "param_1") (, ",") (identifier "iVar5") (, ",") (identifier "__src") (, ",") (identifier "lVar7") () ")")))) (; ";")) (if_statement "if (lVar6 == 0) {\n                    \n              FUN_00106090(*param_1);\n            }" (if "if") (parenthesized_expression "(lVar6 == 0)" (( "(") (binary_expression "lVar6 == 0" (identifier "lVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n              FUN_00106090(*param_1);\n            }" ({ "{") (expression_statement "FUN_00106090(*param_1);" (call_expression "FUN_00106090(*param_1)" (identifier "FUN_00106090") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar2 = *(char **)(lVar6 + 8);" (assignment_expression "pcVar2 = *(char **)(lVar6 + 8)" (identifier "pcVar2") (= "=") (pointer_expression "*(char **)(lVar6 + 8)" (* "*") (cast_expression "(char **)(lVar6 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar6 + 8)" (( "(") (binary_expression "lVar6 + 8" (identifier "lVar6") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }" (if "if") (parenthesized_expression "((*pcVar2 == '_') && (pcVar2[1] == '_'))" (( "(") (binary_expression "(*pcVar2 == '_') && (pcVar2[1] == '_')" (parenthesized_expression "(*pcVar2 == '_')" (( "(") (binary_expression "*pcVar2 == '_'" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar2[1] == '_')" (( "(") (binary_expression "pcVar2[1] == '_'" (subscript_expression "pcVar2[1]" (identifier "pcVar2") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")"))) () ")")) (compound_statement "{\n              lVar9 = 0xf;\n              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));\n              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;\n              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));\n              pbVar24 = (byte *)"__gnu_lto_slim";\n              do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);\n              if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }\n            }" ({ "{") (expression_statement "lVar9 = 0xf;" (assignment_expression "lVar9 = 0xf" (identifier "lVar9") (= "=") (number_literal "0xf")) (; ";")) (expression_statement "bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));" (assignment_expression "bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'))" (identifier "bVar25") (= "=") (call_expression "CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'))" (identifier "CARRY8") (argument_list "((ulong)pcVar2,(ulong)(pcVar2[2] == '_'))" (( "(") (cast_expression "(ulong)pcVar2" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pcVar2")) (, ",") (call_expression "(ulong)(pcVar2[2] == '_')" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar2[2] == '_')" (( "(") (binary_expression "pcVar2[2] == '_'" (subscript_expression "pcVar2[2]" (identifier "pcVar2") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")"))) () ")")))) (; ";")) (expression_statement "bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;" (assignment_expression "bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0" (identifier "bVar26") (= "=") (binary_expression "(byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0" (cast_expression "(byte *)(pcVar2 + (pcVar2[2] == '_'))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar2 + (pcVar2[2] == '_'))" (( "(") (binary_expression "pcVar2 + (pcVar2[2] == '_')" (identifier "pcVar2") (+ "+") (parenthesized_expression "(pcVar2[2] == '_')" (( "(") (binary_expression "pcVar2[2] == '_'" (subscript_expression "pcVar2[2]" (identifier "pcVar2") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")"))) () ")"))) (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));" (assignment_expression "pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'))" (identifier "pbVar23") (= "=") (cast_expression "(byte *)(pcVar2 + (pcVar2[2] == '_'))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar2 + (pcVar2[2] == '_'))" (( "(") (binary_expression "pcVar2 + (pcVar2[2] == '_')" (identifier "pcVar2") (+ "+") (parenthesized_expression "(pcVar2[2] == '_')" (( "(") (binary_expression "pcVar2[2] == '_'" (subscript_expression "pcVar2[2]" (identifier "pcVar2") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")"))) () ")")))) (; ";")) (expression_statement "pbVar24 = (byte *)"__gnu_lto_slim";" (assignment_expression "pbVar24 = (byte *)"__gnu_lto_slim"" (identifier "pbVar24") (= "=") (cast_expression "(byte *)"__gnu_lto_slim"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""__gnu_lto_slim"" (" """) (string_content "__gnu_lto_slim") (" """)))) (; ";")) (do_statement "do {\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              } while (bVar26);" (do "do") (compound_statement "{\n                if (lVar9 == 0) break;\n                lVar9 = lVar9 + -1;\n                bVar25 = *pbVar23 < *pbVar24;\n                bVar26 = *pbVar23 == *pbVar24;\n                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;\n                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;\n              }" ({ "{") (if_statement "if (lVar9 == 0) break;" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar9 = lVar9 + -1;" (assignment_expression "lVar9 = lVar9 + -1" (identifier "lVar9") (= "=") (binary_expression "lVar9 + -1" (identifier "lVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar23 < *pbVar24;" (assignment_expression "bVar25 = *pbVar23 < *pbVar24" (identifier "bVar25") (= "=") (binary_expression "*pbVar23 < *pbVar24" (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")) (< "<") (pointer_expression "*pbVar24" (* "*") (identifier "pbVar24")))) (; ";")) (expression_statement "bVar26 = *pbVar23 == *pbVar24;" (assignment_expression "bVar26 = *pbVar23 == *pbVar24" (identifier "bVar26") (= "=") (binary_expression "*pbVar23 == *pbVar24" (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")) (== "==") (pointer_expression "*pbVar24" (* "*") (identifier "pbVar24")))) (; ";")) (expression_statement "pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;" (assignment_expression "pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1" (identifier "pbVar23") (= "=") (binary_expression "pbVar23 + (ulong)bVar27 * -2 + 1" (binary_expression "pbVar23 + (ulong)bVar27 * -2" (identifier "pbVar23") (+ "+") (binary_expression "(ulong)bVar27 * -2" (cast_expression "(ulong)bVar27" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;" (assignment_expression "pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1" (identifier "pbVar24") (= "=") (binary_expression "pbVar24 + (ulong)bVar27 * -2 + 1" (binary_expression "pbVar24 + (ulong)bVar27 * -2" (identifier "pbVar24") (+ "+") (binary_expression "(ulong)bVar27 * -2" (cast_expression "(ulong)bVar27" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (if_statement "if ((!bVar25 && !bVar26) == bVar25) {\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }" (if "if") (parenthesized_expression "((!bVar25 && !bVar26) == bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar26) == bVar25" (parenthesized_expression "(!bVar25 && !bVar26)" (( "(") (binary_expression "!bVar25 && !bVar26" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar25")) () ")")) (compound_statement "{\n                uVar3 = *param_1;\n                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);\n                FUN_001061b0(uVar11,uVar3);\n              }" ({ "{") (expression_statement "uVar3 = *param_1;" (assignment_expression "uVar3 = *param_1" (identifier "uVar3") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);" (assignment_expression "uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5)" (identifier "uVar11") (= "=") (call_expression "dcgettext(0,"%s: plugin needed to handle lto object",5)" (identifier "dcgettext") (argument_list "(0,"%s: plugin needed to handle lto object",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s: plugin needed to handle lto object"" (" """) (string_content "%s: plugin needed to handle lto object") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_001061b0(uVar11,uVar3);" (call_expression "FUN_001061b0(uVar11,uVar3)" (identifier "FUN_001061b0") (argument_list "(uVar11,uVar3)" (( "(") (identifier "uVar11") (, ",") (identifier "uVar3") () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (DAT_0010cc24 != 0) {\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }" (if "if") (parenthesized_expression "(DAT_0010cc24 != 0)" (( "(") (binary_expression "DAT_0010cc24 != 0" (identifier "DAT_0010cc24") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;\nLAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }\nLAB_00104897:\n              __src = (void *)((long)__src + sVar8);\n              if (pvVar18 <= __src) break;\n              goto LAB_001048a5;\n            }" ({ "{") (if_statement "if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))) goto LAB_00104897;" (if "if") (parenthesized_expression "((*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0))))" (( "(") (binary_expression "(*(long *)(lVar6 + 0x20) != 0x10c838) ||\n                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))" (parenthesized_expression "(*(long *)(lVar6 + 0x20) != 0x10c838)" (( "(") (binary_expression "*(long *)(lVar6 + 0x20) != 0x10c838" (pointer_expression "*(long *)(lVar6 + 0x20)" (* "*") (cast_expression "(long *)(lVar6 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x20)" (( "(") (binary_expression "lVar6 + 0x20" (identifier "lVar6") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (number_literal "0x10c838")) () ")")) (|| "||") (parenthesized_expression "(((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)))" (( "(") (parenthesized_expression "((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0))" (( "(") (binary_expression "(DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||\n                  (DAT_0010cc28 != 0)" (parenthesized_expression "(DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0))" (( "(") (binary_expression "DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)" (binary_expression "DAT_0010cc3c == 0" (identifier "DAT_0010cc3c") (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "((*(byte *)(lVar6 + 0x18) & 4) != 0)" (( "(") (binary_expression "(*(byte *)(lVar6 + 0x18) & 4) != 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x18) & 4)" (( "(") (binary_expression "*(byte *)(lVar6 + 0x18) & 4" (pointer_expression "*(byte *)(lVar6 + 0x18)" (* "*") (cast_expression "(byte *)(lVar6 + 0x18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x18)" (( "(") (binary_expression "lVar6 + 0x18" (identifier "lVar6") (+ "+") (number_literal "0x18")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(DAT_0010cc28 != 0)" (( "(") (binary_expression "DAT_0010cc28 != 0" (identifier "DAT_0010cc28") (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00104897;" (goto "goto") (statement_identifier "LAB_00104897") (; ";"))) (labeled_statement "LAB_00104851:\n              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }" (statement_identifier "LAB_00104851") (: ":") (if_statement "if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }" (if "if") (parenthesized_expression "((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838))" (( "(") (binary_expression "(DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)" (parenthesized_expression "(DAT_0010cc44 == 0)" (( "(") (binary_expression "DAT_0010cc44 == 0" (identifier "DAT_0010cc44") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(long *)(lVar6 + 0x20) != 0x10c838)" (( "(") (binary_expression "*(long *)(lVar6 + 0x20) != 0x10c838" (pointer_expression "*(long *)(lVar6 + 0x20)" (* "*") (cast_expression "(long *)(lVar6 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x20)" (( "(") (binary_expression "lVar6 + 0x20" (identifier "lVar6") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (number_literal "0x10c838")) () ")"))) () ")")) (compound_statement "{\nLAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);\n                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }\n              }" ({ "{") (labeled_statement "LAB_00104861:\n                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);" (statement_identifier "LAB_00104861") (: ":") (expression_statement "iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);" (assignment_expression "iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(param_1[1] + 0x228))(param_1,lVar6)" (parenthesized_expression "(**(code **)(param_1[1] + 0x228))" (( "(") (pointer_expression "**(code **)(param_1[1] + 0x228)" (* "*") (pointer_expression "*(code **)(param_1[1] + 0x228)" (* "*") (cast_expression "(code **)(param_1[1] + 0x228)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1[1] + 0x228)" (( "(") (binary_expression "param_1[1] + 0x228" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x228")) () ")"))))) () ")")) (argument_list "(param_1,lVar6)" (( "(") (identifier "param_1") (, ",") (identifier "lVar6") () ")")))) (; ";"))) (if_statement "if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }" (if "if") (parenthesized_expression "((iVar4 == 0) || (DAT_0010cc10 != 0))" (( "(") (binary_expression "(iVar4 == 0) || (DAT_0010cc10 != 0)" (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(DAT_0010cc10 != 0)" (( "(") (binary_expression "DAT_0010cc10 != 0" (identifier "DAT_0010cc10") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                  if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }\n                  pvVar15 = (void *)((long)pvVar15 + sVar8);\n                }" ({ "{") (if_statement "if (__src != pvVar15) {\n                    memcpy(pvVar15,__src,sVar8);\n                  }" (if "if") (parenthesized_expression "(__src != pvVar15)" (( "(") (binary_expression "__src != pvVar15" (identifier "__src") (!= "!=") (identifier "pvVar15")) () ")")) (compound_statement "{\n                    memcpy(pvVar15,__src,sVar8);\n                  }" ({ "{") (expression_statement "memcpy(pvVar15,__src,sVar8);" (call_expression "memcpy(pvVar15,__src,sVar8)" (identifier "memcpy") (argument_list "(pvVar15,__src,sVar8)" (( "(") (identifier "pvVar15") (, ",") (identifier "__src") (, ",") (identifier "sVar8") () ")"))) (; ";")) (} "}"))) (expression_statement "pvVar15 = (void *)((long)pvVar15 + sVar8);" (assignment_expression "pvVar15 = (void *)((long)pvVar15 + sVar8)" (identifier "pvVar15") (= "=") (cast_expression "(void *)((long)pvVar15 + sVar8)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar15 + sVar8)" (( "(") (binary_expression "(long)pvVar15 + sVar8" (cast_expression "(long)pvVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar15")) (+ "+") (identifier "sVar8")) () ")")))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00104897:\n              __src = (void *)((long)__src + sVar8);" (statement_identifier "LAB_00104897") (: ":") (expression_statement "__src = (void *)((long)__src + sVar8);" (assignment_expression "__src = (void *)((long)__src + sVar8)" (identifier "__src") (= "=") (cast_expression "(void *)((long)__src + sVar8)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__src + sVar8)" (( "(") (binary_expression "(long)__src + sVar8" (cast_expression "(long)__src" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__src")) (+ "+") (identifier "sVar8")) () ")")))) (; ";"))) (if_statement "if (pvVar18 <= __src) break;" (if "if") (parenthesized_expression "(pvVar18 <= __src)" (( "(") (binary_expression "pvVar18 <= __src" (identifier "pvVar18") (<= "<=") (identifier "__src")) () ")")) (break_statement "break;" (break "break") (; ";"))) (goto_statement "goto LAB_001048a5;" (goto "goto") (statement_identifier "LAB_001048a5") (; ";")) (} "}"))) (if_statement "if (DAT_0010cc48 != 0) {\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }" (if "if") (parenthesized_expression "(DAT_0010cc48 != 0)" (( "(") (binary_expression "DAT_0010cc48 != 0" (identifier "DAT_0010cc48") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar1 = *(uint *)(lVar6 + 0x18);\n              if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }\n              goto LAB_00104897;\n            }" ({ "{") (expression_statement "uVar1 = *(uint *)(lVar6 + 0x18);" (assignment_expression "uVar1 = *(uint *)(lVar6 + 0x18)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(lVar6 + 0x18)" (* "*") (cast_expression "(uint *)(lVar6 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x18)" (( "(") (binary_expression "lVar6 + 0x18" (identifier "lVar6") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if ((uVar1 & 0x800082) == 0) {\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }\n              else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }" (if "if") (parenthesized_expression "((uVar1 & 0x800082) == 0)" (( "(") (binary_expression "(uVar1 & 0x800082) == 0" (parenthesized_expression "(uVar1 & 0x800082)" (( "(") (binary_expression "uVar1 & 0x800082" (identifier "uVar1") (& "&") (number_literal "0x800082")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;\n              }" ({ "{") (if_statement "if (*(long *)(lVar6 + 0x20) == 0x10c838) {\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }\n                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;" (if "if") (parenthesized_expression "(*(long *)(lVar6 + 0x20) == 0x10c838)" (( "(") (binary_expression "*(long *)(lVar6 + 0x20) == 0x10c838" (pointer_expression "*(long *)(lVar6 + 0x20)" (* "*") (cast_expression "(long *)(lVar6 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x20)" (( "(") (binary_expression "lVar6 + 0x20" (identifier "lVar6") (+ "+") (number_literal "0x20")) () ")")))) (== "==") (number_literal "0x10c838")) () ")")) (compound_statement "{\n                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;\n                }" ({ "{") (if_statement "if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;" (if "if") (parenthesized_expression "(((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0))))" (( "(") (binary_expression "((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&\n                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))" (parenthesized_expression "((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0))" (( "(") (binary_expression "(DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)" (parenthesized_expression "(DAT_0010cc3c != 0)" (( "(") (binary_expression "DAT_0010cc3c != 0" (identifier "DAT_0010cc3c") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((uVar1 & 4) == 0)" (( "(") (binary_expression "(uVar1 & 4) == 0" (parenthesized_expression "(uVar1 & 4)" (( "(") (binary_expression "uVar1 & 4" (identifier "uVar1") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))" (( "(") (parenthesized_expression "(DAT_0010cc28 == 0 && (DAT_0010cc44 == 0))" (( "(") (binary_expression "DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)" (binary_expression "DAT_0010cc28 == 0" (identifier "DAT_0010cc28") (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(DAT_0010cc44 == 0)" (( "(") (binary_expression "DAT_0010cc44 == 0" (identifier "DAT_0010cc44") (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00104861;" (goto "goto") (statement_identifier "LAB_00104861") (; ";"))) (} "}")) (else_clause "else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;" (else "else") (if_statement "if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;" (if "if") (parenthesized_expression "((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0" (parenthesized_expression "(*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10)" (( "(") (binary_expression "*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10" (pointer_expression "*(byte *)(*(long *)(lVar6 + 0x20) + 0x21)" (* "*") (cast_expression "(byte *)(*(long *)(lVar6 + 0x20) + 0x21)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar6 + 0x20) + 0x21)" (( "(") (binary_expression "*(long *)(lVar6 + 0x20) + 0x21" (pointer_expression "*(long *)(lVar6 + 0x20)" (* "*") (cast_expression "(long *)(lVar6 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x20)" (( "(") (binary_expression "lVar6 + 0x20" (identifier "lVar6") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "0x21")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00104913;" (goto "goto") (statement_identifier "LAB_00104913") (; ";"))))) (} "}")) (else_clause "else {\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }" (else "else") (compound_statement "{\nLAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;\n              }" ({ "{") (labeled_statement "LAB_00104913:\n                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;" (statement_identifier "LAB_00104913") (: ":") (if_statement "if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;" (if "if") (parenthesized_expression "((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0))" (( "(") (binary_expression "(DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)" (parenthesized_expression "(DAT_0010cc3c != 0)" (( "(") (binary_expression "DAT_0010cc3c != 0" (identifier "DAT_0010cc3c") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((uVar1 & 4) == 0)" (( "(") (binary_expression "(uVar1 & 4) == 0" (parenthesized_expression "(uVar1 & 4)" (( "(") (binary_expression "uVar1 & 4" (identifier "uVar1") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00104928;" (goto "goto") (statement_identifier "LAB_00104928") (; ";")))) (} "}")))) (goto_statement "goto LAB_00104897;" (goto "goto") (statement_identifier "LAB_00104897") (; ";")) (} "}"))) (if_statement "if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }" (if "if") (parenthesized_expression "((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0))" (( "(") (binary_expression "(DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)" (parenthesized_expression "(DAT_0010cc3c != 0)" (( "(") (binary_expression "DAT_0010cc3c != 0" (identifier "DAT_0010cc3c") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(lVar6 + 0x18) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(lVar6 + 0x18) & 4) == 0" (parenthesized_expression "(*(byte *)(lVar6 + 0x18) & 4)" (( "(") (binary_expression "*(byte *)(lVar6 + 0x18) & 4" (pointer_expression "*(byte *)(lVar6 + 0x18)" (* "*") (cast_expression "(byte *)(lVar6 + 0x18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x18)" (( "(") (binary_expression "lVar6 + 0x18" (identifier "lVar6") (+ "+") (number_literal "0x18")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;\n              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;\n              goto LAB_00104861;\n            }" ({ "{") (labeled_statement "LAB_00104928:\n              if (DAT_0010cc28 == 0) goto LAB_00104851;" (statement_identifier "LAB_00104928") (: ":") (if_statement "if (DAT_0010cc28 == 0) goto LAB_00104851;" (if "if") (parenthesized_expression "(DAT_0010cc28 == 0)" (( "(") (binary_expression "DAT_0010cc28 == 0" (identifier "DAT_0010cc28") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00104851;" (goto "goto") (statement_identifier "LAB_00104851") (; ";")))) (if_statement "if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))\n              goto LAB_00104897;" (if "if") (parenthesized_expression "((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))" (( "(") (binary_expression "(*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950)" (parenthesized_expression "(*(long *)(lVar6 + 0x20) == 0x10c838)" (( "(") (binary_expression "*(long *)(lVar6 + 0x20) == 0x10c838" (pointer_expression "*(long *)(lVar6 + 0x20)" (* "*") (cast_expression "(long *)(lVar6 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x20)" (( "(") (binary_expression "lVar6 + 0x20" (identifier "lVar6") (+ "+") (number_literal "0x20")) () ")")))) (== "==") (number_literal "0x10c838")) () ")")) (|| "||") (parenthesized_expression "(*(long *)(lVar6 + 0x20) == 0x10c950)" (( "(") (binary_expression "*(long *)(lVar6 + 0x20) == 0x10c950" (pointer_expression "*(long *)(lVar6 + 0x20)" (* "*") (cast_expression "(long *)(lVar6 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar6 + 0x20)" (( "(") (binary_expression "lVar6 + 0x20" (identifier "lVar6") (+ "+") (number_literal "0x20")) () ")")))) (== "==") (number_literal "0x10c950")) () ")"))) () ")")) (goto_statement "goto LAB_00104897;" (goto "goto") (statement_identifier "LAB_00104897") (; ";"))) (goto_statement "goto LAB_00104861;" (goto "goto") (statement_identifier "LAB_00104861") (; ";")) (} "}"))) (expression_statement "__src = (void *)((long)__src + sVar8);" (assignment_expression "__src = (void *)((long)__src + sVar8)" (identifier "__src") (= "=") (cast_expression "(void *)((long)__src + sVar8)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__src + sVar8)" (( "(") (binary_expression "(long)__src + sVar8" (cast_expression "(long)__src" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__src")) (+ "+") (identifier "sVar8")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(__src < pvVar18)" (( "(") (binary_expression "__src < pvVar18" (identifier "__src") (< "<") (identifier "pvVar18")) () ")")) (; ";"))) (expression_statement "sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;" (assignment_expression "sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8" (identifier "sVar8") (= "=") (binary_expression "((long)pvVar15 - (long)pvVar22) / (long)sVar8" (parenthesized_expression "((long)pvVar15 - (long)pvVar22)" (( "(") (binary_expression "(long)pvVar15 - (long)pvVar22" (cast_expression "(long)pvVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar15")) (- "-") (cast_expression "(long)pvVar22" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar22"))) () ")")) (/ "/") (cast_expression "(long)sVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "sVar8")))) (; ";")) (} "}")) (else_clause "else {\n          sVar8 = 0;\n        }" (else "else") (compound_statement "{\n          sVar8 = 0;\n        }" ({ "{") (expression_statement "sVar8 = 0;" (assignment_expression "sVar8 = 0" (identifier "sVar8") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "pcVar12 = *(code **)(param_1[1] + 0x200);" (assignment_expression "pcVar12 = *(code **)(param_1[1] + 0x200)" (identifier "pcVar12") (= "=") (pointer_expression "*(code **)(param_1[1] + 0x200)" (* "*") (cast_expression "(code **)(param_1[1] + 0x200)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1[1] + 0x200)" (( "(") (binary_expression "param_1[1] + 0x200" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x200")) () ")"))))) (; ";")) (if_statement "if (DAT_0010cc40 == 0) {\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }\n        else {\n          local_68 = (ulong *)0x0;\n        }" (if "if") (parenthesized_expression "(DAT_0010cc40 == 0)" (( "(") (binary_expression "DAT_0010cc40 == 0" (identifier "DAT_0010cc40") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          DAT_0010cbd8 = DAT_0010cc20;\n          DAT_0010cbe0 = param_1;\n          DAT_0010cbd0 = (*pcVar12)(param_1);\n          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);\n          pvVar22 = local_48;\n          iVar5 = DAT_0010cc20;\n          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;\n          __size = (ulong)local_4c;\n          if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n        }" ({ "{") (expression_statement "DAT_0010cbd8 = DAT_0010cc20;" (assignment_expression "DAT_0010cbd8 = DAT_0010cc20" (identifier "DAT_0010cbd8") (= "=") (identifier "DAT_0010cc20")) (; ";")) (expression_statement "DAT_0010cbe0 = param_1;" (assignment_expression "DAT_0010cbe0 = param_1" (identifier "DAT_0010cbe0") (= "=") (identifier "param_1")) (; ";")) (expression_statement "DAT_0010cbd0 = (*pcVar12)(param_1);" (assignment_expression "DAT_0010cbd0 = (*pcVar12)(param_1)" (identifier "DAT_0010cbd0") (= "=") (call_expression "(*pcVar12)(param_1)" (parenthesized_expression "(*pcVar12)" (( "(") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);" (assignment_expression "DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1)" (identifier "DAT_0010cbc8") (= "=") (call_expression "(**(code **)(param_1[1] + 0x200))(param_1)" (parenthesized_expression "(**(code **)(param_1[1] + 0x200))" (( "(") (pointer_expression "**(code **)(param_1[1] + 0x200)" (* "*") (pointer_expression "*(code **)(param_1[1] + 0x200)" (* "*") (cast_expression "(code **)(param_1[1] + 0x200)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1[1] + 0x200)" (( "(") (binary_expression "param_1[1] + 0x200" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x200")) () ")"))))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "pvVar22 = local_48;" (assignment_expression "pvVar22 = local_48" (identifier "pvVar22") (= "=") (identifier "local_48")) (; ";")) (expression_statement "iVar5 = DAT_0010cc20;" (assignment_expression "iVar5 = DAT_0010cc20" (identifier "iVar5") (= "=") (identifier "DAT_0010cc20")) (; ";")) (if_statement "if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;" (if "if") (parenthesized_expression "((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0))" (( "(") (binary_expression "(DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)" (parenthesized_expression "(DAT_0010cbd0 == 0)" (( "(") (binary_expression "DAT_0010cbd0 == 0" (identifier "DAT_0010cbd0") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(DAT_0010cbc8 == 0)" (( "(") (binary_expression "DAT_0010cbc8 == 0" (identifier "DAT_0010cbc8") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00104f21;" (goto "goto") (statement_identifier "LAB_00104f21") (; ";"))) (expression_statement "__size = (ulong)local_4c;" (assignment_expression "__size = (ulong)local_4c" (identifier "__size") (= "=") (cast_expression "(ulong)local_4c" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_4c"))) (; ";")) (if_statement "if (DAT_0010cc28 == 0) {\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }\n          else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }" (if "if") (parenthesized_expression "(DAT_0010cc28 == 0)" (( "(") (binary_expression "DAT_0010cc28 == 0" (identifier "DAT_0010cc28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);\n            local_68 = (ulong *)0x0;\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }" ({ "{") (expression_statement "qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);" (call_expression "qsort(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2])" (identifier "qsort") (argument_list "(local_48,sVar8,__size,\n                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2])" (( "(") (identifier "local_48") (, ",") (identifier "sVar8") (, ",") (identifier "__size") (, ",") (subscript_expression "(__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]" (call_expression "(__compar_fn_t)(&PTR_FUN_0010bd80)" (parenthesized_expression "(__compar_fn_t)" (( "(") (identifier "__compar_fn_t") () ")")) (argument_list "(&PTR_FUN_0010bd80)" (( "(") (pointer_expression "&PTR_FUN_0010bd80" (& "&") (identifier "PTR_FUN_0010bd80")) () ")"))) ([ "[") (binary_expression "(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2" (cast_expression "(long)DAT_0010cc30" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_0010cc30")) (+ "+") (binary_expression "(long)DAT_0010cc2c * 2" (cast_expression "(long)DAT_0010cc2c" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "DAT_0010cc2c")) (* "*") (number_literal "2"))) (] "]")) () ")"))) (; ";")) (expression_statement "local_68 = (ulong *)0x0;" (assignment_expression "local_68 = (ulong *)0x0" (identifier "local_68") (= "=") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcVar12 = *(code **)(param_1[1] + 0x200);" (assignment_expression "pcVar12 = *(code **)(param_1[1] + 0x200)" (identifier "pcVar12") (= "=") (pointer_expression "*(code **)(param_1[1] + 0x200)" (* "*") (cast_expression "(code **)(param_1[1] + 0x200)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1[1] + 0x200)" (( "(") (binary_expression "param_1[1] + 0x200" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x200")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }" (else "else") (compound_statement "{\n            qsort(local_48,sVar8,__size,FUN_00103ec0);\n            local_68 = (ulong *)xmalloc(sVar8 << 4);\n            lVar7 = DAT_0010cbd0;\n            lVar6 = DAT_0010cbc8;\n            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);\n            if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }\n            qsort(local_68,sVar8,0x10,FUN_00105010);\n            pcVar12 = *(code **)(param_1[1] + 0x200);\n          }" ({ "{") (expression_statement "qsort(local_48,sVar8,__size,FUN_00103ec0);" (call_expression "qsort(local_48,sVar8,__size,FUN_00103ec0)" (identifier "qsort") (argument_list "(local_48,sVar8,__size,FUN_00103ec0)" (( "(") (identifier "local_48") (, ",") (identifier "sVar8") (, ",") (identifier "__size") (, ",") (identifier "FUN_00103ec0") () ")"))) (; ";")) (expression_statement "local_68 = (ulong *)xmalloc(sVar8 << 4);" (assignment_expression "local_68 = (ulong *)xmalloc(sVar8 << 4)" (identifier "local_68") (= "=") (cast_expression "(ulong *)xmalloc(sVar8 << 4)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar8 << 4)" (identifier "xmalloc") (argument_list "(sVar8 << 4)" (( "(") (binary_expression "sVar8 << 4" (identifier "sVar8") (<< "<<") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "lVar7 = DAT_0010cbd0;" (assignment_expression "lVar7 = DAT_0010cbd0" (identifier "lVar7") (= "=") (identifier "DAT_0010cbd0")) (; ";")) (expression_statement "lVar6 = DAT_0010cbc8;" (assignment_expression "lVar6 = DAT_0010cbc8" (identifier "lVar6") (= "=") (identifier "DAT_0010cbc8")) (; ";")) (expression_statement "pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);" (assignment_expression "pvVar18 = (void *)((long)pvVar22 + sVar8 * __size)" (identifier "pvVar18") (= "=") (cast_expression "(void *)((long)pvVar22 + sVar8 * __size)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar22 + sVar8 * __size)" (( "(") (binary_expression "(long)pvVar22 + sVar8 * __size" (cast_expression "(long)pvVar22" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar22")) (+ "+") (binary_expression "sVar8 * __size" (identifier "sVar8") (* "*") (identifier "__size"))) () ")")))) (; ";")) (if_statement "if (pvVar22 < pvVar18) {\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }\n            else {\n              sVar8 = 0;\n            }" (if "if") (parenthesized_expression "(pvVar22 < pvVar18)" (( "(") (binary_expression "pvVar22 < pvVar18" (identifier "pvVar22") (< "<") (identifier "pvVar18")) () ")")) (compound_statement "{\n              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);\n              puVar17 = local_68;\n              if (lVar9 == 0) goto LAB_00104f21;\nLAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);\n              sVar8 = (long)puVar16 - (long)local_68 >> 4;\n            }" ({ "{") (expression_statement "lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);" (assignment_expression "lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0)" (identifier "lVar9") (= "=") (call_expression "(**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0)" (parenthesized_expression "(**(code **)(param_1[1] + 0x260))" (( "(") (pointer_expression "**(code **)(param_1[1] + 0x260)" (* "*") (pointer_expression "*(code **)(param_1[1] + 0x260)" (* "*") (cast_expression "(code **)(param_1[1] + 0x260)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1[1] + 0x260)" (( "(") (binary_expression "param_1[1] + 0x260" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x260")) () ")"))))) () ")")) (argument_list "(param_1,iVar5,pvVar22,DAT_0010cbd0)" (( "(") (identifier "param_1") (, ",") (identifier "iVar5") (, ",") (identifier "pvVar22") (, ",") (identifier "DAT_0010cbd0") () ")")))) (; ";")) (expression_statement "puVar17 = local_68;" (assignment_expression "puVar17 = local_68" (identifier "puVar17") (= "=") (identifier "local_68")) (; ";")) (if_statement "if (lVar9 == 0) goto LAB_00104f21;" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00104f21;" (goto "goto") (statement_identifier "LAB_00104f21") (; ";"))) (labeled_statement "LAB_00104bad:\n              do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);" (statement_identifier "LAB_00104bad") (: ":") (do_statement "do {\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              } while (pvVar22 < pvVar18);" (do "do") (compound_statement "{\n                lVar10 = lVar7;\n                lVar7 = lVar6;\n                pvVar15 = pvVar22;\n                pvVar22 = (void *)((long)pvVar15 + __size);\n                lVar6 = lVar10;\n                if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }\n                puVar17 = puVar16;\n                lVar9 = lVar10;\n              }" ({ "{") (expression_statement "lVar10 = lVar7;" (assignment_expression "lVar10 = lVar7" (identifier "lVar10") (= "=") (identifier "lVar7")) (; ";")) (expression_statement "lVar7 = lVar6;" (assignment_expression "lVar7 = lVar6" (identifier "lVar7") (= "=") (identifier "lVar6")) (; ";")) (expression_statement "pvVar15 = pvVar22;" (assignment_expression "pvVar15 = pvVar22" (identifier "pvVar15") (= "=") (identifier "pvVar22")) (; ";")) (expression_statement "pvVar22 = (void *)((long)pvVar15 + __size);" (assignment_expression "pvVar22 = (void *)((long)pvVar15 + __size)" (identifier "pvVar22") (= "=") (cast_expression "(void *)((long)pvVar15 + __size)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar15 + __size)" (( "(") (binary_expression "(long)pvVar15 + __size" (cast_expression "(long)pvVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar15")) (+ "+") (identifier "__size")) () ")")))) (; ";")) (expression_statement "lVar6 = lVar10;" (assignment_expression "lVar6 = lVar10" (identifier "lVar6") (= "=") (identifier "lVar10")) (; ";")) (if_statement "if (pvVar22 < pvVar18) {\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }\n                else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }" (if "if") (parenthesized_expression "(pvVar22 < pvVar18)" (( "(") (binary_expression "pvVar22 < pvVar18" (identifier "pvVar22") (< "<") (identifier "pvVar18")) () ")")) (compound_statement "{\n                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);\n                  if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;\n                  uVar13 = *(ulong *)(lVar9 + 0x10);\n                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;\nLAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;\n                  lVar9 = lVar10;\n                  if (uVar13 == 0) goto LAB_00104bad;\nLAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;\n                  puVar16 = puVar17 + 2;\n                  puVar17[1] = uVar13;\n                }" ({ "{") (expression_statement "lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);" (assignment_expression "lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7)" (identifier "lVar10") (= "=") (call_expression "(**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7)" (parenthesized_expression "(**(code **)(param_1[1] + 0x260))" (( "(") (pointer_expression "**(code **)(param_1[1] + 0x260)" (* "*") (pointer_expression "*(code **)(param_1[1] + 0x260)" (* "*") (cast_expression "(code **)(param_1[1] + 0x260)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1[1] + 0x260)" (( "(") (binary_expression "param_1[1] + 0x260" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x260")) () ")"))))) () ")")) (argument_list "(param_1,iVar5,pvVar22,lVar7)" (( "(") (identifier "param_1") (, ",") (identifier "iVar5") (, ",") (identifier "pvVar22") (, ",") (identifier "lVar7") () ")")))) (; ";")) (if_statement "if (lVar10 == 0) {\n                    \n                    FUN_00106090(*param_1);\n                  }" (if "if") (parenthesized_expression "(lVar10 == 0)" (( "(") (binary_expression "lVar10 == 0" (identifier "lVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                    FUN_00106090(*param_1);\n                  }" ({ "{") (expression_statement "FUN_00106090(*param_1);" (call_expression "FUN_00106090(*param_1)" (identifier "FUN_00106090") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar14 = *(long *)(lVar9 + 0x20);" (assignment_expression "lVar14 = *(long *)(lVar9 + 0x20)" (identifier "lVar14") (= "=") (pointer_expression "*(long *)(lVar9 + 0x20)" (* "*") (cast_expression "(long *)(lVar9 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x20)" (( "(") (binary_expression "lVar9 + 0x20" (identifier "lVar9") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;" (if "if") (parenthesized_expression "((*(uint *)(lVar9 + 0x18) & 0x200100) == 0)" (( "(") (binary_expression "(*(uint *)(lVar9 + 0x18) & 0x200100) == 0" (parenthesized_expression "(*(uint *)(lVar9 + 0x18) & 0x200100)" (( "(") (binary_expression "*(uint *)(lVar9 + 0x18) & 0x200100" (pointer_expression "*(uint *)(lVar9 + 0x18)" (* "*") (cast_expression "(uint *)(lVar9 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x18)" (( "(") (binary_expression "lVar9 + 0x18" (identifier "lVar9") (+ "+") (number_literal "0x18")) () ")")))) (& "&") (number_literal "0x200100")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00104e70;" (goto "goto") (statement_identifier "LAB_00104e70") (; ";"))) (expression_statement "uVar13 = *(ulong *)(lVar9 + 0x10);" (assignment_expression "uVar13 = *(ulong *)(lVar9 + 0x10)" (identifier "uVar13") (= "=") (pointer_expression "*(ulong *)(lVar9 + 0x10)" (* "*") (cast_expression "(ulong *)(lVar9 + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x10)" (( "(") (binary_expression "lVar9 + 0x10" (identifier "lVar9") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;" (if "if") (parenthesized_expression "(*(long *)(lVar10 + 0x20) != lVar14)" (( "(") (binary_expression "*(long *)(lVar10 + 0x20) != lVar14" (pointer_expression "*(long *)(lVar10 + 0x20)" (* "*") (cast_expression "(long *)(lVar10 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x20)" (( "(") (binary_expression "lVar10 + 0x20" (identifier "lVar10") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (identifier "lVar14")) () ")")) (goto_statement "goto LAB_00104b7b;" (goto "goto") (statement_identifier "LAB_00104b7b") (; ";"))) (labeled_statement "LAB_00104ea0:\n                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;" (statement_identifier "LAB_00104ea0") (: ":") (expression_statement "uVar13 = *(long *)(lVar10 + 0x10) - uVar13;" (assignment_expression "uVar13 = *(long *)(lVar10 + 0x10) - uVar13" (identifier "uVar13") (= "=") (binary_expression "*(long *)(lVar10 + 0x10) - uVar13" (pointer_expression "*(long *)(lVar10 + 0x10)" (* "*") (cast_expression "(long *)(lVar10 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x10)" (( "(") (binary_expression "lVar10 + 0x10" (identifier "lVar10") (+ "+") (number_literal "0x10")) () ")")))) (- "-") (identifier "uVar13"))) (; ";"))) (expression_statement "lVar9 = lVar10;" (assignment_expression "lVar9 = lVar10" (identifier "lVar9") (= "=") (identifier "lVar10")) (; ";")) (if_statement "if (uVar13 == 0) goto LAB_00104bad;" (if "if") (parenthesized_expression "(uVar13 == 0)" (( "(") (binary_expression "uVar13 == 0" (identifier "uVar13") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00104bad;" (goto "goto") (statement_identifier "LAB_00104bad") (; ";"))) (labeled_statement "LAB_00104b8a:\n                  *puVar17 = (ulong)pvVar15;" (statement_identifier "LAB_00104b8a") (: ":") (expression_statement "*puVar17 = (ulong)pvVar15;" (assignment_expression "*puVar17 = (ulong)pvVar15" (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (= "=") (cast_expression "(ulong)pvVar15" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pvVar15"))) (; ";"))) (expression_statement "puVar16 = puVar17 + 2;" (assignment_expression "puVar16 = puVar17 + 2" (identifier "puVar16") (= "=") (binary_expression "puVar17 + 2" (identifier "puVar17") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "puVar17[1] = uVar13;" (assignment_expression "puVar17[1] = uVar13" (subscript_expression "puVar17[1]" (identifier "puVar17") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar13")) (; ";")) (} "}")) (else_clause "else {\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }" (else "else") (compound_statement "{\n                  lVar14 = *(long *)(lVar9 + 0x20);\n                  lVar10 = 0;\n                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }\n                  puVar16 = puVar17;\n                  if (uVar13 != 0) goto LAB_00104b8a;\n                }" ({ "{") (expression_statement "lVar14 = *(long *)(lVar9 + 0x20);" (assignment_expression "lVar14 = *(long *)(lVar9 + 0x20)" (identifier "lVar14") (= "=") (pointer_expression "*(long *)(lVar9 + 0x20)" (* "*") (cast_expression "(long *)(lVar9 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x20)" (( "(") (binary_expression "lVar9 + 0x20" (identifier "lVar9") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "lVar10 = 0;" (assignment_expression "lVar10 = 0" (identifier "lVar10") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }\n                  else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }" (if "if") (parenthesized_expression "((*(uint *)(lVar9 + 0x18) & 0x200100) == 0)" (( "(") (binary_expression "(*(uint *)(lVar9 + 0x18) & 0x200100) == 0" (parenthesized_expression "(*(uint *)(lVar9 + 0x18) & 0x200100)" (( "(") (binary_expression "*(uint *)(lVar9 + 0x18) & 0x200100" (pointer_expression "*(uint *)(lVar9 + 0x18)" (* "*") (cast_expression "(uint *)(lVar9 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x18)" (( "(") (binary_expression "lVar9 + 0x18" (identifier "lVar9") (+ "+") (number_literal "0x18")) () ")")))) (& "&") (number_literal "0x200100")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }\n                  }" ({ "{") (labeled_statement "LAB_00104e70:\n                    if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }" (statement_identifier "LAB_00104e70") (: ":") (if_statement "if (*(int *)(param_1[1] + 8) == 5) {\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }\n                    else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }" (if "if") (parenthesized_expression "(*(int *)(param_1[1] + 8) == 5)" (( "(") (binary_expression "*(int *)(param_1[1] + 8) == 5" (pointer_expression "*(int *)(param_1[1] + 8)" (* "*") (cast_expression "(int *)(param_1[1] + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[1] + 8)" (( "(") (binary_expression "param_1[1] + 8" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "5")) () ")")) (compound_statement "{\n                      uVar13 = *(ulong *)(lVar9 + 0x38);\n                    }" ({ "{") (expression_statement "uVar13 = *(ulong *)(lVar9 + 0x38);" (assignment_expression "uVar13 = *(ulong *)(lVar9 + 0x38)" (identifier "uVar13") (= "=") (pointer_expression "*(ulong *)(lVar9 + 0x38)" (* "*") (cast_expression "(ulong *)(lVar9 + 0x38)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x38)" (( "(") (binary_expression "lVar9 + 0x38" (identifier "lVar9") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }" (else "else") (compound_statement "{\n                      uVar13 = *(ulong *)(lVar9 + 0x10);\n                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }\n                    }" ({ "{") (expression_statement "uVar13 = *(ulong *)(lVar9 + 0x10);" (assignment_expression "uVar13 = *(ulong *)(lVar9 + 0x10)" (identifier "uVar13") (= "=") (pointer_expression "*(ulong *)(lVar9 + 0x10)" (* "*") (cast_expression "(ulong *)(lVar9 + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x10)" (( "(") (binary_expression "lVar9 + 0x10" (identifier "lVar9") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }" (if "if") (parenthesized_expression "((*(byte *)(lVar14 + 0x21) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)(lVar14 + 0x21) & 0x10) == 0" (parenthesized_expression "(*(byte *)(lVar14 + 0x21) & 0x10)" (( "(") (binary_expression "*(byte *)(lVar14 + 0x21) & 0x10" (pointer_expression "*(byte *)(lVar14 + 0x21)" (* "*") (cast_expression "(byte *)(lVar14 + 0x21)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x21)" (( "(") (binary_expression "lVar14 + 0x21" (identifier "lVar14") (+ "+") (number_literal "0x21")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;\n                        goto LAB_00104b7b;\n                      }" ({ "{") (if_statement "if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))\n                        goto LAB_00104ea0;" (if "if") (parenthesized_expression "((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))" (( "(") (binary_expression "(pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14)" (parenthesized_expression "(pvVar22 < pvVar18)" (( "(") (binary_expression "pvVar22 < pvVar18" (identifier "pvVar22") (< "<") (identifier "pvVar18")) () ")")) (&& "&&") (parenthesized_expression "(*(long *)(lVar10 + 0x20) == lVar14)" (( "(") (binary_expression "*(long *)(lVar10 + 0x20) == lVar14" (pointer_expression "*(long *)(lVar10 + 0x20)" (* "*") (cast_expression "(long *)(lVar10 + 0x20)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar10 + 0x20)" (( "(") (binary_expression "lVar10 + 0x20" (identifier "lVar10") (+ "+") (number_literal "0x20")) () ")")))) (== "==") (identifier "lVar14")) () ")"))) () ")")) (goto_statement "goto LAB_00104ea0;" (goto "goto") (statement_identifier "LAB_00104ea0") (; ";"))) (goto_statement "goto LAB_00104b7b;" (goto "goto") (statement_identifier "LAB_00104b7b") (; ";")) (} "}"))) (} "}"))))) (} "}")) (else_clause "else {\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }" (else "else") (compound_statement "{\n                    uVar13 = *(ulong *)(lVar9 + 0x10);\nLAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;\n                  }" ({ "{") (expression_statement "uVar13 = *(ulong *)(lVar9 + 0x10);" (assignment_expression "uVar13 = *(ulong *)(lVar9 + 0x10)" (identifier "uVar13") (= "=") (pointer_expression "*(ulong *)(lVar9 + 0x10)" (* "*") (cast_expression "(ulong *)(lVar9 + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0x10)" (( "(") (binary_expression "lVar9 + 0x10" (identifier "lVar9") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (labeled_statement "LAB_00104b7b:\n                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;" (statement_identifier "LAB_00104b7b") (: ":") (expression_statement "uVar13 = *(long *)(lVar14 + 0x38) - uVar13;" (assignment_expression "uVar13 = *(long *)(lVar14 + 0x38) - uVar13" (identifier "uVar13") (= "=") (binary_expression "*(long *)(lVar14 + 0x38) - uVar13" (pointer_expression "*(long *)(lVar14 + 0x38)" (* "*") (cast_expression "(long *)(lVar14 + 0x38)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar14 + 0x38)" (( "(") (binary_expression "lVar14 + 0x38" (identifier "lVar14") (+ "+") (number_literal "0x38")) () ")")))) (- "-") (identifier "uVar13"))) (; ";"))) (} "}")))) (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" (identifier "puVar16") (= "=") (identifier "puVar17")) (; ";")) (if_statement "if (uVar13 != 0) goto LAB_00104b8a;" (if "if") (parenthesized_expression "(uVar13 != 0)" (( "(") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00104b8a;" (goto "goto") (statement_identifier "LAB_00104b8a") (; ";"))) (} "}")))) (expression_statement "puVar17 = puVar16;" (assignment_expression "puVar17 = puVar16" (identifier "puVar17") (= "=") (identifier "puVar16")) (; ";")) (expression_statement "lVar9 = lVar10;" (assignment_expression "lVar9 = lVar10" (identifier "lVar9") (= "=") (identifier "lVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pvVar22 < pvVar18)" (( "(") (binary_expression "pvVar22 < pvVar18" (identifier "pvVar22") (< "<") (identifier "pvVar18")) () ")")) (; ";"))) (expression_statement "sVar8 = (long)puVar16 - (long)local_68 >> 4;" (assignment_expression "sVar8 = (long)puVar16 - (long)local_68 >> 4" (identifier "sVar8") (= "=") (binary_expression "(long)puVar16 - (long)local_68 >> 4" (binary_expression "(long)puVar16 - (long)local_68" (cast_expression "(long)puVar16" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar16")) (- "-") (cast_expression "(long)local_68" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_68"))) (>> ">>") (number_literal "4"))) (; ";")) (} "}")) (else_clause "else {\n              sVar8 = 0;\n            }" (else "else") (compound_statement "{\n              sVar8 = 0;\n            }" ({ "{") (expression_statement "sVar8 = 0;" (assignment_expression "sVar8 = 0" (identifier "sVar8") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "qsort(local_68,sVar8,0x10,FUN_00105010);" (call_expression "qsort(local_68,sVar8,0x10,FUN_00105010)" (identifier "qsort") (argument_list "(local_68,sVar8,0x10,FUN_00105010)" (( "(") (identifier "local_68") (, ",") (identifier "sVar8") (, ",") (number_literal "0x10") (, ",") (identifier "FUN_00105010") () ")"))) (; ";")) (expression_statement "pcVar12 = *(code **)(param_1[1] + 0x200);" (assignment_expression "pcVar12 = *(code **)(param_1[1] + 0x200)" (identifier "pcVar12") (= "=") (pointer_expression "*(code **)(param_1[1] + 0x200)" (* "*") (cast_expression "(code **)(param_1[1] + 0x200)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1[1] + 0x200)" (( "(") (binary_expression "param_1[1] + 0x200" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x200")) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          local_68 = (ulong *)0x0;\n        }" (else "else") (compound_statement "{\n          local_68 = (ulong *)0x0;\n        }" ({ "{") (expression_statement "local_68 = (ulong *)0x0;" (assignment_expression "local_68 = (ulong *)0x0" (identifier "local_68") (= "=") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (expression_statement "pvVar22 = local_48;" (assignment_expression "pvVar22 = local_48" (identifier "pvVar22") (= "=") (identifier "local_48")) (; ";")) (expression_statement "iVar5 = DAT_0010cc20;" (assignment_expression "iVar5 = DAT_0010cc20" (identifier "iVar5") (= "=") (identifier "DAT_0010cc20")) (; ";")) (if_statement "if (DAT_0010cc28 == 0) {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }\n        else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }" (if "if") (parenthesized_expression "(DAT_0010cc28 == 0)" (( "(") (binary_expression "DAT_0010cc28 == 0" (identifier "DAT_0010cc28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }\n        }" ({ "{") (expression_statement "lVar6 = (*pcVar12)(param_1);" (assignment_expression "lVar6 = (*pcVar12)(param_1)" (identifier "lVar6") (= "=") (call_expression "(*pcVar12)(param_1)" (parenthesized_expression "(*pcVar12)" (( "(") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (lVar6 != 0) {\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }" (if "if") (parenthesized_expression "(lVar6 != 0)" (( "(") (binary_expression "lVar6 != 0" (identifier "lVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);\n            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }\nLAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }\n            free(local_48);\n            free(local_68);\n            return;\n          }" ({ "{") (expression_statement "pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);" (assignment_expression "pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22)" (identifier "pvVar18") (= "=") (cast_expression "(void *)(sVar8 * local_4c + (long)pvVar22)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(sVar8 * local_4c + (long)pvVar22)" (( "(") (binary_expression "sVar8 * local_4c + (long)pvVar22" (binary_expression "sVar8 * local_4c" (identifier "sVar8") (* "*") (identifier "local_4c")) (+ "+") (cast_expression "(long)pvVar22" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar22"))) () ")")))) (; ";")) (for_statement "for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }" (for "for") (( "(") (; ";") (binary_expression "pvVar22 < pvVar18" (identifier "pvVar22") (< "<") (identifier "pvVar18")) (; ";") (assignment_expression "pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)" (identifier "pvVar22") (= "=") (cast_expression "(void *)((long)pvVar22 + (ulong)local_4c)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar22 + (ulong)local_4c)" (( "(") (binary_expression "(long)pvVar22 + (ulong)local_4c" (cast_expression "(long)pvVar22" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar22")) (+ "+") (cast_expression "(ulong)local_4c" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_4c"))) () ")")))) () ")") (compound_statement "{\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,0,param_2);\n            }" ({ "{") (expression_statement "lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);" (assignment_expression "lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6)" (identifier "lVar7") (= "=") (call_expression "(**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6)" (parenthesized_expression "(**(code **)(param_1[1] + 0x260))" (( "(") (pointer_expression "**(code **)(param_1[1] + 0x260)" (* "*") (pointer_expression "*(code **)(param_1[1] + 0x260)" (* "*") (cast_expression "(code **)(param_1[1] + 0x260)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1[1] + 0x260)" (( "(") (binary_expression "param_1[1] + 0x260" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x260")) () ")"))))) () ")")) (argument_list "(param_1,iVar5,pvVar22,lVar6)" (( "(") (identifier "param_1") (, ",") (identifier "iVar5") (, ",") (identifier "pvVar22") (, ",") (identifier "lVar6") () ")")))) (; ";")) (if_statement "if (lVar7 == 0) goto LAB_00104f21;" (if "if") (parenthesized_expression "(lVar7 == 0)" (( "(") (binary_expression "lVar7 == 0" (identifier "lVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00104f21;" (goto "goto") (statement_identifier "LAB_00104f21") (; ";"))) (expression_statement "FUN_00104200(param_1,lVar7,0,param_2);" (call_expression "FUN_00104200(param_1,lVar7,0,param_2)" (identifier "FUN_00104200") (argument_list "(param_1,lVar7,0,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "lVar7") (, ",") (number_literal "0") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00104d08:\n            if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }" (statement_identifier "LAB_00104d08") (: ":") (if_statement "if (local_40[0] != (void *)0x0) {\n              free(local_40[0]);\n            }" (if "if") (parenthesized_expression "(local_40[0] != (void *)0x0)" (( "(") (binary_expression "local_40[0] != (void *)0x0" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              free(local_40[0]);\n            }" ({ "{") (expression_statement "free(local_40[0]);" (call_expression "free(local_40[0])" (identifier "free") (argument_list "(local_40[0])" (( "(") (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (} "}")))) (expression_statement "free(local_48);" (call_expression "free(local_48)" (identifier "free") (argument_list "(local_48)" (( "(") (identifier "local_48") () ")"))) (; ";")) (expression_statement "free(local_68);" (call_expression "free(local_68)" (identifier "free") (argument_list "(local_68)" (( "(") (identifier "local_68") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }" (else "else") (compound_statement "{\n          lVar6 = (*pcVar12)(param_1);\n          if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }\n        }" ({ "{") (expression_statement "lVar6 = (*pcVar12)(param_1);" (assignment_expression "lVar6 = (*pcVar12)(param_1)" (identifier "lVar6") (= "=") (call_expression "(*pcVar12)(param_1)" (parenthesized_expression "(*pcVar12)" (( "(") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (lVar6 != 0) {\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }" (if "if") (parenthesized_expression "(lVar6 != 0)" (( "(") (binary_expression "lVar6 != 0" (identifier "lVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }\n            goto LAB_00104d08;\n          }" ({ "{") (for_statement "for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }" (for "for") (( "(") (assignment_expression "puVar17 = local_68" (identifier "puVar17") (= "=") (identifier "local_68")) (; ";") (binary_expression "puVar17 < local_68 + sVar8 * 2" (identifier "puVar17") (< "<") (binary_expression "local_68 + sVar8 * 2" (identifier "local_68") (+ "+") (binary_expression "sVar8 * 2" (identifier "sVar8") (* "*") (number_literal "2")))) (; ";") (assignment_expression "puVar17 = puVar17 + 2" (identifier "puVar17") (= "=") (binary_expression "puVar17 + 2" (identifier "puVar17") (+ "+") (number_literal "2"))) () ")") (compound_statement "{\n              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);\n              if (lVar7 == 0) goto LAB_00104f21;\n              FUN_00104200(param_1,lVar7,puVar17[1],param_2);\n            }" ({ "{") (expression_statement "lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);" (assignment_expression "lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6)" (identifier "lVar7") (= "=") (call_expression "(**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6)" (parenthesized_expression "(**(code **)(param_1[1] + 0x260))" (( "(") (pointer_expression "**(code **)(param_1[1] + 0x260)" (* "*") (pointer_expression "*(code **)(param_1[1] + 0x260)" (* "*") (cast_expression "(code **)(param_1[1] + 0x260)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1[1] + 0x260)" (( "(") (binary_expression "param_1[1] + 0x260" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x260")) () ")"))))) () ")")) (argument_list "(param_1,iVar5,*puVar17,lVar6)" (( "(") (identifier "param_1") (, ",") (identifier "iVar5") (, ",") (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (, ",") (identifier "lVar6") () ")")))) (; ";")) (if_statement "if (lVar7 == 0) goto LAB_00104f21;" (if "if") (parenthesized_expression "(lVar7 == 0)" (( "(") (binary_expression "lVar7 == 0" (identifier "lVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00104f21;" (goto "goto") (statement_identifier "LAB_00104f21") (; ";"))) (expression_statement "FUN_00104200(param_1,lVar7,puVar17[1],param_2);" (call_expression "FUN_00104200(param_1,lVar7,puVar17[1],param_2)" (identifier "FUN_00104200") (argument_list "(param_1,lVar7,puVar17[1],param_2)" (( "(") (identifier "param_1") (, ",") (identifier "lVar7") (, ",") (subscript_expression "puVar17[1]" (identifier "puVar17") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00104d08;" (goto "goto") (statement_identifier "LAB_00104d08") (; ";")) (} "}"))) (} "}")))) (} "}"))) (labeled_statement "LAB_00104f21:\n                    \n      FUN_00106090(*param_1);" (statement_identifier "LAB_00104f21") (: ":") (expression_statement "FUN_00106090(*param_1);" (call_expression "FUN_00106090(*param_1)" (identifier "FUN_00106090") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")"))) (; ";"))) (} "}"))))) (} "}"))) (expression_statement "uVar3 = *param_1;" (assignment_expression "uVar3 = *param_1" (identifier "uVar3") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar11 = dcgettext(0,"%s: no symbols",5);" (assignment_expression "uVar11 = dcgettext(0,"%s: no symbols",5)" (identifier "uVar11") (= "=") (call_expression "dcgettext(0,"%s: no symbols",5)" (identifier "dcgettext") (argument_list "(0,"%s: no symbols",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s: no symbols"" (" """) (string_content "%s: no symbols") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_001061b0(uVar11,uVar3);" (call_expression "FUN_001061b0(uVar11,uVar3)" (identifier "FUN_001061b0") (argument_list "(uVar11,uVar3)" (( "(") (identifier "uVar11") (, ",") (identifier "uVar3") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *abfd,type_1 *archive_bfd)

{
  type_2 var_35;
  type_3 var_30;
  int var_4;
  long var_2;
  type_4 *var_14;
  type_5 *var_11;
  size_t var_15;
  type_5 *var_41;
  type_5 *var_42;
  char *pcVar10;
  type_6 *p_Var11;
  long var_7;
  type_4 **ppbVar13;
  char *var_20;
  type_7 *var_43;
  type_4 **ppbVar16;
  void *var_33;
  type_8 *puVar18;
  type_8 *var_44;
  void *var_17;
  long *var_13;
  long *var_10;
  void *var_32;
  void *var_16;
  type_9 *var_21;
  long lVar26;
  type_10 var_40;
  type_9 *var_22;
  type_11 *pbVar28;
  type_5 *paVar29;
  bool var_23;
  bool bVar31;
  type_9 bVar32;
  type_8 *var_49;
  type_2 var_6;
  void *minisyms;
  type_5 *var_47;
  long *var_12;
  
  bVar32 = 0;
  var_47 = (type_5 *)0x0;
  if ((var_1 != 0) || ((abfd->field_0x45 & 2) != 0)) {
    var_2 = (*abfd->xvec->_read_minisymbols)(abfd,var_1,&minisyms,&var_6);
    if (var_2 < 0) {
      if ((var_1 == 0) || (var_4 = var_3(), var_4 != 7)) goto LAB_00104f21;
    }
    else if (var_2 != 0) {
      var_15 = (size_t)var_6;
      pbVar28 = abfd->xvec;
      if ((var_5 != 0) && (var_6 == 8)) {
        if (var_1 == 0) {
          var_7 = (*pbVar28->_bfd_get_dynamic_symtab_upper_bound)(abfd);
          ppbVar16 = (type_4 **)minisyms;
          lVar26 = var_2;
          if (var_7 < 1) {
            pbVar28 = abfd->xvec;
            var_7 = 0;
            ppbVar13 = (type_4 **)0x0;
          }
          else {
            ppbVar13 = (type_4 **)var_8(var_7);
            var_7 = (*abfd->xvec->_bfd_canonicalize_dynamic_symtab)(abfd,ppbVar13);
            if (var_7 < 0) goto LAB_00104f21;
            pbVar28 = abfd->xvec;
          }
        }
        else {
          lVar26 = 0;
          ppbVar16 = (type_4 **)0x0;
          var_7 = var_2;
          ppbVar13 = (type_4 **)minisyms;
        }
        var_7 = (*pbVar28->_bfd_get_synthetic_symtab)
                           (abfd,lVar26,ppbVar16,var_7,ppbVar13,&var_47);
        if (var_7 < 1) {
          var_15 = (size_t)var_6;
          pbVar28 = abfd->xvec;
        }
        else {
          var_16 = (void *)var_8((var_2 + var_7) * 8 + 8);
          var_9(var_16,minisyms,var_2 * 8);
          var_13 = (long *)(var_2 * 8 + (long)var_16);
          var_11 = var_47;
          var_10 = var_13;
          do {
            var_12 = var_10 + 1;
            *var_10 = (long)var_11;
            var_11 = var_11 + 1;
            var_10 = var_12;
          } while (var_12 != var_13 + var_7);
          var_15 = (size_t)var_6;
          pbVar28 = abfd->xvec;
          *var_12 = 0;
          var_2 = var_2 + var_7;
          minisyms = var_16;
        }
      }
      var_16 = minisyms;
      var_4 = var_1;
      var_14 = (*pbVar28->_bfd_make_empty_symbol)(abfd);
      if (var_14 != (type_4 *)0x0) {
        var_17 = (void *)((long)var_16 + var_2 * var_15);
        var_33 = var_16;
        var_32 = var_16;
        if (var_16 < var_17) {
LAB_001048a5:
          do {
            var_11 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,var_4,var_32,var_14);
            if (var_11 == (type_5 *)0x0) {
                    /* WARNING: Subroutine does not return */
              var_18(abfd->filename);
            }
            var_20 = var_11->name;
            if ((*var_20 == '_') && (var_20[1] == '_')) {
              var_2 = 0xf;
              var_23 = var_19((type_10)var_20,(type_10)(var_20[2] == '_'));
              bVar31 = (type_9 *)(var_20 + (var_20[2] == '_')) == (type_9 *)0x0;
              var_21 = (type_9 *)(var_20 + (var_20[2] == '_'));
              var_22 = (type_9 *)"__gnu_lto_slim";
              do {
                if (var_2 == 0) break;
                var_2 = var_2 + -1;
                var_23 = *var_21 < *var_22;
                bVar31 = *var_21 == *var_22;
                var_21 = var_21 + (type_10)bVar32 * -2 + 1;
                var_22 = var_22 + (type_10)bVar32 * -2 + 1;
              } while (bVar31);
              if ((!var_23 && !bVar31) == var_23) {
                var_20 = abfd->filename;
                pcVar10 = (char *)var_24(0,"%s: plugin needed to handle lto object",5);
                var_25(pcVar10,var_20);
              }
            }
            if (var_26 != 0) {
              if ((var_11->section != (type_7 *)0x10c838) ||
                 (((var_27 == 0 && ((var_11->flags & 4) != 0)) || (var_28 != 0))))
              goto LAB_00104897;
LAB_00104851:
              if ((var_29 == 0) || (var_11->section != (type_7 *)0x10c838)) {
LAB_00104861:
                var_30 = (*abfd->xvec->_bfd_is_target_special_symbol)(abfd,var_11);
                if ((var_30 == 0) || (var_31 != 0)) {
                  if (var_32 != var_33) {
                    var_9(var_33,var_32,var_15);
                  }
                  var_33 = (void *)((long)var_33 + var_15);
                }
              }
LAB_00104897:
              var_32 = (void *)((long)var_32 + var_15);
              if (var_17 <= var_32) break;
              goto LAB_001048a5;
            }
            if (var_34 != 0) {
              var_35 = var_11->flags;
              if ((var_35 & 0x800082) == 0) {
                if (var_11->section == (type_7 *)0x10c838) {
                  if (((var_27 != 0) || ((var_35 & 4) == 0)) &&
                     ((var_28 == 0 && (var_29 == 0)))) goto LAB_00104861;
                }
                else if ((var_11->section->flags & 0x1000) != 0) goto LAB_00104913;
              }
              else {
LAB_00104913:
                if ((var_27 != 0) || ((var_35 & 4) == 0)) goto LAB_00104928;
              }
              goto LAB_00104897;
            }
            if ((var_27 != 0) || ((var_11->flags & 4) == 0)) {
LAB_00104928:
              if (var_28 == 0) goto LAB_00104851;
              if ((var_11->section == (type_7 *)0x10c838) ||
                 (var_11->section == (type_7 *)0x10c950)) goto LAB_00104897;
              goto LAB_00104861;
            }
            var_32 = (void *)((long)var_32 + var_15);
          } while (var_32 < var_17);
          var_15 = ((long)var_33 - (long)var_16) / (long)var_15;
        }
        else {
          var_15 = 0;
        }
        p_Var11 = abfd->xvec->_bfd_make_empty_symbol;
        if (var_36 == 0) {
          sort_dynamic = var_1;
          sort_bfd = abfd;
          var_37 = (*p_Var11)(abfd);
          var_38 = (*abfd->xvec->_bfd_make_empty_symbol)(abfd);
          var_16 = minisyms;
          var_4 = var_1;
          if ((var_37 == (type_5 *)0x0) || (var_38 == (type_4 *)0x0)) goto LAB_00104f21;
          var_40 = (type_10)var_6;
          if (var_28 == 0) {
            var_39(minisyms,var_15,var_40,(type_12)sorters[sort_numerically][reverse_sort]);
            var_49 = (type_8 *)0x0;
            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;
          }
          else {
            var_39(minisyms,var_15,var_40,size_forward1);
            var_49 = (type_8 *)var_8(var_15 << 4);
            paVar29 = var_37;
            var_11 = var_38;
            var_17 = (void *)((long)var_16 + var_15 * var_40);
            if (var_16 < var_17) {
              var_41 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,var_4,var_16,var_37);
              var_44 = var_49;
              if (var_41 == (type_5 *)0x0) goto LAB_00104f21;
LAB_00104bad:
              do {
                var_42 = paVar29;
                paVar29 = var_11;
                var_33 = var_16;
                var_16 = (void *)((long)var_33 + var_40);
                var_11 = var_42;
                if (var_16 < var_17) {
                  var_42 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,var_4,var_16,paVar29);
                  if (var_42 == (type_5 *)0x0) {
                    /* WARNING: Subroutine does not return */
                    var_18(abfd->filename);
                  }
                  var_43 = var_41->section;
                  if ((var_41->flags & 0x200100) == 0) goto LAB_00104e70;
                  var_20 = (char *)var_41->value;
                  if (var_42->section != var_43) goto LAB_00104b7b;
LAB_00104ea0:
                  var_20 = (char *)(var_42->value - (long)var_20);
                  var_41 = var_42;
                  if (var_20 == (char *)0x0) goto LAB_00104bad;
LAB_00104b8a:
                  *var_44 = var_33;
                  puVar18 = var_44 + 2;
                  var_44[1] = var_20;
                }
                else {
                  var_43 = var_41->section;
                  var_42 = (type_5 *)0x0;
                  if ((var_41->flags & 0x200100) == 0) {
LAB_00104e70:
                    if (abfd->xvec->flavour == var_45) {
                      var_20 = var_41[1].name;
                    }
                    else {
                      var_20 = (char *)var_41->value;
                      if ((var_43->flags & 0x1000) == 0) {
                        if ((var_16 < var_17) && (var_42->section == var_43)) goto LAB_00104ea0;
                        goto LAB_00104b7b;
                      }
                    }
                  }
                  else {
                    var_20 = (char *)var_41->value;
LAB_00104b7b:
                    var_20 = (char *)(var_43->var_6 - (long)var_20);
                  }
                  puVar18 = var_44;
                  if (var_20 != (char *)0x0) goto LAB_00104b8a;
                }
                var_44 = puVar18;
                var_41 = var_42;
              } while (var_16 < var_17);
              var_15 = (long)puVar18 - (long)var_49 >> 4;
            }
            else {
              var_15 = 0;
            }
            var_39(var_49,var_15,0x10,size_forward2);
            p_Var11 = abfd->xvec->_bfd_make_empty_symbol;
          }
        }
        else {
          var_49 = (type_8 *)0x0;
        }
        var_16 = minisyms;
        var_4 = var_1;
        if (var_28 == 0) {
          var_14 = (*p_Var11)(abfd);
          if (var_14 != (type_4 *)0x0) {
            var_17 = (void *)(var_15 * var_6 + (long)var_16);
            for (; var_16 < var_17; var_16 = (void *)((long)var_16 + (type_10)var_6)) {
              var_11 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,var_4,var_16,var_14);
              if (var_11 == (type_5 *)0x0) goto LAB_00104f21;
              var_46(abfd,var_11,0,archive_bfd);
            }
LAB_00104d08:
            if (var_47 != (type_5 *)0x0) {
              var_48(var_47);
            }
            var_48(minisyms);
            var_48(var_49);
            return;
          }
        }
        else {
          var_14 = (*p_Var11)(abfd);
          if (var_14 != (type_4 *)0x0) {
            for (var_44 = var_49; var_44 < var_49 + var_15 * 2; var_44 = var_44 + 2) {
              var_11 = (*abfd->xvec->_minisymbol_to_symbol)(abfd,var_4,(void *)*var_44,var_14);
              if (var_11 == (type_5 *)0x0) goto LAB_00104f21;
              var_46(abfd,var_11,var_44[1],archive_bfd);
            }
            goto LAB_00104d08;
          }
        }
      }
LAB_00104f21:
                    /* WARNING: Subroutine does not return */
      var_18(abfd->filename);
    }
  }
  var_20 = abfd->filename;
  pcVar10 = (char *)var_24(0,"%s: no symbols",5);
  var_25(pcVar10,var_20);
  return;
}


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

void MASKED(undefined8 *param_1,undefined8 param_2)

{
  uint uVar1;
  char *pcVar2;
  undefined8 uVar3;
  int iVar4;
  int iVar5;
  long lVar6;
  long lVar7;
  size_t sVar8;
  long lVar9;
  long lVar10;
  undefined8 uVar11;
  code *pcVar12;
  ulong uVar13;
  long lVar14;
  void *pvVar15;
  ulong *puVar16;
  ulong *puVar17;
  void *pvVar18;
  long *plVar19;
  long *plVar20;
  void *__src;
  void *pvVar22;
  byte *pbVar23;
  ulong __size;
  byte *pbVar24;
  bool bVar25;
  bool bVar26;
  byte bVar27;
  ulong *local_68;
  uint local_4c;
  void *local_48;
  void *local_40 [2];
  long *plVar21;
  
  bVar27 = 0;
  local_40[0] = (void *)0x0;
  if ((DAT_0010cc20 != 0) || ((*(byte *)((long)param_1 + 0x45) & 2) != 0)) {
    lVar6 = (**(code **)(param_1[1] + 600))(param_1,DAT_0010cc20,&local_48,&local_4c);
    if (lVar6 < 0) {
      if ((DAT_0010cc20 == 0) || (iVar5 = bfd_get_error(), iVar5 != 7)) goto LAB_00104f21;
    }
    else if (lVar6 != 0) {
      sVar8 = (size_t)local_4c;
      lVar7 = param_1[1];
      if ((DAT_0010cc18 != 0) && (local_4c == 8)) {
        if (DAT_0010cc20 == 0) {
          lVar7 = (**(code **)(lVar7 + 0x338))(param_1);
          pvVar22 = local_48;
          lVar10 = lVar6;
          if (lVar7 < 1) {
            lVar7 = param_1[1];
            lVar9 = 0;
            pvVar18 = (void *)0x0;
          }
          else {
            pvVar18 = (void *)xmalloc(lVar7);
            lVar9 = (**(code **)(param_1[1] + 0x340))(param_1,pvVar18);
            if (lVar9 < 0) goto LAB_00104f21;
            lVar7 = param_1[1];
          }
        }
        else {
          lVar10 = 0;
          pvVar22 = (void *)0x0;
          lVar9 = lVar6;
          pvVar18 = local_48;
        }
        lVar9 = (**(code **)(lVar7 + 0x348))(param_1,lVar10,pvVar22,lVar9,pvVar18,local_40);
        if (lVar9 < 1) {
          sVar8 = (size_t)local_4c;
          lVar7 = param_1[1];
        }
        else {
          pvVar18 = (void *)xmalloc((lVar6 + lVar9) * 8 + 8);
          memcpy(pvVar18,local_48,lVar6 * 8);
          plVar19 = (long *)(lVar6 * 8 + (long)pvVar18);
          pvVar22 = local_40[0];
          plVar20 = plVar19;
          do {
            plVar21 = plVar20 + 1;
            *plVar20 = (long)pvVar22;
            pvVar22 = (void *)((long)pvVar22 + 0x30);
            plVar20 = plVar21;
          } while (plVar21 != plVar19 + lVar9);
          sVar8 = (size_t)local_4c;
          lVar7 = param_1[1];
          *plVar21 = 0;
          lVar6 = lVar6 + lVar9;
          local_48 = pvVar18;
        }
      }
      pvVar22 = local_48;
      iVar5 = DAT_0010cc20;
      lVar7 = (**(code **)(lVar7 + 0x200))(param_1);
      if (lVar7 != 0) {
        pvVar18 = (void *)((long)pvVar22 + lVar6 * sVar8);
        pvVar15 = pvVar22;
        __src = pvVar22;
        if (pvVar22 < pvVar18) {
LAB_001048a5:
          do {
            lVar6 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,__src,lVar7);
            if (lVar6 == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_00106090(*param_1);
            }
            pcVar2 = *(char **)(lVar6 + 8);
            if ((*pcVar2 == '_') && (pcVar2[1] == '_')) {
              lVar9 = 0xf;
              bVar25 = CARRY8((ulong)pcVar2,(ulong)(pcVar2[2] == '_'));
              bVar26 = (byte *)(pcVar2 + (pcVar2[2] == '_')) == (byte *)0x0;
              pbVar23 = (byte *)(pcVar2 + (pcVar2[2] == '_'));
              pbVar24 = (byte *)"__gnu_lto_slim";
              do {
                if (lVar9 == 0) break;
                lVar9 = lVar9 + -1;
                bVar25 = *pbVar23 < *pbVar24;
                bVar26 = *pbVar23 == *pbVar24;
                pbVar23 = pbVar23 + (ulong)bVar27 * -2 + 1;
                pbVar24 = pbVar24 + (ulong)bVar27 * -2 + 1;
              } while (bVar26);
              if ((!bVar25 && !bVar26) == bVar25) {
                uVar3 = *param_1;
                uVar11 = dcgettext(0,"%s: plugin needed to handle lto object",5);
                FUN_001061b0(uVar11,uVar3);
              }
            }
            if (DAT_0010cc24 != 0) {
              if ((*(long *)(lVar6 + 0x20) != 0x10c838) ||
                 (((DAT_0010cc3c == 0 && ((*(byte *)(lVar6 + 0x18) & 4) != 0)) ||
                  (DAT_0010cc28 != 0)))) goto LAB_00104897;
LAB_00104851:
              if ((DAT_0010cc44 == 0) || (*(long *)(lVar6 + 0x20) != 0x10c838)) {
LAB_00104861:
                iVar4 = (**(code **)(param_1[1] + 0x228))(param_1,lVar6);
                if ((iVar4 == 0) || (DAT_0010cc10 != 0)) {
                  if (__src != pvVar15) {
                    memcpy(pvVar15,__src,sVar8);
                  }
                  pvVar15 = (void *)((long)pvVar15 + sVar8);
                }
              }
LAB_00104897:
              __src = (void *)((long)__src + sVar8);
              if (pvVar18 <= __src) break;
              goto LAB_001048a5;
            }
            if (DAT_0010cc48 != 0) {
              uVar1 = *(uint *)(lVar6 + 0x18);
              if ((uVar1 & 0x800082) == 0) {
                if (*(long *)(lVar6 + 0x20) == 0x10c838) {
                  if (((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) &&
                     ((DAT_0010cc28 == 0 && (DAT_0010cc44 == 0)))) goto LAB_00104861;
                }
                else if ((*(byte *)(*(long *)(lVar6 + 0x20) + 0x21) & 0x10) != 0) goto LAB_00104913;
              }
              else {
LAB_00104913:
                if ((DAT_0010cc3c != 0) || ((uVar1 & 4) == 0)) goto LAB_00104928;
              }
              goto LAB_00104897;
            }
            if ((DAT_0010cc3c != 0) || ((*(byte *)(lVar6 + 0x18) & 4) == 0)) {
LAB_00104928:
              if (DAT_0010cc28 == 0) goto LAB_00104851;
              if ((*(long *)(lVar6 + 0x20) == 0x10c838) || (*(long *)(lVar6 + 0x20) == 0x10c950))
              goto LAB_00104897;
              goto LAB_00104861;
            }
            __src = (void *)((long)__src + sVar8);
          } while (__src < pvVar18);
          sVar8 = ((long)pvVar15 - (long)pvVar22) / (long)sVar8;
        }
        else {
          sVar8 = 0;
        }
        pcVar12 = *(code **)(param_1[1] + 0x200);
        if (DAT_0010cc40 == 0) {
          DAT_0010cbd8 = DAT_0010cc20;
          DAT_0010cbe0 = param_1;
          DAT_0010cbd0 = (*pcVar12)(param_1);
          DAT_0010cbc8 = (**(code **)(param_1[1] + 0x200))(param_1);
          pvVar22 = local_48;
          iVar5 = DAT_0010cc20;
          if ((DAT_0010cbd0 == 0) || (DAT_0010cbc8 == 0)) goto LAB_00104f21;
          __size = (ulong)local_4c;
          if (DAT_0010cc28 == 0) {
            qsort(local_48,sVar8,__size,
                  (__compar_fn_t)(&PTR_FUN_0010bd80)[(long)DAT_0010cc30 + (long)DAT_0010cc2c * 2]);
            local_68 = (ulong *)0x0;
            pcVar12 = *(code **)(param_1[1] + 0x200);
          }
          else {
            qsort(local_48,sVar8,__size,FUN_00103ec0);
            local_68 = (ulong *)xmalloc(sVar8 << 4);
            lVar7 = DAT_0010cbd0;
            lVar6 = DAT_0010cbc8;
            pvVar18 = (void *)((long)pvVar22 + sVar8 * __size);
            if (pvVar22 < pvVar18) {
              lVar9 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,DAT_0010cbd0);
              puVar17 = local_68;
              if (lVar9 == 0) goto LAB_00104f21;
LAB_00104bad:
              do {
                lVar10 = lVar7;
                lVar7 = lVar6;
                pvVar15 = pvVar22;
                pvVar22 = (void *)((long)pvVar15 + __size);
                lVar6 = lVar10;
                if (pvVar22 < pvVar18) {
                  lVar10 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar7);
                  if (lVar10 == 0) {
                    /* WARNING: Subroutine does not return */
                    FUN_00106090(*param_1);
                  }
                  lVar14 = *(long *)(lVar9 + 0x20);
                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) goto LAB_00104e70;
                  uVar13 = *(ulong *)(lVar9 + 0x10);
                  if (*(long *)(lVar10 + 0x20) != lVar14) goto LAB_00104b7b;
LAB_00104ea0:
                  uVar13 = *(long *)(lVar10 + 0x10) - uVar13;
                  lVar9 = lVar10;
                  if (uVar13 == 0) goto LAB_00104bad;
LAB_00104b8a:
                  *puVar17 = (ulong)pvVar15;
                  puVar16 = puVar17 + 2;
                  puVar17[1] = uVar13;
                }
                else {
                  lVar14 = *(long *)(lVar9 + 0x20);
                  lVar10 = 0;
                  if ((*(uint *)(lVar9 + 0x18) & 0x200100) == 0) {
LAB_00104e70:
                    if (*(int *)(param_1[1] + 8) == 5) {
                      uVar13 = *(ulong *)(lVar9 + 0x38);
                    }
                    else {
                      uVar13 = *(ulong *)(lVar9 + 0x10);
                      if ((*(byte *)(lVar14 + 0x21) & 0x10) == 0) {
                        if ((pvVar22 < pvVar18) && (*(long *)(lVar10 + 0x20) == lVar14))
                        goto LAB_00104ea0;
                        goto LAB_00104b7b;
                      }
                    }
                  }
                  else {
                    uVar13 = *(ulong *)(lVar9 + 0x10);
LAB_00104b7b:
                    uVar13 = *(long *)(lVar14 + 0x38) - uVar13;
                  }
                  puVar16 = puVar17;
                  if (uVar13 != 0) goto LAB_00104b8a;
                }
                puVar17 = puVar16;
                lVar9 = lVar10;
              } while (pvVar22 < pvVar18);
              sVar8 = (long)puVar16 - (long)local_68 >> 4;
            }
            else {
              sVar8 = 0;
            }
            qsort(local_68,sVar8,0x10,FUN_00105010);
            pcVar12 = *(code **)(param_1[1] + 0x200);
          }
        }
        else {
          local_68 = (ulong *)0x0;
        }
        pvVar22 = local_48;
        iVar5 = DAT_0010cc20;
        if (DAT_0010cc28 == 0) {
          lVar6 = (*pcVar12)(param_1);
          if (lVar6 != 0) {
            pvVar18 = (void *)(sVar8 * local_4c + (long)pvVar22);
            for (; pvVar22 < pvVar18; pvVar22 = (void *)((long)pvVar22 + (ulong)local_4c)) {
              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,pvVar22,lVar6);
              if (lVar7 == 0) goto LAB_00104f21;
              FUN_00104200(param_1,lVar7,0,param_2);
            }
LAB_00104d08:
            if (local_40[0] != (void *)0x0) {
              free(local_40[0]);
            }
            free(local_48);
            free(local_68);
            return;
          }
        }
        else {
          lVar6 = (*pcVar12)(param_1);
          if (lVar6 != 0) {
            for (puVar17 = local_68; puVar17 < local_68 + sVar8 * 2; puVar17 = puVar17 + 2) {
              lVar7 = (**(code **)(param_1[1] + 0x260))(param_1,iVar5,*puVar17,lVar6);
              if (lVar7 == 0) goto LAB_00104f21;
              FUN_00104200(param_1,lVar7,puVar17[1],param_2);
            }
            goto LAB_00104d08;
          }
        }
      }
LAB_00104f21:
                    /* WARNING: Subroutine does not return */
      FUN_00106090(*param_1);
    }
  }
  uVar3 = *param_1;
  uVar11 = dcgettext(0,"%s: no symbols",5);
  FUN_001061b0(uVar11,uVar3);
  return;
}

