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

bfd_boolean __regparm3 process_section_groups(Filedata *filedata)

{
  char **filedata_00;
  ulong *sec;
  ulong *puVar1;
  uint uVar2;
  group *pgVar3;
  group_list *pgVar4;
  Elf_Internal_Shdr *pEVar5;
  uint uVar6;
  char *pcVar7;
  char *pcVar8;
  uchar *__ptr;
  int iVar9;
  group **ppgVar10;
  group_list *pgVar11;
  char *pcVar12;
  uint uVar13;
  size_t __nmemb;
  elf_vma eVar22;
  elf_vma eVar23;
  Filedata *pFVar14;
  Elf_Internal_Shdr *pEVar15;
  uint *puVar16;
  uint *puVar17;
  int iVar18;
  uint uVar19;
  Filedata *filedata_1;
  uchar *puVar20;
  bool bVar21;
  Elf_Internal_Sym *local_70;
  group *local_6c;
  Elf_Internal_Shdr *local_60;
  Elf_Internal_Shdr *local_58;
  Elf_Internal_Shdr *local_4c;
  uint local_48;
  char *local_44;
  uint local_34;
  ulong num_syms;
  undefined4 uStack_14;
  
  uStack_14 = 0x2305b;
  if (do_unwind == 0) {
    if (do_section_groups == 0) {
      return 1;
    }
    uVar19 = (filedata->file_header).e_shnum;
    if (uVar19 != 0) {
LAB_0002308b:
      filedata_1 = (Filedata *)filedata->section_headers;
      if (filedata_1 == (Filedata *)0x0) {
        pcVar7 = (char *)dcgettext(0,"Section headers are not available!\n",5);
        error(pcVar7);
        return 0;
      }
      section_headers_groups = (group **)calloc(uVar19,4);
      if (section_headers_groups == (group **)0x0) {
        pcVar7 = (char *)dcgettext(0,"Out of memory reading %u section group headers\n",5);
        error(pcVar7,uVar19);
        return 0;
      }
      group_count = 0;
      __nmemb = 0;
      uVar6 = 0;
      bVar21 = false;
      pFVar14 = filedata_1;
      do {
        if (pFVar14->handle == (FILE *)0x11) {
          bVar21 = true;
          __nmemb = __nmemb + 1;
        }
        uVar6 = uVar6 + 1;
        pFVar14 = (Filedata *)&(pFVar14->file_header).e_phentsize;
      } while (uVar6 < uVar19);
      if ((bVar21) && (group_count = __nmemb, __nmemb != 0)) {
        local_6c = (group *)calloc(__nmemb,8);
        section_groups = local_6c;
        if (local_6c == (group *)0x0) {
          pcVar7 = (char *)dcgettext(0,"Out of memory reading %lu groups\n",5);
          error(pcVar7,__nmemb);
          return 0;
        }
        filedata_00 = &filedata->string_table;
        num_syms = 0;
        uVar19 = 0;
        local_48 = 0;
        local_58 = (Elf_Internal_Shdr *)0x0;
        local_70 = (Elf_Internal_Sym *)0x0;
        local_4c = (Elf_Internal_Shdr *)0x0;
        local_60 = (Elf_Internal_Shdr *)0x0;
LAB_0002317f:
        do {
          if (filedata_1->handle == (FILE *)0x11) {
            sec = &filedata->string_table_length;
            pcVar7 = printable_section_name
                               ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);
            uVar6 = (uint)(filedata_1->file_header).e_phoff;
            if (((filedata->file_header).e_shnum <= uVar6) ||
               (pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2)) {
              uVar19 = uVar19 + 1;
              filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;
              pcVar8 = (char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5);
              error(pcVar8,pcVar7);
              if ((filedata->file_header).e_shnum <= uVar19) goto LAB_00023370;
              goto LAB_0002317f;
            }
            if (pEVar5 != local_60) {
              if (local_70 != (Elf_Internal_Sym *)0x0) {
                free(local_70);
              }
              if (is_32bit_elf == 0) {
                local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);
              }
              else {
                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);
              }
            }
            local_60 = pEVar5;
            if (local_70 == (Elf_Internal_Sym *)0x0) {
              pcVar8 = "Corrupt header in group section `%s\'\n";
            }
            else {
              uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4);
              if (uVar6 < num_syms) {
                if ((local_70[uVar6].st_info & 0xf) == 3) {
                  uVar6 = local_70[uVar6].st_shndx;
                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;
                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {
                    pcVar8 = "<none>";
LAB_00023a33:
                    local_44 = (char *)dcgettext(0,pcVar8,5);
                  }
                  else {
                    if (filedata->string_table == (char *)0x0) {
                      pcVar8 = "<no-strings>";
                      goto LAB_00023a33;
                    }
                    uVar6 = filedata->section_headers[uVar6].sh_name;
                    local_44 = filedata->string_table + uVar6;
                    if (filedata->string_table_length <= uVar6) {
                      pcVar8 = "<corrupt>";
                      goto LAB_00023a33;
                    }
                  }
                  if (local_58 == (Elf_Internal_Shdr *)0x0) {
                    local_4c = (Elf_Internal_Shdr *)0x0;
                    local_48 = 0;
                  }
                  else {
                    free(local_58);
                    local_48 = 0;
                    local_58 = (Elf_Internal_Shdr *)0x0;
                    local_4c = (Elf_Internal_Shdr *)0x0;
                  }
                }
                else {
                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {
                    pEVar5 = filedata->section_headers + pEVar5->sh_link;
                    if (pEVar5 != local_4c) {
                      if (local_58 != (Elf_Internal_Shdr *)0x0) {
                        free(local_58);
                      }
                      pcVar8 = (char *)dcgettext(0,"string table",5);
                      local_58 = (Elf_Internal_Shdr *)
                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,
                                          pEVar5->sh_size,pcVar8);
                      if (local_58 == (Elf_Internal_Shdr *)0x0) {
                        local_48 = 0;
                        pEVar15 = (Elf_Internal_Shdr *)0x0;
                        goto LAB_0002326f;
                      }
                      local_48 = (uint)pEVar5->sh_size;
                    }
                    pEVar15 = local_58;
                    if (local_70[uVar6].st_name < local_48) {
                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);
                      local_4c = pEVar5;
                      goto LAB_00023496;
                    }
                  }
                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {
                    local_48 = 0;
                    pEVar15 = (Elf_Internal_Shdr *)0x0;
                    pEVar5 = local_58;
                  }
                  else {
                    free(local_58);
                    local_48 = 0;
                    local_58 = (Elf_Internal_Shdr *)0x0;
                    pEVar15 = (Elf_Internal_Shdr *)0x0;
                    pEVar5 = local_58;
                  }
LAB_0002326f:
                  local_58 = pEVar5;
                  local_44 = (char *)dcgettext(0,"<corrupt>",5);
                  local_4c = local_58;
                  local_58 = pEVar15;
                }
LAB_00023496:
                uVar6 = (filedata_1->file_header).e_version;
                uVar13 = (uint)(filedata_1->file_header).e_entry;
                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);
                puVar1 = &(filedata_1->file_header).e_flags;
                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {
                  pcVar8 = (char *)dcgettext(0,"section data",5);
                  __ptr = (uchar *)get_data((void *)0x0,filedata,
                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,
                                            (filedata_1->file_header).e_entry,pcVar8);
                  if (__ptr == (uchar *)0x0) goto LAB_00023170;
                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,
                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),
                                    (filedata_1->file_header).e_version,
                                    (filedata_1->file_header).e_flags);
                  iVar9 = iVar9 + -1;
                  eVar22._0_4_ = (*byte_get)(__ptr,4);
                  if (do_section_groups != 0) {
                    pcVar8 = &DAT_0007bc5a;
                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {
                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);
                      pcVar8 = (char *)&buff_17704;
                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);
                      puVar17 = (uint *)pcVar8;
                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {
                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {
                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;
LAB_000238bb:
                          do {
                            puVar16 = puVar17;
                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;
                            uVar6 = uVar13 & 0x80808080;
                            puVar17 = puVar16 + 1;
                          } while (uVar6 == 0);
                          bVar21 = (uVar13 & 0x8080) == 0;
                          if (bVar21) {
                            uVar6 = uVar6 >> 0x10;
                          }
                          if (bVar21) {
                            puVar17 = (uint *)((int)puVar16 + 6);
                          }
                          local_34 = local_34 & 0xfffffff;
                          builtin_strncpy((char *)((int)puVar17 +
                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),
                                          "<PROC specific>",0x10);
                          goto LAB_0002390e;
                        }
LAB_00023a65:
                        do {
                          puVar16 = puVar17;
                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;
                          uVar6 = uVar13 & 0x80808080;
                          puVar17 = puVar16 + 1;
                        } while (uVar6 == 0);
                        bVar21 = (uVar13 & 0x8080) == 0;
                        if (bVar21) {
                          uVar6 = uVar6 >> 0x10;
                        }
                        if (bVar21) {
                          puVar17 = (uint *)((int)puVar16 + 6);
                        }
                        builtin_strncpy((char *)((int)puVar17 +
                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),
                                        "<unknown>",10);
                        puVar17 = (uint *)pcVar8;
                      }
                      else {
                        do {
                          puVar16 = puVar17;
                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;
                          uVar6 = uVar13 & 0x80808080;
                          puVar17 = puVar16 + 1;
                        } while (uVar6 == 0);
                        bVar21 = (uVar13 & 0x8080) == 0;
                        if (bVar21) {
                          uVar6 = uVar6 >> 0x10;
                        }
                        puVar17 = (uint *)((int)puVar16 + 6);
                        if (!bVar21) {
                          puVar17 = puVar16 + 1;
                        }
                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;
                        builtin_strncpy((char *)((int)puVar17 +
                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),
                                        "<OS specific>",0xe);
                        puVar17 = (uint *)pcVar8;
                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;
LAB_0002390e:
                        puVar17 = (uint *)pcVar8;
                        if (local_34 != 0) goto LAB_00023a65;
                      }
                      do {
                        puVar16 = puVar17;
                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;
                        uVar6 = uVar13 & 0x80808080;
                        puVar17 = puVar16 + 1;
                      } while (uVar6 == 0);
                      bVar21 = (uVar13 & 0x8080) == 0;
                      if (bVar21) {
                        uVar6 = uVar6 >> 0x10;
                      }
                      if (bVar21) {
                        puVar17 = (uint *)((int)puVar16 + 6);
                      }
                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))
                                        );
                      pcVar12[0] = ']';
                      pcVar12[1] = '\0';
                    }
                    pcVar12 = (char *)dcgettext(0,
                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"
                                                ,5);
                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);
                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);
                    printf(pcVar7);
                  }
                  local_6c->group_index = uVar19;
                  if (iVar9 != 0) {
                    iVar18 = 0;
                    puVar20 = __ptr;
                    do {
                      puVar20 = puVar20 + 4;
                      eVar23._0_4_ = (*byte_get)(puVar20,4);
                    /* WARNING: Load size is inaccurate */
                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;
                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {
                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;
                        pgVar3 = *ppgVar10;
                        if (pgVar3 != (group *)0x0) {
                          if ((elf_vma)eVar23 != 0) {
                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::
                                    lexical_block_10_9_2::num_errs + 1;
                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::
                                     lexical_block_10_9_2::num_errs < 10;
                            process_section_groups::lexical_block_10::lexical_block_10_9::
                            lexical_block_10_9_2::num_errs = uVar6;
                            if (bVar21) {
                              uVar6 = pgVar3->group_index;
                              pcVar7 = (char *)dcgettext(0,
                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"
                                                  ,5);
                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);
                              if (process_section_groups::lexical_block_10::lexical_block_10_9::
                                  lexical_block_10_9_2::num_errs == 10) {
                                pcVar7 = 
                                "Further error messages about already contained group sections suppressed\n"
                                ;
                                goto LAB_000236dd;
                              }
                            }
                            goto LAB_000235c3;
                          }
                          if (process_section_groups::lexical_block_10::lexical_block_10_9::
                              lexical_block_10_9_3::warned == 0) {
                            uVar6 = pgVar3->group_index;
                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);
                            error(pcVar7,uVar6);
                            process_section_groups::lexical_block_10::lexical_block_10_9::
                            lexical_block_10_9_3::warned = 1;
                            ppgVar10 = section_headers_groups;
                          }
                        }
                        *ppgVar10 = local_6c;
                        if (do_section_groups != 0) {
                          pcVar7 = printable_section_name
                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,
                                              (Filedata *)
                                              (filedata->section_headers + (int)(elf_vma)eVar23));
                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);
                        }
                        pgVar11 = (group_list *)xmalloc(8);
                    /* WARNING: Store size is inaccurate */
                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;
                        pgVar4 = local_6c->root;
                        local_6c->root = pgVar11;
                        pgVar11->next = pgVar4;
                      }
                      else {
                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::
                                lexical_block_10_9_1::num_group_errors + 1;
                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::
                                 lexical_block_10_9_1::num_group_errors < 10;
                        process_section_groups::lexical_block_10::lexical_block_10_9::
                        lexical_block_10_9_1::num_group_errors = uVar6;
                        if (bVar21) {
                          pcVar7 = (char *)dcgettext(0,
                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"
                                                  ,5);
                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);
                          if (process_section_groups::lexical_block_10::lexical_block_10_9::
                              lexical_block_10_9_1::num_group_errors == 10) {
                            pcVar7 = 
                            "Further error messages about overlarge group section indicies suppressed\n"
                            ;
LAB_000236dd:
                            pcVar7 = (char *)dcgettext(0,pcVar7,5);
                            warn(pcVar7);
                          }
                        }
                      }
LAB_000235c3:
                      iVar18 = iVar18 + 1;
                    } while (iVar9 != iVar18);
                  }
                  free(__ptr);
                  local_6c = local_6c + 1;
                  goto LAB_00023170;
                }
                pcVar7 = printable_section_name
                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);
                pcVar8 = (char *)dcgettext(0,
                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"
                                           ,5);
                error(pcVar8,pcVar7,uVar6,uVar13);
                goto LAB_00023378;
              }
LAB_000233d0:
              pcVar8 = "Bad sh_info in group section `%s\'\n";
            }
            pcVar8 = (char *)dcgettext(0,pcVar8,5);
            error(pcVar8,pcVar7);
          }
LAB_00023170:
          uVar19 = uVar19 + 1;
          filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;
          if ((filedata->file_header).e_shnum <= uVar19) {
LAB_00023370:
            if (local_70 != (Elf_Internal_Sym *)0x0) {
LAB_00023378:
              free(local_70);
            }
            if (local_58 == (Elf_Internal_Shdr *)0x0) {
              return 1;
            }
            free(local_58);
            return 1;
          }
        } while( true );
      }
      if (do_section_groups == 0) {
        return 1;
      }
      pcVar7 = "\nThere are no section groups in this file.\n";
      goto LAB_000232cb;
    }
  }
  else {
    uVar19 = (filedata->file_header).e_shnum;
    if (uVar19 != 0) goto LAB_0002308b;
    if (do_section_groups == 0) {
      return 1;
    }
  }
  pcVar7 = "\nThere are no sections to group in this file.\n";
LAB_000232cb:
  pcVar7 = (char *)dcgettext(0,pcVar7,5);
  printf(pcVar7);
  return 1;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Removing unreachable block (ram,0x00023217) */
/* WARNING: Removing unreachable block (ram,0x000233c0) */
/* WARNING: Removing unreachable block (ram,0x00023768) */
/* WARNING: Removing unreachable block (ram,0x00023771) */
/* WARNING: Removing unreachable block (ram,0x00023a47) */
/* WARNING: Removing unreachable block (ram,0x00023782) */
/* WARNING: Removing unreachable block (ram,0x00023a54) */
/* WARNING: Removing unreachable block (ram,0x0002378d) */
/* WARNING: Removing unreachable block (ram,0x00023a28) */
/* WARNING: Removing unreachable block (ram,0x00023a33) */
/* WARNING: Removing unreachable block (ram,0x0002379f) */
/* WARNING: Removing unreachable block (ram,0x000239be) */
/* WARNING: Removing unreachable block (ram,0x000237ab) */
/* WARNING: Removing unreachable block (ram,0x00023235) */
/* WARNING: Removing unreachable block (ram,0x00023400) */
/* WARNING: Removing unreachable block (ram,0x00023413) */
/* WARNING: Removing unreachable block (ram,0x0002341b) */
/* WARNING: Removing unreachable block (ram,0x00023427) */
/* WARNING: Removing unreachable block (ram,0x000239d3) */
/* WARNING: Removing unreachable block (ram,0x0002346a) */
/* WARNING: Removing unreachable block (ram,0x00023475) */
/* WARNING: Removing unreachable block (ram,0x00023486) */
/* WARNING: Removing unreachable block (ram,0x00023b38) */
/* WARNING: Removing unreachable block (ram,0x00023245) */
/* WARNING: Removing unreachable block (ram,0x000237d4) */
/* WARNING: Removing unreachable block (ram,0x00023251) */
/* WARNING: Removing unreachable block (ram,0x0002326f) */
/* WARNING: Removing unreachable block (ram,0x00023496) */
/* WARNING: Removing unreachable block (ram,0x000234aa) */
/* WARNING: Removing unreachable block (ram,0x000234ed) */
/* WARNING: Removing unreachable block (ram,0x00023836) */
/* WARNING: Removing unreachable block (ram,0x00023844) */
/* WARNING: Removing unreachable block (ram,0x00023857) */
/* WARNING: Removing unreachable block (ram,0x00023ab0) */
/* WARNING: Removing unreachable block (ram,0x00023aba) */
/* WARNING: Removing unreachable block (ram,0x00023ad0) */
/* WARNING: Removing unreachable block (ram,0x00023ae2) */
/* WARNING: Removing unreachable block (ram,0x00023ae5) */
/* WARNING: Removing unreachable block (ram,0x00023aec) */
/* WARNING: Removing unreachable block (ram,0x00023af1) */
/* WARNING: Removing unreachable block (ram,0x00023b33) */
/* WARNING: Removing unreachable block (ram,0x000238a4) */
/* WARNING: Removing unreachable block (ram,0x000238b0) */
/* WARNING: Removing unreachable block (ram,0x000238b7) */
/* WARNING: Removing unreachable block (ram,0x000238bb) */
/* WARNING: Removing unreachable block (ram,0x000238d1) */
/* WARNING: Removing unreachable block (ram,0x000238db) */
/* WARNING: Removing unreachable block (ram,0x000238de) */
/* WARNING: Removing unreachable block (ram,0x000238e1) */
/* WARNING: Removing unreachable block (ram,0x000238e4) */
/* WARNING: Removing unreachable block (ram,0x0002390e) */
/* WARNING: Removing unreachable block (ram,0x00023a61) */
/* WARNING: Removing unreachable block (ram,0x00023a65) */
/* WARNING: Removing unreachable block (ram,0x00023a7b) */
/* WARNING: Removing unreachable block (ram,0x00023a85) */
/* WARNING: Removing unreachable block (ram,0x00023a88) */
/* WARNING: Removing unreachable block (ram,0x00023a8b) */
/* WARNING: Removing unreachable block (ram,0x00023a8e) */
/* WARNING: Removing unreachable block (ram,0x0002391a) */
/* WARNING: Removing unreachable block (ram,0x0002391e) */
/* WARNING: Removing unreachable block (ram,0x00023934) */
/* WARNING: Removing unreachable block (ram,0x0002393e) */
/* WARNING: Removing unreachable block (ram,0x00023941) */
/* WARNING: Removing unreachable block (ram,0x00023944) */
/* WARNING: Removing unreachable block (ram,0x00023947) */
/* WARNING: Removing unreachable block (ram,0x0002395a) */
/* WARNING: Removing unreachable block (ram,0x00023531) */
/* WARNING: Removing unreachable block (ram,0x0002355a) */
/* WARNING: Removing unreachable block (ram,0x000235d0) */
/* WARNING: Removing unreachable block (ram,0x00023570) */
/* WARNING: Removing unreachable block (ram,0x0002357f) */
/* WARNING: Removing unreachable block (ram,0x00023680) */
/* WARNING: Removing unreachable block (ram,0x00023698) */
/* WARNING: Removing unreachable block (ram,0x000236d2) */
/* WARNING: Removing unreachable block (ram,0x00023587) */
/* WARNING: Removing unreachable block (ram,0x00023728) */
/* WARNING: Removing unreachable block (ram,0x00023595) */
/* WARNING: Removing unreachable block (ram,0x00023650) */
/* WARNING: Removing unreachable block (ram,0x000235a9) */
/* WARNING: Removing unreachable block (ram,0x000235ef) */
/* WARNING: Removing unreachable block (ram,0x00023603) */
/* WARNING: Removing unreachable block (ram,0x00023639) */
/* WARNING: Removing unreachable block (ram,0x000236dd) */
/* WARNING: Removing unreachable block (ram,0x000235c3) */
/* WARNING: Removing unreachable block (ram,0x000236f8) */
/* WARNING: Removing unreachable block (ram,0x00023704) */
/* WARNING: Removing unreachable block (ram,0x000239ea) */
/* WARNING: Removing unreachable block (ram,0x00023393) */

undefined4 __regparm3 FUN_00023050(int param_1)

{
  bool bVar1;
  uint uVar2;
  undefined4 uVar3;
  char *pcVar4;
  undefined4 uVar5;
  size_t __nmemb;
  int iVar6;
  uint uVar7;
  int iVar8;
  void *local_70;
  int local_60;
  
  if (DAT_000b634c == 0) {
    if (DAT_000b6358 == 0) {
      return 1;
    }
    uVar7 = *(uint *)(param_1 + 0x54);
    if (uVar7 != 0) {
LAB_0002308b:
      iVar8 = *(int *)(param_1 + 0x5c);
      if (iVar8 == 0) {
        uVar3 = dcgettext(0,"Section headers are not available!\n",5);
        error(uVar3);
        return 0;
      }
      DAT_000b6314 = calloc(uVar7,4);
      if (DAT_000b6314 == (void *)0x0) {
        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);
        error(uVar3,uVar7);
        return 0;
      }
      DAT_000b631c = 0;
      __nmemb = 0;
      uVar2 = 0;
      bVar1 = false;
      iVar6 = iVar8;
      do {
        if (*(int *)(iVar6 + 4) == 0x11) {
          bVar1 = true;
          __nmemb = __nmemb + 1;
        }
        uVar2 = uVar2 + 1;
        iVar6 = iVar6 + 0x48;
      } while (uVar2 < uVar7);
      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {
        DAT_000b6318 = calloc(__nmemb,8);
        if (DAT_000b6318 == (void *)0x0) {
          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);
          error(uVar3,__nmemb);
          return 0;
        }
        uVar7 = 0;
        local_70 = (void *)0x0;
        local_60 = 0;
LAB_0002317f:
        do {
          if (*(int *)(iVar8 + 4) == 0x11) {
            uVar3 = FUN_00022190();
            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||
               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,
               *(int *)(iVar6 + 4) != 2)) {
              uVar7 = uVar7 + 1;
              iVar8 = iVar8 + 0x48;
              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);
              error(uVar5,uVar3);
              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;
              goto LAB_0002317f;
            }
            if (iVar6 != local_60) {
              if (local_70 != (void *)0x0) {
                free(local_70);
              }
              if (DAT_000b6324 == 0) {
                local_70 = (void *)FUN_00022830();
              }
              else {
                local_70 = (void *)FUN_000222e0();
              }
            }
            if (local_70 == (void *)0x0) {
              pcVar4 = "Corrupt header in group section `%s\'\n";
            }
            else {
              pcVar4 = "Bad sh_info in group section `%s\'\n";
            }
            uVar5 = dcgettext(0,pcVar4,5);
            error(uVar5,uVar3);
            local_60 = iVar6;
          }
          uVar7 = uVar7 + 1;
          iVar8 = iVar8 + 0x48;
          if (*(uint *)(param_1 + 0x54) <= uVar7) {
LAB_00023370:
            if (local_70 == (void *)0x0) {
              return 1;
            }
            free(local_70);
            return 1;
          }
        } while( true );
      }
      if (DAT_000b6358 == 0) {
        return 1;
      }
      pcVar4 = "\nThere are no section groups in this file.\n";
      goto LAB_000232cb;
    }
  }
  else {
    uVar7 = *(uint *)(param_1 + 0x54);
    if (uVar7 != 0) goto LAB_0002308b;
    if (DAT_000b6358 == 0) {
      return 1;
    }
  }
  pcVar4 = "\nThere are no sections to group in this file.\n";
LAB_000232cb:
  pcVar4 = (char *)dcgettext(0,pcVar4,5);
  printf(pcVar4);
  return 1;
}


PUSH EBP
MOV EBP,EAX
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00013f70
ADD EBX,0x90fa5
SUB ESP,0x6c
MOV EAX,dword ptr [EBX + 0x234c]
TEST EAX,EAX
JNZ 0x000232a8
MOV EDI,dword ptr [EBX + 0x2358]
TEST EDI,EDI
JZ 0x000232de
MOV ESI,dword ptr [EBP + 0x54]
TEST ESI,ESI
JZ 0x000232c0
MOV EDI,dword ptr [EBP + 0x5c]
TEST EDI,EDI
JZ 0x00023310
SUB ESP,0x8
PUSH 0x4
PUSH ESI
CALL 0x00013430
ADD ESP,0x10
MOV dword ptr [EBX + 0x2314],EAX
TEST EAX,EAX
JZ 0x00023810
MOV dword ptr [EBX + 0x231c],0x0
MOV EDX,EDI
XOR ECX,ECX
XOR EAX,EAX
MOV byte ptr [ESP + 0x8],0x0
LEA ESI,[ESI]
NOP
CMP dword ptr [EDX + 0x4],0x11
JNZ 0x000230de
MOV byte ptr [ESP + 0x8],0x1
ADD ECX,0x1
ADD EAX,0x1
ADD EDX,0x48
CMP ESI,EAX
JA 0x000230d0
CMP byte ptr [ESP + 0x8],0x0
JZ 0x000232f0
MOV dword ptr [EBX + 0x231c],ECX
TEST ECX,ECX
JZ 0x000232f0
SUB ESP,0x8
PUSH 0x8
PUSH ECX
MOV dword ptr [ESP + 0x18],ECX
CALL 0x00013430
MOV dword ptr [ESP + 0x20],EAX
ADD ESP,0x10
MOV dword ptr [EBX + 0x2318],EAX
TEST EAX,EAX
JZ 0x000237e3
LEA EAX,[EBP + 0x64]
MOV dword ptr [ESP + 0x5c],0x0
XOR ESI,ESI
MOV dword ptr [ESP + 0x20],EAX
LEA EAX,[EBX + 0x5dd4]
MOV dword ptr [ESP + 0x34],0x0
MOV dword ptr [ESP + 0x24],0x0
MOV dword ptr [ESP + 0xc],0x0
MOV dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0x18],EAX
JMP 0x0002317f
ADD ESI,0x1
ADD EDI,0x48
CMP dword ptr [EBP + 0x54],ESI
JBE 0x00023370
CMP dword ptr [EDI + 0x4],0x11
JNZ 0x00023170
LEA EAX,[EBP + 0x68]
MOV ECX,EDI
MOV dword ptr [ESP + 0x28],EAX
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x20]
CALL 0x00022190
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,dword ptr [EDI + 0x28]
CMP EAX,dword ptr [EBP + 0x54]
JNC 0x00023338
LEA EDX,[EAX + EAX*0x8]
MOV EAX,dword ptr [EBP + 0x5c]
LEA EAX,[EAX + EDX*0x8]
CMP dword ptr [EAX + 0x4],0x2
MOV dword ptr [ESP + 0x8],EAX
JNZ 0x00023338
MOV ECX,dword ptr [ESP + 0x1c]
CMP dword ptr [ESP + 0x8],ECX
JZ 0x000231fe
MOV EAX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JZ 0x000231de
SUB ESP,0xc
PUSH EAX
CALL 0x000130a0
ADD ESP,0x10
CMP dword ptr [EBX + 0x2324],0x0
LEA ECX,[ESP + 0x5c]
MOV EDX,dword ptr [ESP + 0x8]
MOV EAX,EBP
JZ 0x000233b0
CALL 0x000222e0
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JZ 0x000239ae
MOV EAX,dword ptr [EDI + 0x2c]
CMP EAX,dword ptr [ESP + 0x5c]
JNC 0x000233d0
IMUL EAX,EAX,0x1c
ADD EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x2c],EAX
MOVZX EAX,byte ptr [EAX + 0x14]
MOV byte ptr [ESP + 0x1c],AL
AND EAX,0xf
CMP AL,0x3
JZ 0x000233c0
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x28]
CMP EAX,dword ptr [EBP + 0x54]
JC 0x00023400
MOV EAX,dword ptr [ESP + 0x24]
TEST EAX,EAX
JZ 0x000237d4
SUB ESP,0xc
PUSH EAX
CALL 0x000130a0
ADD ESP,0x10
XOR EDX,EDX
MOV dword ptr [ESP + 0x34],0x0
MOV dword ptr [ESP + 0x24],0x0
MOV dword ptr [ESP + 0x1c],EDX
LEA EAX,[EBX + 0xfffc2af3]
SUB ESP,0x4
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP + 0x48],EAX
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x30],EAX
MOV dword ptr [ESP + 0x24],EDX
JMP 0x00023496
MOV ESI,dword ptr [EBP + 0x54]
TEST ESI,ESI
JNZ 0x0002308b
MOV ESI,dword ptr [EBX + 0x2358]
TEST ESI,ESI
JZ 0x000232de
LEA ESI,[ESI]
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcdc78]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00013060
ADD ESP,0x10
MOV EAX,0x1
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EBP,dword ptr [EBX + 0x2358]
TEST EBP,EBP
JZ 0x000232de
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcdcfc]
PUSH 0x5
JMP 0x000232cb
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcdca8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x000666b0
ADD ESP,0x10
XOR EAX,EAX
JMP 0x000232e3
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcdd4c]
ADD ESI,0x1
ADD EDI,0x48
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x1c]
PUSH EAX
CALL 0x000666b0
ADD ESP,0x10
CMP dword ptr [EBP + 0x54],ESI
JA 0x0002317f
LEA ESI,[ESI]
MOV EDX,dword ptr [ESP + 0xc]
TEST EDX,EDX
JZ 0x00023387
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
CALL 0x000130a0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x24]
TEST EAX,EAX
JZ 0x000232de
SUB ESP,0xc
PUSH EAX
CALL 0x000130a0
ADD ESP,0x10
MOV EAX,0x1
JMP 0x000232e3
CALL 0x00022830
MOV dword ptr [ESP + 0xc],EAX
JMP 0x000231fe
MOV EAX,dword ptr [ESP + 0x2c]
MOV EAX,dword ptr [EAX + 0x18]
TEST EAX,EAX
JNZ 0x00023768
NOP
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcdd98]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x1c]
PUSH EAX
CALL 0x000666b0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x1c],EAX
JMP 0x00023170
LEA EDX,[EAX + EAX*0x8]
MOV EAX,dword ptr [EBP + 0x5c]
LEA EAX,[EAX + EDX*0x8]
MOV dword ptr [ESP + 0x1c],EAX
CMP EAX,dword ptr [ESP + 0x30]
JZ 0x00023475
MOV EAX,dword ptr [ESP + 0x24]
TEST EAX,EAX
JZ 0x00023427
SUB ESP,0xc
PUSH EAX
CALL 0x000130a0
ADD ESP,0x10
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc4167]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV EDX,dword ptr [ESP + 0x2c]
MOV ECX,dword ptr [EDX + 0x18]
MOV dword ptr [ESP + 0x2c],EDX
MOV dword ptr [ESP],EAX
XOR EAX,EAX
PUSH dword ptr [EDX + 0x24]
PUSH dword ptr [EDX + 0x20]
MOV EDX,EBP
PUSH 0x0
PUSH 0x1
CALL 0x0001bf90
MOV dword ptr [ESP + 0x44],EAX
ADD ESP,0x20
TEST EAX,EAX
JZ 0x000239d3
MOV EDX,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [EDX + 0x20]
MOV dword ptr [ESP + 0x34],EAX
MOV EAX,dword ptr [ESP + 0x2c]
MOV EAX,dword ptr [EAX + 0x10]
CMP EAX,dword ptr [ESP + 0x34]
JNC 0x00023b38
ADD EAX,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x38],EAX
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [EDI + 0x38]
MOV EDX,dword ptr [EDI + 0x20]
MOV ECX,dword ptr [EDI + 0x24]
CMP EDX,EAX
SBB ECX,dword ptr [EDI + 0x3c]
JC 0x000239ea
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc9057]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV ECX,dword ptr [EDI + 0x18]
MOV EDX,EBP
MOV dword ptr [ESP],EAX
XOR EAX,EAX
PUSH dword ptr [EDI + 0x24]
PUSH dword ptr [EDI + 0x20]
PUSH 0x0
PUSH 0x1
CALL 0x0001bf90
ADD ESP,0x20
MOV ECX,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x2c],EAX
MOV dword ptr [ESP + 0x1c],ECX
TEST EAX,EAX
JZ 0x00023170
PUSH dword ptr [EDI + 0x3c]
PUSH dword ptr [EDI + 0x38]
PUSH dword ptr [EDI + 0x24]
PUSH dword ptr [EDI + 0x20]
CALL 0x0006b250
POP EDX
POP ECX
LEA ECX,[EAX + -0x1]
MOV dword ptr [ESP + 0x24],ECX
PUSH 0x4
PUSH dword ptr [ESP + 0x38]
MOV ECX,dword ptr [ESP + 0x28]
CALL dword ptr [ECX]
MOV ECX,EAX
MOV EAX,dword ptr [ESP + 0x3c]
ADD EAX,0x4
MOV dword ptr [ESP + 0x50],EAX
MOV EAX,dword ptr [EBX + 0x2358]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00023836
MOV EAX,dword ptr [ESP + 0x10]
XOR ECX,ECX
MOV dword ptr [EAX + 0x4],ESI
LEA EAX,[EBX + 0xfffc31b8]
MOV dword ptr [ESP + 0x3c],EAX
LEA EAX,[EBX + 0xfffcdf60]
MOV dword ptr [ESP + 0x44],EAX
MOV EAX,dword ptr [ESP + 0x1c]
TEST EAX,EAX
JZ 0x00023704
MOV dword ptr [ESP + 0x48],EDI
MOV EDI,dword ptr [ESP + 0x40]
MOV dword ptr [ESP + 0x14],EBP
MOV EBP,ECX
MOV dword ptr [ESP + 0x38],ESI
JMP 0x000235d0
MOV EAX,dword ptr [EBX + 0x2314]
LEA EAX,[EAX + ESI*0x4]
MOV EDX,dword ptr [EAX]
TEST EDX,EDX
JZ 0x00023595
TEST ESI,ESI
JNZ 0x00023680
MOV ECX,dword ptr [EBX + 0x1780]
TEST ECX,ECX
JZ 0x00023728
MOV ECX,dword ptr [ESP + 0x10]
MOV dword ptr [EAX],ECX
MOV ECX,dword ptr [EBX + 0x2358]
TEST ECX,ECX
JNZ 0x00023650
SUB ESP,0xc
PUSH 0x8
CALL 0x0006afd0
MOV ECX,dword ptr [ESP + 0x20]
ADD ESP,0x10
MOV dword ptr [EAX + 0x4],ESI
MOV EDX,dword ptr [ECX]
MOV dword ptr [ECX],EAX
MOV dword ptr [EAX],EDX
ADD EBP,0x1
CMP dword ptr [ESP + 0x1c],EBP
JZ 0x000236f8
SUB ESP,0x8
PUSH 0x4
PUSH EDI
MOV EAX,dword ptr [ESP + 0x28]
ADD EDI,0x4
CALL dword ptr [EAX]
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0x24]
ADD ESP,0x10
MOV EDX,dword ptr [EAX + 0x54]
CMP EDX,ESI
JA 0x00023570
MOV EAX,dword ptr [EBX + 0x1788]
LEA ECX,[EAX + 0x1]
MOV dword ptr [EBX + 0x1788],ECX
CMP EAX,0x9
JA 0x000235c3
MOV dword ptr [ESP + 0x40],EDX
LEA EAX,[EBX + 0xfffcde40]
SUB ESP,0x4
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV EDX,dword ptr [ESP + 0x50]
SUB EDX,0x1
PUSH EDX
PUSH dword ptr [ESP + 0x4c]
PUSH ESI
PUSH EAX
CALL 0x000666b0
ADD ESP,0x20
CMP dword ptr [EBX + 0x1788],0xa
JNZ 0x000235c3
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcde80]
PUSH 0x5
JMP 0x000236dd
MOV ECX,dword ptr [ESP + 0x14]
LEA EAX,[ESI + ESI*0x8]
MOV EDX,dword ptr [ECX + 0x5c]
LEA ECX,[EDX + EAX*0x8]
MOV EDX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [ESP + 0x20]
CALL 0x00022190
SUB ESP,0x4
PUSH EAX
PUSH ESI
PUSH dword ptr [ESP + 0x48]
CALL 0x00013060
ADD ESP,0x10
JMP 0x000235a9
MOV EAX,dword ptr [EBX + 0x1784]
LEA ECX,[EAX + 0x1]
MOV dword ptr [EBX + 0x1784],ECX
CMP EAX,0x9
JA 0x000235c3
MOV EDX,dword ptr [EDX + 0x4]
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcdecc]
MOV dword ptr [ESP + 0x44],EDX
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV EDX,dword ptr [ESP + 0x50]
PUSH EDX
PUSH dword ptr [ESP + 0x4c]
PUSH ESI
PUSH EAX
CALL 0x000666b0
ADD ESP,0x20
CMP dword ptr [EBX + 0x1784],0xa
JNZ 0x000235c3
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcdf14]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00066bf0
ADD ESP,0x10
JMP 0x000235c3
MOV ESI,dword ptr [ESP + 0x38]
MOV EDI,dword ptr [ESP + 0x48]
MOV EBP,dword ptr [ESP + 0x14]
SUB ESP,0xc
PUSH dword ptr [ESP + 0x38]
CALL 0x000130a0
ADD dword ptr [ESP + 0x20],0x8
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x1c],EAX
JMP 0x00023170
MOV EDX,dword ptr [EDX + 0x4]
SUB ESP,0x4
MOV dword ptr [ESP + 0x44],EDX
PUSH 0x5
PUSH dword ptr [ESP + 0x4c]
PUSH 0x0
CALL 0x000130f0
POP EDX
POP ECX
MOV EDX,dword ptr [ESP + 0x48]
PUSH EDX
PUSH EAX
CALL 0x000666b0
MOV EAX,dword ptr [EBX + 0x2314]
ADD ESP,0x10
MOV dword ptr [EBX + 0x1780],0x1
JMP 0x00023595
CMP EAX,dword ptr [EBP + 0x54]
JNC 0x000233d0
LEA EDX,[EAX + EAX*0x8]
MOV EAX,dword ptr [EBP + 0x5c]
LEA EAX,[EAX + EDX*0x8]
TEST EAX,EAX
JZ 0x00023a47
MOV EDX,dword ptr [EBP + 0x64]
TEST EDX,EDX
JZ 0x00023a54
MOV EAX,dword ptr [EAX]
LEA ECX,[EDX + EAX*0x1]
MOV dword ptr [ESP + 0x38],ECX
CMP EAX,dword ptr [EBP + 0x68]
JNC 0x00023a28
MOV EAX,dword ptr [ESP + 0x24]
TEST EAX,EAX
JZ 0x000239be
SUB ESP,0xc
PUSH EAX
CALL 0x000130a0
ADD ESP,0x10
MOV dword ptr [ESP + 0x34],0x0
MOV dword ptr [ESP + 0x24],0x0
MOV dword ptr [ESP + 0x30],0x0
JMP 0x00023496
XOR EDX,EDX
MOV dword ptr [ESP + 0x34],0x0
JMP 0x0002326f
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcdd28]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP ESI
POP EDI
MOV ECX,dword ptr [ESP + 0x10]
PUSH ECX
PUSH EAX
CALL 0x000666b0
ADD ESP,0x10
XOR EAX,EAX
JMP 0x000232e3
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcdccc]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x000666b0
ADD ESP,0x10
XOR EAX,EAX
JMP 0x000232e3
LEA EDX,[EBX + 0xfffc7c5a]
TEST ECX,ECX
JZ 0x0002395a
CMP ECX,0x1
LEA EDX,[EBX + 0xfffc3194]
MOV dword ptr [ESP + 0x3c],ECX
JZ 0x0002395a
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc319c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV ECX,dword ptr [ESP + 0x4c]
PUSH ECX
MOV dword ptr [ESP + 0x58],ECX
PUSH EAX
LEA EAX,[EBX + 0x1700]
PUSH 0xe
MOV dword ptr [ESP + 0x58],EAX
PUSH EAX
CALL 0x000132c0
MOV ECX,dword ptr [ESP + 0x64]
MOV EAX,ECX
AND EAX,0xf0000000
MOV dword ptr [ESP + 0x64],EAX
ADD ESP,0x20
TEST ECX,0xff00000
JNZ 0x00023ab0
MOV EAX,dword ptr [ESP + 0x44]
TEST EAX,EAX
JZ 0x00023a61
AND ECX,0xfffffffe
MOV dword ptr [ESP + 0x48],ECX
MOV EDX,dword ptr [ESP + 0x3c]
MOV ECX,dword ptr [EDX]
ADD EDX,0x4
LEA EAX,[ECX + 0xfefefeff]
NOT ECX
AND EAX,ECX
AND EAX,0x80808080
JZ 0x000238bb
MOV ECX,EAX
SHR ECX,0x10
TEST EAX,0x8080
CMOVZ EAX,ECX
LEA ECX,[EDX + 0x2]
CMOVZ EDX,ECX
MOV ECX,EAX
ADD CL,AL
SBB EDX,0x3
AND dword ptr [ESP + 0x48],0xfffffff
MOV dword ptr [EDX],0x4f52503c
MOV dword ptr [EDX + 0x4],0x70732043
MOV dword ptr [EDX + 0x8],0x66696365
MOV dword ptr [EDX + 0xc],0x3e6369
MOV EAX,dword ptr [ESP + 0x48]
TEST EAX,EAX
JNZ 0x00023a61
MOV EDX,dword ptr [ESP + 0x3c]
MOV ECX,dword ptr [EDX]
ADD EDX,0x4
LEA EAX,[ECX + 0xfefefeff]
NOT ECX
AND EAX,ECX
AND EAX,0x80808080
JZ 0x0002391e
MOV ECX,EAX
SHR ECX,0x10
TEST EAX,0x8080
CMOVZ EAX,ECX
LEA ECX,[EDX + 0x2]
CMOVZ EDX,ECX
MOV ECX,EAX
ADD CL,AL
MOV EAX,0x5d
SBB EDX,0x3
MOV word ptr [EDX],AX
MOV EDX,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x3c],EDX
LEA EAX,[EBX + 0xfffcde08]
SUB ESP,0x4
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x44]
PUSH dword ptr [ESP + 0x24]
PUSH ESI
MOV EDX,dword ptr [ESP + 0x54]
PUSH EDX
PUSH EAX
CALL 0x00013060
ADD ESP,0x1c
LEA EAX,[EBX + 0xfffc31a4]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP],EAX
CALL 0x00013060
ADD ESP,0x10
JMP 0x00023531
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcdd70]
PUSH 0x5
JMP 0x000233db
MOV dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x34],0x0
JMP 0x00023496
MOV EAX,dword ptr [ESP + 0x1c]
XOR EDX,EDX
MOV dword ptr [ESP + 0x34],0x0
MOV dword ptr [ESP + 0x24],EAX
JMP 0x0002326f
MOV dword ptr [ESP + 0x8],EAX
MOV EBP,EDX
MOV EAX,dword ptr [ESP + 0x20]
MOV ECX,EDI
MOV EDX,dword ptr [ESP + 0x28]
CALL 0x00022190
SUB ESP,0x4
MOV ESI,EAX
LEA EAX,[EBX + 0xfffcddbc]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
PUSH EBP
PUSH dword ptr [ESP + 0x1c]
PUSH ESI
PUSH EAX
CALL 0x000666b0
ADD ESP,0x20
JMP 0x00023378
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc2af3]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV dword ptr [ESP + 0x48],EAX
ADD ESP,0x10
JMP 0x0002379f
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc3162]
PUSH 0x5
JMP 0x00023a33
SUB ESP,0x4
LEA EAX,[EBX + 0xfffc3169]
PUSH 0x5
JMP 0x00023a33
MOV EDX,dword ptr [ESP + 0x3c]
MOV ECX,dword ptr [EDX]
ADD EDX,0x4
LEA EAX,[ECX + 0xfefefeff]
NOT ECX
AND EAX,ECX
AND EAX,0x80808080
JZ 0x00023a65
MOV ECX,EAX
SHR ECX,0x10
TEST EAX,0x8080
CMOVZ EAX,ECX
LEA ECX,[EDX + 0x2]
CMOVZ EDX,ECX
MOV ECX,EAX
ADD CL,AL
MOV EAX,0x3e
SBB EDX,0x3
MOV dword ptr [EDX],0x6b6e753c
MOV dword ptr [EDX + 0x4],0x6e776f6e
MOV word ptr [EDX + 0x8],AX
JMP 0x0002391a
MOV EAX,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x4c],ESI
MOV ESI,EAX
MOV EDX,dword ptr [ESI]
ADD ESI,0x4
LEA EAX,[EDX + 0xfefefeff]
NOT EDX
AND EAX,EDX
AND EAX,0x80808080
JZ 0x00023aba
MOV EDX,EAX
MOV dword ptr [ESP + 0x48],ESI
MOV ESI,dword ptr [ESP + 0x4c]
SHR EDX,0x10
TEST EAX,0x8080
CMOVZ EAX,EDX
MOV EDX,dword ptr [ESP + 0x48]
LEA EDX,[EDX + 0x2]
CMOVNZ EDX,dword ptr [ESP + 0x48]
MOV dword ptr [ESP + 0x48],EDX
MOV EDX,EAX
ADD DL,AL
MOV EAX,dword ptr [ESP + 0x48]
MOV EDX,0x3e
SBB EAX,0x3
AND ECX,0xf00ffffe
MOV dword ptr [ESP + 0x48],ECX
MOV ECX,dword ptr [ESP + 0x44]
MOV dword ptr [EAX],0x20534f3c
MOV dword ptr [EAX + 0x4],0x63657073
MOV dword ptr [EAX + 0x8],0x63696669
MOV word ptr [EAX + 0xc],DX
TEST ECX,ECX
JZ 0x0002390e
JMP 0x000238b7
MOV EAX,dword ptr [ESP + 0x1c]
MOV EDX,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x24],EAX
JMP 0x0002326f
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Removing unreachable block (ram,0x00023217) */\n/* WARNING: Removing unreachable block (ram,0x000233c0) */\n/* WARNING: Removing unreachable block (ram,0x00023768) */\n/* WARNING: Removing unreachable block (ram,0x00023771) */\n/* WARNING: Removing unreachable block (ram,0x00023a47) */\n/* WARNING: Removing unreachable block (ram,0x00023782) */\n/* WARNING: Removing unreachable block (ram,0x00023a54) */\n/* WARNING: Removing unreachable block (ram,0x0002378d) */\n/* WARNING: Removing unreachable block (ram,0x00023a28) */\n/* WARNING: Removing unreachable block (ram,0x00023a33) */\n/* WARNING: Removing unreachable block (ram,0x0002379f) */\n/* WARNING: Removing unreachable block (ram,0x000239be) */\n/* WARNING: Removing unreachable block (ram,0x000237ab) */\n/* WARNING: Removing unreachable block (ram,0x00023235) */\n/* WARNING: Removing unreachable block (ram,0x00023400) */\n/* WARNING: Removing unreachable block (ram,0x00023413) */\n/* WARNING: Removing unreachable block (ram,0x0002341b) */\n/* WARNING: Removing unreachable block (ram,0x00023427) */\n/* WARNING: Removing unreachable block (ram,0x000239d3) */\n/* WARNING: Removing unreachable block (ram,0x0002346a) */\n/* WARNING: Removing unreachable block (ram,0x00023475) */\n/* WARNING: Removing unreachable block (ram,0x00023486) */\n/* WARNING: Removing unreachable block (ram,0x00023b38) */\n/* WARNING: Removing unreachable block (ram,0x00023245) */\n/* WARNING: Removing unreachable block (ram,0x000237d4) */\n/* WARNING: Removing unreachable block (ram,0x00023251) */\n/* WARNING: Removing unreachable block (ram,0x0002326f) */\n/* WARNING: Removing unreachable block (ram,0x00023496) */\n/* WARNING: Removing unreachable block (ram,0x000234aa) */\n/* WARNING: Removing unreachable block (ram,0x000234ed) */\n/* WARNING: Removing unreachable block (ram,0x00023836) */\n/* WARNING: Removing unreachable block (ram,0x00023844) */\n/* WARNING: Removing unreachable block (ram,0x00023857) */\n/* WARNING: Removing unreachable block (ram,0x00023ab0) */\n/* WARNING: Removing unreachable block (ram,0x00023aba) */\n/* WARNING: Removing unreachable block (ram,0x00023ad0) */\n/* WARNING: Removing unreachable block (ram,0x00023ae2) */\n/* WARNING: Removing unreachable block (ram,0x00023ae5) */\n/* WARNING: Removing unreachable block (ram,0x00023aec) */\n/* WARNING: Removing unreachable block (ram,0x00023af1) */\n/* WARNING: Removing unreachable block (ram,0x00023b33) */\n/* WARNING: Removing unreachable block (ram,0x000238a4) */\n/* WARNING: Removing unreachable block (ram,0x000238b0) */\n/* WARNING: Removing unreachable block (ram,0x000238b7) */\n/* WARNING: Removing unreachable block (ram,0x000238bb) */\n/* WARNING: Removing unreachable block (ram,0x000238d1) */\n/* WARNING: Removing unreachable block (ram,0x000238db) */\n/* WARNING: Removing unreachable block (ram,0x000238de) */\n/* WARNING: Removing unreachable block (ram,0x000238e1) */\n/* WARNING: Removing unreachable block (ram,0x000238e4) */\n/* WARNING: Removing unreachable block (ram,0x0002390e) */\n/* WARNING: Removing unreachable block (ram,0x00023a61) */\n/* WARNING: Removing unreachable block (ram,0x00023a65) */\n/* WARNING: Removing unreachable block (ram,0x00023a7b) */\n/* WARNING: Removing unreachable block (ram,0x00023a85) */\n/* WARNING: Removing unreachable block (ram,0x00023a88) */\n/* WARNING: Removing unreachable block (ram,0x00023a8b) */\n/* WARNING: Removing unreachable block (ram,0x00023a8e) */\n/* WARNING: Removing unreachable block (ram,0x0002391a) */\n/* WARNING: Removing unreachable block (ram,0x0002391e) */\n/* WARNING: Removing unreachable block (ram,0x00023934) */\n/* WARNING: Removing unreachable block (ram,0x0002393e) */\n/* WARNING: Removing unreachable block (ram,0x00023941) */\n/* WARNING: Removing unreachable block (ram,0x00023944) */\n/* WARNING: Removing unreachable block (ram,0x00023947) */\n/* WARNING: Removing unreachable block (ram,0x0002395a) */\n/* WARNING: Removing unreachable block (ram,0x00023531) */\n/* WARNING: Removing unreachable block (ram,0x0002355a) */\n/* WARNING: Removing unreachable block (ram,0x000235d0) */\n/* WARNING: Removing unreachable block (ram,0x00023570) */\n/* WARNING: Removing unreachable block (ram,0x0002357f) */\n/* WARNING: Removing unreachable block (ram,0x00023680) */\n/* WARNING: Removing unreachable block (ram,0x00023698) */\n/* WARNING: Removing unreachable block (ram,0x000236d2) */\n/* WARNING: Removing unreachable block (ram,0x00023587) */\n/* WARNING: Removing unreachable block (ram,0x00023728) */\n/* WARNING: Removing unreachable block (ram,0x00023595) */\n/* WARNING: Removing unreachable block (ram,0x00023650) */\n/* WARNING: Removing unreachable block (ram,0x000235a9) */\n/* WARNING: Removing unreachable block (ram,0x000235ef) */\n/* WARNING: Removing unreachable block (ram,0x00023603) */\n/* WARNING: Removing unreachable block (ram,0x00023639) */\n/* WARNING: Removing unreachable block (ram,0x000236dd) */\n/* WARNING: Removing unreachable block (ram,0x000235c3) */\n/* WARNING: Removing unreachable block (ram,0x000236f8) */\n/* WARNING: Removing unreachable block (ram,0x00023704) */\n/* WARNING: Removing unreachable block (ram,0x000239ea) */\n/* WARNING: Removing unreachable block (ram,0x00023393) */\n\nundefined4 __regparm3 FUN_00023050(int param_1)\n\n{\n  bool bVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined4 uVar5;\n  size_t __nmemb;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  void *local_70;\n  int local_60;\n  \n  if (DAT_000b634c == 0) {\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) {\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }\n  }\n  else {\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) goto LAB_0002308b;\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n  }\n  pcVar4 = "\nThere are no sections to group in this file.\n";\nLAB_000232cb:\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  printf(pcVar4);\n  return 1;\n}\n\n" comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment comment (function_definition "undefined4 __regparm3 FUN_00023050(int param_1)\n\n{\n  bool bVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined4 uVar5;\n  size_t __nmemb;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  void *local_70;\n  int local_60;\n  \n  if (DAT_000b634c == 0) {\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) {\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }\n  }\n  else {\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) goto LAB_0002308b;\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n  }\n  pcVar4 = "\nThere are no sections to group in this file.\n";\nLAB_000232cb:\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  printf(pcVar4);\n  return 1;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00023050(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined4 uVar5;\n  size_t __nmemb;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  void *local_70;\n  int local_60;\n  \n  if (DAT_000b634c == 0) {\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) {\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }\n  }\n  else {\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) goto LAB_0002308b;\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n  }\n  pcVar4 = "\nThere are no sections to group in this file.\n";\nLAB_000232cb:\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  printf(pcVar4);\n  return 1;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "size_t __nmemb;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "void *local_70;" primitive_type (pointer_declarator "*local_70" * identifier) ;) (declaration "int local_60;" primitive_type identifier ;) (if_statement "if (DAT_000b634c == 0) {\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) {\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }\n  }\n  else {\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) goto LAB_0002308b;\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n  }" if (parenthesized_expression "(DAT_000b634c == 0)" ( (binary_expression "DAT_000b634c == 0" identifier == number_literal) )) (compound_statement "{\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) {\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }\n  }" { (if_statement "if (DAT_000b6358 == 0) {\n      return 1;\n    }" if (parenthesized_expression "(DAT_000b6358 == 0)" ( (binary_expression "DAT_000b6358 == 0" identifier == number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar7 = *(uint *)(param_1 + 0x54);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0x54)" identifier = (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (uVar7 != 0) {\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }" { (labeled_statement "LAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);" statement_identifier : (expression_statement "iVar8 = *(int *)(param_1 + 0x5c);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x5c)" identifier = (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }" { (expression_statement "uVar3 = dcgettext(0,"Section headers are not available!\n",5);" (assignment_expression "uVar3 = dcgettext(0,"Section headers are not available!\n",5)" identifier = (call_expression "dcgettext(0,"Section headers are not available!\n",5)" identifier (argument_list "(0,"Section headers are not available!\n",5)" ( number_literal , (string_literal ""Section headers are not available!\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar3);" (call_expression "error(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "DAT_000b6314 = calloc(uVar7,4);" (assignment_expression "DAT_000b6314 = calloc(uVar7,4)" identifier = (call_expression "calloc(uVar7,4)" identifier (argument_list "(uVar7,4)" ( identifier , number_literal )))) ;) (if_statement "if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }" if (parenthesized_expression "(DAT_000b6314 == (void *)0x0)" ( (binary_expression "DAT_000b6314 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }" { (expression_statement "uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);" (assignment_expression "uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5)" identifier = (call_expression "dcgettext(0,"Out of memory reading %u section group headers\n",5)" identifier (argument_list "(0,"Out of memory reading %u section group headers\n",5)" ( number_literal , (string_literal ""Out of memory reading %u section group headers\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar3,uVar7);" (call_expression "error(uVar3,uVar7)" identifier (argument_list "(uVar3,uVar7)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "DAT_000b631c = 0;" (assignment_expression "DAT_000b631c = 0" identifier = number_literal) ;) (expression_statement "__nmemb = 0;" (assignment_expression "__nmemb = 0" identifier = number_literal) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "iVar6 = iVar8;" (assignment_expression "iVar6 = iVar8" identifier = identifier) ;) (do_statement "do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);" do (compound_statement "{\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      }" { (if_statement "if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }" if (parenthesized_expression "(*(int *)(iVar6 + 4) == 0x11)" ( (binary_expression "*(int *)(iVar6 + 4) == 0x11" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "__nmemb = __nmemb + 1;" (assignment_expression "__nmemb = __nmemb + 1" identifier = (binary_expression "__nmemb + 1" identifier + number_literal)) ;) })) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "iVar6 = iVar6 + 0x48;" (assignment_expression "iVar6 = iVar6 + 0x48" identifier = (binary_expression "iVar6 + 0x48" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar2 < uVar7)" ( (binary_expression "uVar2 < uVar7" identifier < identifier) )) ;) (if_statement "if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }" if (parenthesized_expression "((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0))" ( (binary_expression "(bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "(DAT_000b631c = __nmemb, __nmemb != 0)" ( (comma_expression "DAT_000b631c = __nmemb, __nmemb != 0" (assignment_expression "DAT_000b631c = __nmemb" identifier = identifier) , (binary_expression "__nmemb != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }" { (expression_statement "DAT_000b6318 = calloc(__nmemb,8);" (assignment_expression "DAT_000b6318 = calloc(__nmemb,8)" identifier = (call_expression "calloc(__nmemb,8)" identifier (argument_list "(__nmemb,8)" ( identifier , number_literal )))) ;) (if_statement "if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }" if (parenthesized_expression "(DAT_000b6318 == (void *)0x0)" ( (binary_expression "DAT_000b6318 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }" { (expression_statement "uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);" (assignment_expression "uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5)" identifier = (call_expression "dcgettext(0,"Out of memory reading %lu groups\n",5)" identifier (argument_list "(0,"Out of memory reading %lu groups\n",5)" ( number_literal , (string_literal ""Out of memory reading %lu groups\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar3,__nmemb);" (call_expression "error(uVar3,__nmemb)" identifier (argument_list "(uVar3,__nmemb)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "local_70 = (void *)0x0;" (assignment_expression "local_70 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );" statement_identifier : (do_statement "do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );" do (compound_statement "{\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        }" { (if_statement "if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }" if (parenthesized_expression "(*(int *)(iVar8 + 4) == 0x11)" ( (binary_expression "*(int *)(iVar8 + 4) == 0x11" (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }" { (expression_statement "uVar3 = FUN_00022190();" (assignment_expression "uVar3 = FUN_00022190()" identifier = (call_expression "FUN_00022190()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }" if (parenthesized_expression "((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2))" ( (binary_expression "(*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)" (parenthesized_expression "(*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28))" ( (binary_expression "*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)" (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(iVar8 + 0x28)" * (cast_expression "(uint *)(iVar8 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x28)" ( (binary_expression "iVar8 + 0x28" identifier + number_literal) ))))) )) || (parenthesized_expression "(iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)" ( (comma_expression "iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2" (assignment_expression "iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48" identifier = (binary_expression "*(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48" (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) + (binary_expression "*(uint *)(iVar8 + 0x28) * 0x48" (pointer_expression "*(uint *)(iVar8 + 0x28)" * (cast_expression "(uint *)(iVar8 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x28)" ( (binary_expression "iVar8 + 0x28" identifier + number_literal) )))) * number_literal))) , (binary_expression "*(int *)(iVar6 + 4) != 2" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) != number_literal)) ))) )) (compound_statement "{\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }" { (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = iVar8 + 0x48;" (assignment_expression "iVar8 = iVar8 + 0x48" identifier = (binary_expression "iVar8 + 0x48" identifier + number_literal)) ;) (expression_statement "uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);" (assignment_expression "uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5)" identifier = (call_expression "dcgettext(0,"Bad sh_link in group section `%s\'\n",5)" identifier (argument_list "(0,"Bad sh_link in group section `%s\'\n",5)" ( number_literal , (string_literal ""Bad sh_link in group section `%s\'\n"" " string_content escape_sequence escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar5,uVar3);" (call_expression "error(uVar5,uVar3)" identifier (argument_list "(uVar5,uVar3)" ( identifier , identifier ))) ;) (if_statement "if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;" if (parenthesized_expression "(*(uint *)(param_1 + 0x54) <= uVar7)" ( (binary_expression "*(uint *)(param_1 + 0x54) <= uVar7" (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_00023370;" goto statement_identifier ;)) (goto_statement "goto LAB_0002317f;" goto statement_identifier ;) })) (if_statement "if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }" if (parenthesized_expression "(iVar6 != local_60)" ( (binary_expression "iVar6 != local_60" identifier != identifier) )) (compound_statement "{\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }" { (if_statement "if (local_70 != (void *)0x0) {\n                free(local_70);\n              }" if (parenthesized_expression "(local_70 != (void *)0x0)" ( (binary_expression "local_70 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                free(local_70);\n              }" { (expression_statement "free(local_70);" (call_expression "free(local_70)" identifier (argument_list "(local_70)" ( identifier ))) ;) })) (if_statement "if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }" if (parenthesized_expression "(DAT_000b6324 == 0)" ( (binary_expression "DAT_000b6324 == 0" identifier == number_literal) )) (compound_statement "{\n                local_70 = (void *)FUN_00022830();\n              }" { (expression_statement "local_70 = (void *)FUN_00022830();" (assignment_expression "local_70 = (void *)FUN_00022830()" identifier = (cast_expression "(void *)FUN_00022830()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00022830()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else {\n                local_70 = (void *)FUN_000222e0();\n              }" else (compound_statement "{\n                local_70 = (void *)FUN_000222e0();\n              }" { (expression_statement "local_70 = (void *)FUN_000222e0();" (assignment_expression "local_70 = (void *)FUN_000222e0()" identifier = (cast_expression "(void *)FUN_000222e0()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000222e0()" identifier (argument_list "()" ( ))))) ;) }))) })) (if_statement "if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }" if (parenthesized_expression "(local_70 == (void *)0x0)" ( (binary_expression "local_70 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }" { (expression_statement "pcVar4 = "Corrupt header in group section `%s\'\n";" (assignment_expression "pcVar4 = "Corrupt header in group section `%s\'\n"" identifier = (string_literal ""Corrupt header in group section `%s\'\n"" " string_content escape_sequence escape_sequence ")) ;) }) (else_clause "else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }" else (compound_statement "{\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }" { (expression_statement "pcVar4 = "Bad sh_info in group section `%s\'\n";" (assignment_expression "pcVar4 = "Bad sh_info in group section `%s\'\n"" identifier = (string_literal ""Bad sh_info in group section `%s\'\n"" " string_content escape_sequence escape_sequence ")) ;) }))) (expression_statement "uVar5 = dcgettext(0,pcVar4,5);" (assignment_expression "uVar5 = dcgettext(0,pcVar4,5)" identifier = (call_expression "dcgettext(0,pcVar4,5)" identifier (argument_list "(0,pcVar4,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "error(uVar5,uVar3);" (call_expression "error(uVar5,uVar3)" identifier (argument_list "(uVar5,uVar3)" ( identifier , identifier ))) ;) (expression_statement "local_60 = iVar6;" (assignment_expression "local_60 = iVar6" identifier = identifier) ;) })) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = iVar8 + 0x48;" (assignment_expression "iVar8 = iVar8 + 0x48" identifier = (binary_expression "iVar8 + 0x48" identifier + number_literal)) ;) (if_statement "if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }" if (parenthesized_expression "(*(uint *)(param_1 + 0x54) <= uVar7)" ( (binary_expression "*(uint *)(param_1 + 0x54) <= uVar7" (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }" { (labeled_statement "LAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }" statement_identifier : (if_statement "if (local_70 == (void *)0x0) {\n              return 1;\n            }" if (parenthesized_expression "(local_70 == (void *)0x0)" ( (binary_expression "local_70 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              return 1;\n            }" { (return_statement "return 1;" return number_literal ;) }))) (expression_statement "free(local_70);" (call_expression "free(local_70)" identifier (argument_list "(local_70)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (if_statement "if (DAT_000b6358 == 0) {\n        return 1;\n      }" if (parenthesized_expression "(DAT_000b6358 == 0)" ( (binary_expression "DAT_000b6358 == 0" identifier == number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar4 = "\nThere are no section groups in this file.\n";" (assignment_expression "pcVar4 = "\nThere are no section groups in this file.\n"" identifier = (string_literal ""\nThere are no section groups in this file.\n"" " escape_sequence string_content escape_sequence ")) ;) (goto_statement "goto LAB_000232cb;" goto statement_identifier ;) })) }) (else_clause "else {\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) goto LAB_0002308b;\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n  }" else (compound_statement "{\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) goto LAB_0002308b;\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n  }" { (expression_statement "uVar7 = *(uint *)(param_1 + 0x54);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0x54)" identifier = (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (uVar7 != 0) goto LAB_0002308b;" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002308b;" goto statement_identifier ;)) (if_statement "if (DAT_000b6358 == 0) {\n      return 1;\n    }" if (parenthesized_expression "(DAT_000b6358 == 0)" ( (binary_expression "DAT_000b6358 == 0" identifier == number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }))) (expression_statement "pcVar4 = "\nThere are no sections to group in this file.\n";" (assignment_expression "pcVar4 = "\nThere are no sections to group in this file.\n"" identifier = (string_literal ""\nThere are no sections to group in this file.\n"" " escape_sequence string_content escape_sequence ")) ;) (labeled_statement "LAB_000232cb:\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);" statement_identifier : (expression_statement "pcVar4 = (char *)dcgettext(0,pcVar4,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,pcVar4,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar4,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar4,5)" identifier (argument_list "(0,pcVar4,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "printf(pcVar4);" (call_expression "printf(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbfd_boolean __regparm3 process_section_groups(Filedata *filedata)\n\n{\n  char **filedata_00;\n  ulong *sec;\n  ulong *puVar1;\n  uint uVar2;\n  group *pgVar3;\n  group_list *pgVar4;\n  Elf_Internal_Shdr *pEVar5;\n  uint uVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uchar *__ptr;\n  int iVar9;\n  group **ppgVar10;\n  group_list *pgVar11;\n  char *pcVar12;\n  uint uVar13;\n  size_t __nmemb;\n  elf_vma eVar22;\n  elf_vma eVar23;\n  Filedata *pFVar14;\n  Elf_Internal_Shdr *pEVar15;\n  uint *puVar16;\n  uint *puVar17;\n  int iVar18;\n  uint uVar19;\n  Filedata *filedata_1;\n  uchar *puVar20;\n  bool bVar21;\n  Elf_Internal_Sym *local_70;\n  group *local_6c;\n  Elf_Internal_Shdr *local_60;\n  Elf_Internal_Shdr *local_58;\n  Elf_Internal_Shdr *local_4c;\n  uint local_48;\n  char *local_44;\n  uint local_34;\n  ulong num_syms;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2305b;\n  if (do_unwind == 0) {\n    if (do_section_groups == 0) {\n      return 1;\n    }\n    uVar19 = (filedata->file_header).e_shnum;\n    if (uVar19 != 0) {\nLAB_0002308b:\n      filedata_1 = (Filedata *)filedata->section_headers;\n      if (filedata_1 == (Filedata *)0x0) {\n        pcVar7 = (char *)dcgettext(0,"Section headers are not available!\n",5);\n        error(pcVar7);\n        return 0;\n      }\n      section_headers_groups = (group **)calloc(uVar19,4);\n      if (section_headers_groups == (group **)0x0) {\n        pcVar7 = (char *)dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(pcVar7,uVar19);\n        return 0;\n      }\n      group_count = 0;\n      __nmemb = 0;\n      uVar6 = 0;\n      bVar21 = false;\n      pFVar14 = filedata_1;\n      do {\n        if (pFVar14->handle == (FILE *)0x11) {\n          bVar21 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar6 = uVar6 + 1;\n        pFVar14 = (Filedata *)&(pFVar14->file_header).e_phentsize;\n      } while (uVar6 < uVar19);\n      if ((bVar21) && (group_count = __nmemb, __nmemb != 0)) {\n        local_6c = (group *)calloc(__nmemb,8);\n        section_groups = local_6c;\n        if (local_6c == (group *)0x0) {\n          pcVar7 = (char *)dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(pcVar7,__nmemb);\n          return 0;\n        }\n        filedata_00 = &filedata->string_table;\n        num_syms = 0;\n        uVar19 = 0;\n        local_48 = 0;\n        local_58 = (Elf_Internal_Shdr *)0x0;\n        local_70 = (Elf_Internal_Sym *)0x0;\n        local_4c = (Elf_Internal_Shdr *)0x0;\n        local_60 = (Elf_Internal_Shdr *)0x0;\nLAB_0002317f:\n        do {\n          if (filedata_1->handle == (FILE *)0x11) {\n            sec = &filedata->string_table_length;\n            pcVar7 = printable_section_name\n                               ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n            uVar6 = (uint)(filedata_1->file_header).e_phoff;\n            if (((filedata->file_header).e_shnum <= uVar6) ||\n               (pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2)) {\n              uVar19 = uVar19 + 1;\n              filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n              pcVar8 = (char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(pcVar8,pcVar7);\n              if ((filedata->file_header).e_shnum <= uVar19) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (pEVar5 != local_60) {\n              if (local_70 != (Elf_Internal_Sym *)0x0) {\n                free(local_70);\n              }\n              if (is_32bit_elf == 0) {\n                local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n              else {\n                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n            }\n            local_60 = pEVar5;\n            if (local_70 == (Elf_Internal_Sym *)0x0) {\n              pcVar8 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4);\n              if (uVar6 < num_syms) {\n                if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }\nLAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;\n                uVar13 = (uint)(filedata_1->file_header).e_entry;\n                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);\n                puVar1 = &(filedata_1->file_header).e_flags;\n                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }\n                pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n                pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);\n                error(pcVar8,pcVar7,uVar6,uVar13);\n                goto LAB_00023378;\n              }\nLAB_000233d0:\n              pcVar8 = "Bad sh_info in group section `%s\'\n";\n            }\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n            error(pcVar8,pcVar7);\n          }\nLAB_00023170:\n          uVar19 = uVar19 + 1;\n          filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n          if ((filedata->file_header).e_shnum <= uVar19) {\nLAB_00023370:\n            if (local_70 != (Elf_Internal_Sym *)0x0) {\nLAB_00023378:\n              free(local_70);\n            }\n            if (local_58 == (Elf_Internal_Shdr *)0x0) {\n              return 1;\n            }\n            free(local_58);\n            return 1;\n          }\n        } while( true );\n      }\n      if (do_section_groups == 0) {\n        return 1;\n      }\n      pcVar7 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }\n  }\n  else {\n    uVar19 = (filedata->file_header).e_shnum;\n    if (uVar19 != 0) goto LAB_0002308b;\n    if (do_section_groups == 0) {\n      return 1;\n    }\n  }\n  pcVar7 = "\nThere are no sections to group in this file.\n";\nLAB_000232cb:\n  pcVar7 = (char *)dcgettext(0,pcVar7,5);\n  printf(pcVar7);\n  return 1;\n}\n\n" comment (function_definition "bfd_boolean __regparm3 process_section_groups(Filedata *filedata)\n\n{\n  char **filedata_00;\n  ulong *sec;\n  ulong *puVar1;\n  uint uVar2;\n  group *pgVar3;\n  group_list *pgVar4;\n  Elf_Internal_Shdr *pEVar5;\n  uint uVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uchar *__ptr;\n  int iVar9;\n  group **ppgVar10;\n  group_list *pgVar11;\n  char *pcVar12;\n  uint uVar13;\n  size_t __nmemb;\n  elf_vma eVar22;\n  elf_vma eVar23;\n  Filedata *pFVar14;\n  Elf_Internal_Shdr *pEVar15;\n  uint *puVar16;\n  uint *puVar17;\n  int iVar18;\n  uint uVar19;\n  Filedata *filedata_1;\n  uchar *puVar20;\n  bool bVar21;\n  Elf_Internal_Sym *local_70;\n  group *local_6c;\n  Elf_Internal_Shdr *local_60;\n  Elf_Internal_Shdr *local_58;\n  Elf_Internal_Shdr *local_4c;\n  uint local_48;\n  char *local_44;\n  uint local_34;\n  ulong num_syms;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2305b;\n  if (do_unwind == 0) {\n    if (do_section_groups == 0) {\n      return 1;\n    }\n    uVar19 = (filedata->file_header).e_shnum;\n    if (uVar19 != 0) {\nLAB_0002308b:\n      filedata_1 = (Filedata *)filedata->section_headers;\n      if (filedata_1 == (Filedata *)0x0) {\n        pcVar7 = (char *)dcgettext(0,"Section headers are not available!\n",5);\n        error(pcVar7);\n        return 0;\n      }\n      section_headers_groups = (group **)calloc(uVar19,4);\n      if (section_headers_groups == (group **)0x0) {\n        pcVar7 = (char *)dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(pcVar7,uVar19);\n        return 0;\n      }\n      group_count = 0;\n      __nmemb = 0;\n      uVar6 = 0;\n      bVar21 = false;\n      pFVar14 = filedata_1;\n      do {\n        if (pFVar14->handle == (FILE *)0x11) {\n          bVar21 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar6 = uVar6 + 1;\n        pFVar14 = (Filedata *)&(pFVar14->file_header).e_phentsize;\n      } while (uVar6 < uVar19);\n      if ((bVar21) && (group_count = __nmemb, __nmemb != 0)) {\n        local_6c = (group *)calloc(__nmemb,8);\n        section_groups = local_6c;\n        if (local_6c == (group *)0x0) {\n          pcVar7 = (char *)dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(pcVar7,__nmemb);\n          return 0;\n        }\n        filedata_00 = &filedata->string_table;\n        num_syms = 0;\n        uVar19 = 0;\n        local_48 = 0;\n        local_58 = (Elf_Internal_Shdr *)0x0;\n        local_70 = (Elf_Internal_Sym *)0x0;\n        local_4c = (Elf_Internal_Shdr *)0x0;\n        local_60 = (Elf_Internal_Shdr *)0x0;\nLAB_0002317f:\n        do {\n          if (filedata_1->handle == (FILE *)0x11) {\n            sec = &filedata->string_table_length;\n            pcVar7 = printable_section_name\n                               ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n            uVar6 = (uint)(filedata_1->file_header).e_phoff;\n            if (((filedata->file_header).e_shnum <= uVar6) ||\n               (pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2)) {\n              uVar19 = uVar19 + 1;\n              filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n              pcVar8 = (char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(pcVar8,pcVar7);\n              if ((filedata->file_header).e_shnum <= uVar19) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (pEVar5 != local_60) {\n              if (local_70 != (Elf_Internal_Sym *)0x0) {\n                free(local_70);\n              }\n              if (is_32bit_elf == 0) {\n                local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n              else {\n                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n            }\n            local_60 = pEVar5;\n            if (local_70 == (Elf_Internal_Sym *)0x0) {\n              pcVar8 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4);\n              if (uVar6 < num_syms) {\n                if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }\nLAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;\n                uVar13 = (uint)(filedata_1->file_header).e_entry;\n                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);\n                puVar1 = &(filedata_1->file_header).e_flags;\n                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }\n                pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n                pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);\n                error(pcVar8,pcVar7,uVar6,uVar13);\n                goto LAB_00023378;\n              }\nLAB_000233d0:\n              pcVar8 = "Bad sh_info in group section `%s\'\n";\n            }\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n            error(pcVar8,pcVar7);\n          }\nLAB_00023170:\n          uVar19 = uVar19 + 1;\n          filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n          if ((filedata->file_header).e_shnum <= uVar19) {\nLAB_00023370:\n            if (local_70 != (Elf_Internal_Sym *)0x0) {\nLAB_00023378:\n              free(local_70);\n            }\n            if (local_58 == (Elf_Internal_Shdr *)0x0) {\n              return 1;\n            }\n            free(local_58);\n            return 1;\n          }\n        } while( true );\n      }\n      if (do_section_groups == 0) {\n        return 1;\n      }\n      pcVar7 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }\n  }\n  else {\n    uVar19 = (filedata->file_header).e_shnum;\n    if (uVar19 != 0) goto LAB_0002308b;\n    if (do_section_groups == 0) {\n      return 1;\n    }\n  }\n  pcVar7 = "\nThere are no sections to group in this file.\n";\nLAB_000232cb:\n  pcVar7 = (char *)dcgettext(0,pcVar7,5);\n  printf(pcVar7);\n  return 1;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "process_section_groups(Filedata *filedata)" identifier (parameter_list "(Filedata *filedata)" ( (parameter_declaration "Filedata *filedata" type_identifier (pointer_declarator "*filedata" * identifier)) ))) (compound_statement "{\n  char **filedata_00;\n  ulong *sec;\n  ulong *puVar1;\n  uint uVar2;\n  group *pgVar3;\n  group_list *pgVar4;\n  Elf_Internal_Shdr *pEVar5;\n  uint uVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uchar *__ptr;\n  int iVar9;\n  group **ppgVar10;\n  group_list *pgVar11;\n  char *pcVar12;\n  uint uVar13;\n  size_t __nmemb;\n  elf_vma eVar22;\n  elf_vma eVar23;\n  Filedata *pFVar14;\n  Elf_Internal_Shdr *pEVar15;\n  uint *puVar16;\n  uint *puVar17;\n  int iVar18;\n  uint uVar19;\n  Filedata *filedata_1;\n  uchar *puVar20;\n  bool bVar21;\n  Elf_Internal_Sym *local_70;\n  group *local_6c;\n  Elf_Internal_Shdr *local_60;\n  Elf_Internal_Shdr *local_58;\n  Elf_Internal_Shdr *local_4c;\n  uint local_48;\n  char *local_44;\n  uint local_34;\n  ulong num_syms;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2305b;\n  if (do_unwind == 0) {\n    if (do_section_groups == 0) {\n      return 1;\n    }\n    uVar19 = (filedata->file_header).e_shnum;\n    if (uVar19 != 0) {\nLAB_0002308b:\n      filedata_1 = (Filedata *)filedata->section_headers;\n      if (filedata_1 == (Filedata *)0x0) {\n        pcVar7 = (char *)dcgettext(0,"Section headers are not available!\n",5);\n        error(pcVar7);\n        return 0;\n      }\n      section_headers_groups = (group **)calloc(uVar19,4);\n      if (section_headers_groups == (group **)0x0) {\n        pcVar7 = (char *)dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(pcVar7,uVar19);\n        return 0;\n      }\n      group_count = 0;\n      __nmemb = 0;\n      uVar6 = 0;\n      bVar21 = false;\n      pFVar14 = filedata_1;\n      do {\n        if (pFVar14->handle == (FILE *)0x11) {\n          bVar21 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar6 = uVar6 + 1;\n        pFVar14 = (Filedata *)&(pFVar14->file_header).e_phentsize;\n      } while (uVar6 < uVar19);\n      if ((bVar21) && (group_count = __nmemb, __nmemb != 0)) {\n        local_6c = (group *)calloc(__nmemb,8);\n        section_groups = local_6c;\n        if (local_6c == (group *)0x0) {\n          pcVar7 = (char *)dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(pcVar7,__nmemb);\n          return 0;\n        }\n        filedata_00 = &filedata->string_table;\n        num_syms = 0;\n        uVar19 = 0;\n        local_48 = 0;\n        local_58 = (Elf_Internal_Shdr *)0x0;\n        local_70 = (Elf_Internal_Sym *)0x0;\n        local_4c = (Elf_Internal_Shdr *)0x0;\n        local_60 = (Elf_Internal_Shdr *)0x0;\nLAB_0002317f:\n        do {\n          if (filedata_1->handle == (FILE *)0x11) {\n            sec = &filedata->string_table_length;\n            pcVar7 = printable_section_name\n                               ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n            uVar6 = (uint)(filedata_1->file_header).e_phoff;\n            if (((filedata->file_header).e_shnum <= uVar6) ||\n               (pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2)) {\n              uVar19 = uVar19 + 1;\n              filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n              pcVar8 = (char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(pcVar8,pcVar7);\n              if ((filedata->file_header).e_shnum <= uVar19) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (pEVar5 != local_60) {\n              if (local_70 != (Elf_Internal_Sym *)0x0) {\n                free(local_70);\n              }\n              if (is_32bit_elf == 0) {\n                local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n              else {\n                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n            }\n            local_60 = pEVar5;\n            if (local_70 == (Elf_Internal_Sym *)0x0) {\n              pcVar8 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4);\n              if (uVar6 < num_syms) {\n                if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }\nLAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;\n                uVar13 = (uint)(filedata_1->file_header).e_entry;\n                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);\n                puVar1 = &(filedata_1->file_header).e_flags;\n                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }\n                pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n                pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);\n                error(pcVar8,pcVar7,uVar6,uVar13);\n                goto LAB_00023378;\n              }\nLAB_000233d0:\n              pcVar8 = "Bad sh_info in group section `%s\'\n";\n            }\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n            error(pcVar8,pcVar7);\n          }\nLAB_00023170:\n          uVar19 = uVar19 + 1;\n          filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n          if ((filedata->file_header).e_shnum <= uVar19) {\nLAB_00023370:\n            if (local_70 != (Elf_Internal_Sym *)0x0) {\nLAB_00023378:\n              free(local_70);\n            }\n            if (local_58 == (Elf_Internal_Shdr *)0x0) {\n              return 1;\n            }\n            free(local_58);\n            return 1;\n          }\n        } while( true );\n      }\n      if (do_section_groups == 0) {\n        return 1;\n      }\n      pcVar7 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }\n  }\n  else {\n    uVar19 = (filedata->file_header).e_shnum;\n    if (uVar19 != 0) goto LAB_0002308b;\n    if (do_section_groups == 0) {\n      return 1;\n    }\n  }\n  pcVar7 = "\nThere are no sections to group in this file.\n";\nLAB_000232cb:\n  pcVar7 = (char *)dcgettext(0,pcVar7,5);\n  printf(pcVar7);\n  return 1;\n}" { (declaration "char **filedata_00;" primitive_type (pointer_declarator "**filedata_00" * (pointer_declarator "*filedata_00" * identifier)) ;) (declaration "ulong *sec;" type_identifier (pointer_declarator "*sec" * identifier) ;) (declaration "ulong *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "group *pgVar3;" type_identifier (pointer_declarator "*pgVar3" * identifier) ;) (declaration "group_list *pgVar4;" type_identifier (pointer_declarator "*pgVar4" * identifier) ;) (declaration "Elf_Internal_Shdr *pEVar5;" type_identifier (pointer_declarator "*pEVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "uchar *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "group **ppgVar10;" type_identifier (pointer_declarator "**ppgVar10" * (pointer_declarator "*ppgVar10" * identifier)) ;) (declaration "group_list *pgVar11;" type_identifier (pointer_declarator "*pgVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "size_t __nmemb;" primitive_type identifier ;) (declaration "elf_vma eVar22;" type_identifier identifier ;) (declaration "elf_vma eVar23;" type_identifier identifier ;) (declaration "Filedata *pFVar14;" type_identifier (pointer_declarator "*pFVar14" * identifier) ;) (declaration "Elf_Internal_Shdr *pEVar15;" type_identifier (pointer_declarator "*pEVar15" * identifier) ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "Filedata *filedata_1;" type_identifier (pointer_declarator "*filedata_1" * identifier) ;) (declaration "uchar *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "Elf_Internal_Sym *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "group *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "Elf_Internal_Shdr *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "Elf_Internal_Shdr *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "Elf_Internal_Shdr *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "char *local_44;" primitive_type (pointer_declarator "*local_44" * identifier) ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "ulong num_syms;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x2305b;" (assignment_expression "uStack_14 = 0x2305b" identifier = number_literal) ;) (if_statement "if (do_unwind == 0) {\n    if (do_section_groups == 0) {\n      return 1;\n    }\n    uVar19 = (filedata->file_header).e_shnum;\n    if (uVar19 != 0) {\nLAB_0002308b:\n      filedata_1 = (Filedata *)filedata->section_headers;\n      if (filedata_1 == (Filedata *)0x0) {\n        pcVar7 = (char *)dcgettext(0,"Section headers are not available!\n",5);\n        error(pcVar7);\n        return 0;\n      }\n      section_headers_groups = (group **)calloc(uVar19,4);\n      if (section_headers_groups == (group **)0x0) {\n        pcVar7 = (char *)dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(pcVar7,uVar19);\n        return 0;\n      }\n      group_count = 0;\n      __nmemb = 0;\n      uVar6 = 0;\n      bVar21 = false;\n      pFVar14 = filedata_1;\n      do {\n        if (pFVar14->handle == (FILE *)0x11) {\n          bVar21 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar6 = uVar6 + 1;\n        pFVar14 = (Filedata *)&(pFVar14->file_header).e_phentsize;\n      } while (uVar6 < uVar19);\n      if ((bVar21) && (group_count = __nmemb, __nmemb != 0)) {\n        local_6c = (group *)calloc(__nmemb,8);\n        section_groups = local_6c;\n        if (local_6c == (group *)0x0) {\n          pcVar7 = (char *)dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(pcVar7,__nmemb);\n          return 0;\n        }\n        filedata_00 = &filedata->string_table;\n        num_syms = 0;\n        uVar19 = 0;\n        local_48 = 0;\n        local_58 = (Elf_Internal_Shdr *)0x0;\n        local_70 = (Elf_Internal_Sym *)0x0;\n        local_4c = (Elf_Internal_Shdr *)0x0;\n        local_60 = (Elf_Internal_Shdr *)0x0;\nLAB_0002317f:\n        do {\n          if (filedata_1->handle == (FILE *)0x11) {\n            sec = &filedata->string_table_length;\n            pcVar7 = printable_section_name\n                               ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n            uVar6 = (uint)(filedata_1->file_header).e_phoff;\n            if (((filedata->file_header).e_shnum <= uVar6) ||\n               (pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2)) {\n              uVar19 = uVar19 + 1;\n              filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n              pcVar8 = (char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(pcVar8,pcVar7);\n              if ((filedata->file_header).e_shnum <= uVar19) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (pEVar5 != local_60) {\n              if (local_70 != (Elf_Internal_Sym *)0x0) {\n                free(local_70);\n              }\n              if (is_32bit_elf == 0) {\n                local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n              else {\n                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n            }\n            local_60 = pEVar5;\n            if (local_70 == (Elf_Internal_Sym *)0x0) {\n              pcVar8 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4);\n              if (uVar6 < num_syms) {\n                if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }\nLAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;\n                uVar13 = (uint)(filedata_1->file_header).e_entry;\n                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);\n                puVar1 = &(filedata_1->file_header).e_flags;\n                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }\n                pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n                pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);\n                error(pcVar8,pcVar7,uVar6,uVar13);\n                goto LAB_00023378;\n              }\nLAB_000233d0:\n              pcVar8 = "Bad sh_info in group section `%s\'\n";\n            }\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n            error(pcVar8,pcVar7);\n          }\nLAB_00023170:\n          uVar19 = uVar19 + 1;\n          filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n          if ((filedata->file_header).e_shnum <= uVar19) {\nLAB_00023370:\n            if (local_70 != (Elf_Internal_Sym *)0x0) {\nLAB_00023378:\n              free(local_70);\n            }\n            if (local_58 == (Elf_Internal_Shdr *)0x0) {\n              return 1;\n            }\n            free(local_58);\n            return 1;\n          }\n        } while( true );\n      }\n      if (do_section_groups == 0) {\n        return 1;\n      }\n      pcVar7 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }\n  }\n  else {\n    uVar19 = (filedata->file_header).e_shnum;\n    if (uVar19 != 0) goto LAB_0002308b;\n    if (do_section_groups == 0) {\n      return 1;\n    }\n  }" if (parenthesized_expression "(do_unwind == 0)" ( (binary_expression "do_unwind == 0" identifier == number_literal) )) (compound_statement "{\n    if (do_section_groups == 0) {\n      return 1;\n    }\n    uVar19 = (filedata->file_header).e_shnum;\n    if (uVar19 != 0) {\nLAB_0002308b:\n      filedata_1 = (Filedata *)filedata->section_headers;\n      if (filedata_1 == (Filedata *)0x0) {\n        pcVar7 = (char *)dcgettext(0,"Section headers are not available!\n",5);\n        error(pcVar7);\n        return 0;\n      }\n      section_headers_groups = (group **)calloc(uVar19,4);\n      if (section_headers_groups == (group **)0x0) {\n        pcVar7 = (char *)dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(pcVar7,uVar19);\n        return 0;\n      }\n      group_count = 0;\n      __nmemb = 0;\n      uVar6 = 0;\n      bVar21 = false;\n      pFVar14 = filedata_1;\n      do {\n        if (pFVar14->handle == (FILE *)0x11) {\n          bVar21 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar6 = uVar6 + 1;\n        pFVar14 = (Filedata *)&(pFVar14->file_header).e_phentsize;\n      } while (uVar6 < uVar19);\n      if ((bVar21) && (group_count = __nmemb, __nmemb != 0)) {\n        local_6c = (group *)calloc(__nmemb,8);\n        section_groups = local_6c;\n        if (local_6c == (group *)0x0) {\n          pcVar7 = (char *)dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(pcVar7,__nmemb);\n          return 0;\n        }\n        filedata_00 = &filedata->string_table;\n        num_syms = 0;\n        uVar19 = 0;\n        local_48 = 0;\n        local_58 = (Elf_Internal_Shdr *)0x0;\n        local_70 = (Elf_Internal_Sym *)0x0;\n        local_4c = (Elf_Internal_Shdr *)0x0;\n        local_60 = (Elf_Internal_Shdr *)0x0;\nLAB_0002317f:\n        do {\n          if (filedata_1->handle == (FILE *)0x11) {\n            sec = &filedata->string_table_length;\n            pcVar7 = printable_section_name\n                               ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n            uVar6 = (uint)(filedata_1->file_header).e_phoff;\n            if (((filedata->file_header).e_shnum <= uVar6) ||\n               (pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2)) {\n              uVar19 = uVar19 + 1;\n              filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n              pcVar8 = (char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(pcVar8,pcVar7);\n              if ((filedata->file_header).e_shnum <= uVar19) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (pEVar5 != local_60) {\n              if (local_70 != (Elf_Internal_Sym *)0x0) {\n                free(local_70);\n              }\n              if (is_32bit_elf == 0) {\n                local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n              else {\n                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n            }\n            local_60 = pEVar5;\n            if (local_70 == (Elf_Internal_Sym *)0x0) {\n              pcVar8 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4);\n              if (uVar6 < num_syms) {\n                if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }\nLAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;\n                uVar13 = (uint)(filedata_1->file_header).e_entry;\n                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);\n                puVar1 = &(filedata_1->file_header).e_flags;\n                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }\n                pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n                pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);\n                error(pcVar8,pcVar7,uVar6,uVar13);\n                goto LAB_00023378;\n              }\nLAB_000233d0:\n              pcVar8 = "Bad sh_info in group section `%s\'\n";\n            }\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n            error(pcVar8,pcVar7);\n          }\nLAB_00023170:\n          uVar19 = uVar19 + 1;\n          filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n          if ((filedata->file_header).e_shnum <= uVar19) {\nLAB_00023370:\n            if (local_70 != (Elf_Internal_Sym *)0x0) {\nLAB_00023378:\n              free(local_70);\n            }\n            if (local_58 == (Elf_Internal_Shdr *)0x0) {\n              return 1;\n            }\n            free(local_58);\n            return 1;\n          }\n        } while( true );\n      }\n      if (do_section_groups == 0) {\n        return 1;\n      }\n      pcVar7 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }\n  }" { (if_statement "if (do_section_groups == 0) {\n      return 1;\n    }" if (parenthesized_expression "(do_section_groups == 0)" ( (binary_expression "do_section_groups == 0" identifier == number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar19 = (filedata->file_header).e_shnum;" (assignment_expression "uVar19 = (filedata->file_header).e_shnum" identifier = (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (uVar19 != 0) {\nLAB_0002308b:\n      filedata_1 = (Filedata *)filedata->section_headers;\n      if (filedata_1 == (Filedata *)0x0) {\n        pcVar7 = (char *)dcgettext(0,"Section headers are not available!\n",5);\n        error(pcVar7);\n        return 0;\n      }\n      section_headers_groups = (group **)calloc(uVar19,4);\n      if (section_headers_groups == (group **)0x0) {\n        pcVar7 = (char *)dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(pcVar7,uVar19);\n        return 0;\n      }\n      group_count = 0;\n      __nmemb = 0;\n      uVar6 = 0;\n      bVar21 = false;\n      pFVar14 = filedata_1;\n      do {\n        if (pFVar14->handle == (FILE *)0x11) {\n          bVar21 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar6 = uVar6 + 1;\n        pFVar14 = (Filedata *)&(pFVar14->file_header).e_phentsize;\n      } while (uVar6 < uVar19);\n      if ((bVar21) && (group_count = __nmemb, __nmemb != 0)) {\n        local_6c = (group *)calloc(__nmemb,8);\n        section_groups = local_6c;\n        if (local_6c == (group *)0x0) {\n          pcVar7 = (char *)dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(pcVar7,__nmemb);\n          return 0;\n        }\n        filedata_00 = &filedata->string_table;\n        num_syms = 0;\n        uVar19 = 0;\n        local_48 = 0;\n        local_58 = (Elf_Internal_Shdr *)0x0;\n        local_70 = (Elf_Internal_Sym *)0x0;\n        local_4c = (Elf_Internal_Shdr *)0x0;\n        local_60 = (Elf_Internal_Shdr *)0x0;\nLAB_0002317f:\n        do {\n          if (filedata_1->handle == (FILE *)0x11) {\n            sec = &filedata->string_table_length;\n            pcVar7 = printable_section_name\n                               ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n            uVar6 = (uint)(filedata_1->file_header).e_phoff;\n            if (((filedata->file_header).e_shnum <= uVar6) ||\n               (pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2)) {\n              uVar19 = uVar19 + 1;\n              filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n              pcVar8 = (char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(pcVar8,pcVar7);\n              if ((filedata->file_header).e_shnum <= uVar19) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (pEVar5 != local_60) {\n              if (local_70 != (Elf_Internal_Sym *)0x0) {\n                free(local_70);\n              }\n              if (is_32bit_elf == 0) {\n                local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n              else {\n                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n            }\n            local_60 = pEVar5;\n            if (local_70 == (Elf_Internal_Sym *)0x0) {\n              pcVar8 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4);\n              if (uVar6 < num_syms) {\n                if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }\nLAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;\n                uVar13 = (uint)(filedata_1->file_header).e_entry;\n                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);\n                puVar1 = &(filedata_1->file_header).e_flags;\n                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }\n                pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n                pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);\n                error(pcVar8,pcVar7,uVar6,uVar13);\n                goto LAB_00023378;\n              }\nLAB_000233d0:\n              pcVar8 = "Bad sh_info in group section `%s\'\n";\n            }\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n            error(pcVar8,pcVar7);\n          }\nLAB_00023170:\n          uVar19 = uVar19 + 1;\n          filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n          if ((filedata->file_header).e_shnum <= uVar19) {\nLAB_00023370:\n            if (local_70 != (Elf_Internal_Sym *)0x0) {\nLAB_00023378:\n              free(local_70);\n            }\n            if (local_58 == (Elf_Internal_Shdr *)0x0) {\n              return 1;\n            }\n            free(local_58);\n            return 1;\n          }\n        } while( true );\n      }\n      if (do_section_groups == 0) {\n        return 1;\n      }\n      pcVar7 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0002308b:\n      filedata_1 = (Filedata *)filedata->section_headers;\n      if (filedata_1 == (Filedata *)0x0) {\n        pcVar7 = (char *)dcgettext(0,"Section headers are not available!\n",5);\n        error(pcVar7);\n        return 0;\n      }\n      section_headers_groups = (group **)calloc(uVar19,4);\n      if (section_headers_groups == (group **)0x0) {\n        pcVar7 = (char *)dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(pcVar7,uVar19);\n        return 0;\n      }\n      group_count = 0;\n      __nmemb = 0;\n      uVar6 = 0;\n      bVar21 = false;\n      pFVar14 = filedata_1;\n      do {\n        if (pFVar14->handle == (FILE *)0x11) {\n          bVar21 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar6 = uVar6 + 1;\n        pFVar14 = (Filedata *)&(pFVar14->file_header).e_phentsize;\n      } while (uVar6 < uVar19);\n      if ((bVar21) && (group_count = __nmemb, __nmemb != 0)) {\n        local_6c = (group *)calloc(__nmemb,8);\n        section_groups = local_6c;\n        if (local_6c == (group *)0x0) {\n          pcVar7 = (char *)dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(pcVar7,__nmemb);\n          return 0;\n        }\n        filedata_00 = &filedata->string_table;\n        num_syms = 0;\n        uVar19 = 0;\n        local_48 = 0;\n        local_58 = (Elf_Internal_Shdr *)0x0;\n        local_70 = (Elf_Internal_Sym *)0x0;\n        local_4c = (Elf_Internal_Shdr *)0x0;\n        local_60 = (Elf_Internal_Shdr *)0x0;\nLAB_0002317f:\n        do {\n          if (filedata_1->handle == (FILE *)0x11) {\n            sec = &filedata->string_table_length;\n            pcVar7 = printable_section_name\n                               ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n            uVar6 = (uint)(filedata_1->file_header).e_phoff;\n            if (((filedata->file_header).e_shnum <= uVar6) ||\n               (pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2)) {\n              uVar19 = uVar19 + 1;\n              filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n              pcVar8 = (char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(pcVar8,pcVar7);\n              if ((filedata->file_header).e_shnum <= uVar19) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (pEVar5 != local_60) {\n              if (local_70 != (Elf_Internal_Sym *)0x0) {\n                free(local_70);\n              }\n              if (is_32bit_elf == 0) {\n                local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n              else {\n                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n            }\n            local_60 = pEVar5;\n            if (local_70 == (Elf_Internal_Sym *)0x0) {\n              pcVar8 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4);\n              if (uVar6 < num_syms) {\n                if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }\nLAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;\n                uVar13 = (uint)(filedata_1->file_header).e_entry;\n                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);\n                puVar1 = &(filedata_1->file_header).e_flags;\n                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }\n                pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n                pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);\n                error(pcVar8,pcVar7,uVar6,uVar13);\n                goto LAB_00023378;\n              }\nLAB_000233d0:\n              pcVar8 = "Bad sh_info in group section `%s\'\n";\n            }\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n            error(pcVar8,pcVar7);\n          }\nLAB_00023170:\n          uVar19 = uVar19 + 1;\n          filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n          if ((filedata->file_header).e_shnum <= uVar19) {\nLAB_00023370:\n            if (local_70 != (Elf_Internal_Sym *)0x0) {\nLAB_00023378:\n              free(local_70);\n            }\n            if (local_58 == (Elf_Internal_Shdr *)0x0) {\n              return 1;\n            }\n            free(local_58);\n            return 1;\n          }\n        } while( true );\n      }\n      if (do_section_groups == 0) {\n        return 1;\n      }\n      pcVar7 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }" { (labeled_statement "LAB_0002308b:\n      filedata_1 = (Filedata *)filedata->section_headers;" statement_identifier : (expression_statement "filedata_1 = (Filedata *)filedata->section_headers;" (assignment_expression "filedata_1 = (Filedata *)filedata->section_headers" identifier = (cast_expression "(Filedata *)filedata->section_headers" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "filedata->section_headers" identifier -> field_identifier))) ;)) (if_statement "if (filedata_1 == (Filedata *)0x0) {\n        pcVar7 = (char *)dcgettext(0,"Section headers are not available!\n",5);\n        error(pcVar7);\n        return 0;\n      }" if (parenthesized_expression "(filedata_1 == (Filedata *)0x0)" ( (binary_expression "filedata_1 == (Filedata *)0x0" identifier == (cast_expression "(Filedata *)0x0" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar7 = (char *)dcgettext(0,"Section headers are not available!\n",5);\n        error(pcVar7);\n        return 0;\n      }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"Section headers are not available!\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"Section headers are not available!\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Section headers are not available!\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Section headers are not available!\n",5)" identifier (argument_list "(0,"Section headers are not available!\n",5)" ( number_literal , (string_literal ""Section headers are not available!\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar7);" (call_expression "error(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "section_headers_groups = (group **)calloc(uVar19,4);" (assignment_expression "section_headers_groups = (group **)calloc(uVar19,4)" identifier = (cast_expression "(group **)calloc(uVar19,4)" ( (type_descriptor "group **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "calloc(uVar19,4)" identifier (argument_list "(uVar19,4)" ( identifier , number_literal ))))) ;) (if_statement "if (section_headers_groups == (group **)0x0) {\n        pcVar7 = (char *)dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(pcVar7,uVar19);\n        return 0;\n      }" if (parenthesized_expression "(section_headers_groups == (group **)0x0)" ( (binary_expression "section_headers_groups == (group **)0x0" identifier == (cast_expression "(group **)0x0" ( (type_descriptor "group **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        pcVar7 = (char *)dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(pcVar7,uVar19);\n        return 0;\n      }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"Out of memory reading %u section group headers\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"Out of memory reading %u section group headers\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Out of memory reading %u section group headers\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Out of memory reading %u section group headers\n",5)" identifier (argument_list "(0,"Out of memory reading %u section group headers\n",5)" ( number_literal , (string_literal ""Out of memory reading %u section group headers\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar7,uVar19);" (call_expression "error(pcVar7,uVar19)" identifier (argument_list "(pcVar7,uVar19)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "group_count = 0;" (assignment_expression "group_count = 0" identifier = number_literal) ;) (expression_statement "__nmemb = 0;" (assignment_expression "__nmemb = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (expression_statement "pFVar14 = filedata_1;" (assignment_expression "pFVar14 = filedata_1" identifier = identifier) ;) (do_statement "do {\n        if (pFVar14->handle == (FILE *)0x11) {\n          bVar21 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar6 = uVar6 + 1;\n        pFVar14 = (Filedata *)&(pFVar14->file_header).e_phentsize;\n      } while (uVar6 < uVar19);" do (compound_statement "{\n        if (pFVar14->handle == (FILE *)0x11) {\n          bVar21 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar6 = uVar6 + 1;\n        pFVar14 = (Filedata *)&(pFVar14->file_header).e_phentsize;\n      }" { (if_statement "if (pFVar14->handle == (FILE *)0x11) {\n          bVar21 = true;\n          __nmemb = __nmemb + 1;\n        }" if (parenthesized_expression "(pFVar14->handle == (FILE *)0x11)" ( (binary_expression "pFVar14->handle == (FILE *)0x11" (field_expression "pFVar14->handle" identifier -> field_identifier) == (cast_expression "(FILE *)0x11" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          bVar21 = true;\n          __nmemb = __nmemb + 1;\n        }" { (expression_statement "bVar21 = true;" (assignment_expression "bVar21 = true" identifier = true) ;) (expression_statement "__nmemb = __nmemb + 1;" (assignment_expression "__nmemb = __nmemb + 1" identifier = (binary_expression "__nmemb + 1" identifier + number_literal)) ;) })) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "pFVar14 = (Filedata *)&(pFVar14->file_header).e_phentsize;" (assignment_expression "pFVar14 = (Filedata *)&(pFVar14->file_header).e_phentsize" identifier = (cast_expression "(Filedata *)&(pFVar14->file_header).e_phentsize" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pFVar14->file_header).e_phentsize" & (field_expression "(pFVar14->file_header).e_phentsize" (parenthesized_expression "(pFVar14->file_header)" ( (field_expression "pFVar14->file_header" identifier -> field_identifier) )) . field_identifier)))) ;) }) while (parenthesized_expression "(uVar6 < uVar19)" ( (binary_expression "uVar6 < uVar19" identifier < identifier) )) ;) (if_statement "if ((bVar21) && (group_count = __nmemb, __nmemb != 0)) {\n        local_6c = (group *)calloc(__nmemb,8);\n        section_groups = local_6c;\n        if (local_6c == (group *)0x0) {\n          pcVar7 = (char *)dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(pcVar7,__nmemb);\n          return 0;\n        }\n        filedata_00 = &filedata->string_table;\n        num_syms = 0;\n        uVar19 = 0;\n        local_48 = 0;\n        local_58 = (Elf_Internal_Shdr *)0x0;\n        local_70 = (Elf_Internal_Sym *)0x0;\n        local_4c = (Elf_Internal_Shdr *)0x0;\n        local_60 = (Elf_Internal_Shdr *)0x0;\nLAB_0002317f:\n        do {\n          if (filedata_1->handle == (FILE *)0x11) {\n            sec = &filedata->string_table_length;\n            pcVar7 = printable_section_name\n                               ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n            uVar6 = (uint)(filedata_1->file_header).e_phoff;\n            if (((filedata->file_header).e_shnum <= uVar6) ||\n               (pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2)) {\n              uVar19 = uVar19 + 1;\n              filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n              pcVar8 = (char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(pcVar8,pcVar7);\n              if ((filedata->file_header).e_shnum <= uVar19) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (pEVar5 != local_60) {\n              if (local_70 != (Elf_Internal_Sym *)0x0) {\n                free(local_70);\n              }\n              if (is_32bit_elf == 0) {\n                local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n              else {\n                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n            }\n            local_60 = pEVar5;\n            if (local_70 == (Elf_Internal_Sym *)0x0) {\n              pcVar8 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4);\n              if (uVar6 < num_syms) {\n                if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }\nLAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;\n                uVar13 = (uint)(filedata_1->file_header).e_entry;\n                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);\n                puVar1 = &(filedata_1->file_header).e_flags;\n                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }\n                pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n                pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);\n                error(pcVar8,pcVar7,uVar6,uVar13);\n                goto LAB_00023378;\n              }\nLAB_000233d0:\n              pcVar8 = "Bad sh_info in group section `%s\'\n";\n            }\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n            error(pcVar8,pcVar7);\n          }\nLAB_00023170:\n          uVar19 = uVar19 + 1;\n          filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n          if ((filedata->file_header).e_shnum <= uVar19) {\nLAB_00023370:\n            if (local_70 != (Elf_Internal_Sym *)0x0) {\nLAB_00023378:\n              free(local_70);\n            }\n            if (local_58 == (Elf_Internal_Shdr *)0x0) {\n              return 1;\n            }\n            free(local_58);\n            return 1;\n          }\n        } while( true );\n      }" if (parenthesized_expression "((bVar21) && (group_count = __nmemb, __nmemb != 0))" ( (binary_expression "(bVar21) && (group_count = __nmemb, __nmemb != 0)" (parenthesized_expression "(bVar21)" ( identifier )) && (parenthesized_expression "(group_count = __nmemb, __nmemb != 0)" ( (comma_expression "group_count = __nmemb, __nmemb != 0" (assignment_expression "group_count = __nmemb" identifier = identifier) , (binary_expression "__nmemb != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        local_6c = (group *)calloc(__nmemb,8);\n        section_groups = local_6c;\n        if (local_6c == (group *)0x0) {\n          pcVar7 = (char *)dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(pcVar7,__nmemb);\n          return 0;\n        }\n        filedata_00 = &filedata->string_table;\n        num_syms = 0;\n        uVar19 = 0;\n        local_48 = 0;\n        local_58 = (Elf_Internal_Shdr *)0x0;\n        local_70 = (Elf_Internal_Sym *)0x0;\n        local_4c = (Elf_Internal_Shdr *)0x0;\n        local_60 = (Elf_Internal_Shdr *)0x0;\nLAB_0002317f:\n        do {\n          if (filedata_1->handle == (FILE *)0x11) {\n            sec = &filedata->string_table_length;\n            pcVar7 = printable_section_name\n                               ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n            uVar6 = (uint)(filedata_1->file_header).e_phoff;\n            if (((filedata->file_header).e_shnum <= uVar6) ||\n               (pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2)) {\n              uVar19 = uVar19 + 1;\n              filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n              pcVar8 = (char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(pcVar8,pcVar7);\n              if ((filedata->file_header).e_shnum <= uVar19) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (pEVar5 != local_60) {\n              if (local_70 != (Elf_Internal_Sym *)0x0) {\n                free(local_70);\n              }\n              if (is_32bit_elf == 0) {\n                local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n              else {\n                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n            }\n            local_60 = pEVar5;\n            if (local_70 == (Elf_Internal_Sym *)0x0) {\n              pcVar8 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4);\n              if (uVar6 < num_syms) {\n                if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }\nLAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;\n                uVar13 = (uint)(filedata_1->file_header).e_entry;\n                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);\n                puVar1 = &(filedata_1->file_header).e_flags;\n                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }\n                pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n                pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);\n                error(pcVar8,pcVar7,uVar6,uVar13);\n                goto LAB_00023378;\n              }\nLAB_000233d0:\n              pcVar8 = "Bad sh_info in group section `%s\'\n";\n            }\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n            error(pcVar8,pcVar7);\n          }\nLAB_00023170:\n          uVar19 = uVar19 + 1;\n          filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n          if ((filedata->file_header).e_shnum <= uVar19) {\nLAB_00023370:\n            if (local_70 != (Elf_Internal_Sym *)0x0) {\nLAB_00023378:\n              free(local_70);\n            }\n            if (local_58 == (Elf_Internal_Shdr *)0x0) {\n              return 1;\n            }\n            free(local_58);\n            return 1;\n          }\n        } while( true );\n      }" { (expression_statement "local_6c = (group *)calloc(__nmemb,8);" (assignment_expression "local_6c = (group *)calloc(__nmemb,8)" identifier = (cast_expression "(group *)calloc(__nmemb,8)" ( (type_descriptor "group *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "calloc(__nmemb,8)" identifier (argument_list "(__nmemb,8)" ( identifier , number_literal ))))) ;) (expression_statement "section_groups = local_6c;" (assignment_expression "section_groups = local_6c" identifier = identifier) ;) (if_statement "if (local_6c == (group *)0x0) {\n          pcVar7 = (char *)dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(pcVar7,__nmemb);\n          return 0;\n        }" if (parenthesized_expression "(local_6c == (group *)0x0)" ( (binary_expression "local_6c == (group *)0x0" identifier == (cast_expression "(group *)0x0" ( (type_descriptor "group *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar7 = (char *)dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(pcVar7,__nmemb);\n          return 0;\n        }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"Out of memory reading %lu groups\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"Out of memory reading %lu groups\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Out of memory reading %lu groups\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Out of memory reading %lu groups\n",5)" identifier (argument_list "(0,"Out of memory reading %lu groups\n",5)" ( number_literal , (string_literal ""Out of memory reading %lu groups\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar7,__nmemb);" (call_expression "error(pcVar7,__nmemb)" identifier (argument_list "(pcVar7,__nmemb)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "filedata_00 = &filedata->string_table;" (assignment_expression "filedata_00 = &filedata->string_table" identifier = (pointer_expression "&filedata->string_table" & (field_expression "filedata->string_table" identifier -> field_identifier))) ;) (expression_statement "num_syms = 0;" (assignment_expression "num_syms = 0" identifier = number_literal) ;) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_58 = (Elf_Internal_Shdr *)0x0;" (assignment_expression "local_58 = (Elf_Internal_Shdr *)0x0" identifier = (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_70 = (Elf_Internal_Sym *)0x0;" (assignment_expression "local_70 = (Elf_Internal_Sym *)0x0" identifier = (cast_expression "(Elf_Internal_Sym *)0x0" ( (type_descriptor "Elf_Internal_Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = (Elf_Internal_Shdr *)0x0;" (assignment_expression "local_4c = (Elf_Internal_Shdr *)0x0" identifier = (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_60 = (Elf_Internal_Shdr *)0x0;" (assignment_expression "local_60 = (Elf_Internal_Shdr *)0x0" identifier = (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0002317f:\n        do {\n          if (filedata_1->handle == (FILE *)0x11) {\n            sec = &filedata->string_table_length;\n            pcVar7 = printable_section_name\n                               ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n            uVar6 = (uint)(filedata_1->file_header).e_phoff;\n            if (((filedata->file_header).e_shnum <= uVar6) ||\n               (pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2)) {\n              uVar19 = uVar19 + 1;\n              filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n              pcVar8 = (char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(pcVar8,pcVar7);\n              if ((filedata->file_header).e_shnum <= uVar19) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (pEVar5 != local_60) {\n              if (local_70 != (Elf_Internal_Sym *)0x0) {\n                free(local_70);\n              }\n              if (is_32bit_elf == 0) {\n                local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n              else {\n                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n            }\n            local_60 = pEVar5;\n            if (local_70 == (Elf_Internal_Sym *)0x0) {\n              pcVar8 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4);\n              if (uVar6 < num_syms) {\n                if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }\nLAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;\n                uVar13 = (uint)(filedata_1->file_header).e_entry;\n                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);\n                puVar1 = &(filedata_1->file_header).e_flags;\n                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }\n                pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n                pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);\n                error(pcVar8,pcVar7,uVar6,uVar13);\n                goto LAB_00023378;\n              }\nLAB_000233d0:\n              pcVar8 = "Bad sh_info in group section `%s\'\n";\n            }\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n            error(pcVar8,pcVar7);\n          }\nLAB_00023170:\n          uVar19 = uVar19 + 1;\n          filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n          if ((filedata->file_header).e_shnum <= uVar19) {\nLAB_00023370:\n            if (local_70 != (Elf_Internal_Sym *)0x0) {\nLAB_00023378:\n              free(local_70);\n            }\n            if (local_58 == (Elf_Internal_Shdr *)0x0) {\n              return 1;\n            }\n            free(local_58);\n            return 1;\n          }\n        } while( true );" statement_identifier : (do_statement "do {\n          if (filedata_1->handle == (FILE *)0x11) {\n            sec = &filedata->string_table_length;\n            pcVar7 = printable_section_name\n                               ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n            uVar6 = (uint)(filedata_1->file_header).e_phoff;\n            if (((filedata->file_header).e_shnum <= uVar6) ||\n               (pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2)) {\n              uVar19 = uVar19 + 1;\n              filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n              pcVar8 = (char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(pcVar8,pcVar7);\n              if ((filedata->file_header).e_shnum <= uVar19) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (pEVar5 != local_60) {\n              if (local_70 != (Elf_Internal_Sym *)0x0) {\n                free(local_70);\n              }\n              if (is_32bit_elf == 0) {\n                local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n              else {\n                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n            }\n            local_60 = pEVar5;\n            if (local_70 == (Elf_Internal_Sym *)0x0) {\n              pcVar8 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4);\n              if (uVar6 < num_syms) {\n                if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }\nLAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;\n                uVar13 = (uint)(filedata_1->file_header).e_entry;\n                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);\n                puVar1 = &(filedata_1->file_header).e_flags;\n                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }\n                pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n                pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);\n                error(pcVar8,pcVar7,uVar6,uVar13);\n                goto LAB_00023378;\n              }\nLAB_000233d0:\n              pcVar8 = "Bad sh_info in group section `%s\'\n";\n            }\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n            error(pcVar8,pcVar7);\n          }\nLAB_00023170:\n          uVar19 = uVar19 + 1;\n          filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n          if ((filedata->file_header).e_shnum <= uVar19) {\nLAB_00023370:\n            if (local_70 != (Elf_Internal_Sym *)0x0) {\nLAB_00023378:\n              free(local_70);\n            }\n            if (local_58 == (Elf_Internal_Shdr *)0x0) {\n              return 1;\n            }\n            free(local_58);\n            return 1;\n          }\n        } while( true );" do (compound_statement "{\n          if (filedata_1->handle == (FILE *)0x11) {\n            sec = &filedata->string_table_length;\n            pcVar7 = printable_section_name\n                               ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n            uVar6 = (uint)(filedata_1->file_header).e_phoff;\n            if (((filedata->file_header).e_shnum <= uVar6) ||\n               (pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2)) {\n              uVar19 = uVar19 + 1;\n              filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n              pcVar8 = (char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(pcVar8,pcVar7);\n              if ((filedata->file_header).e_shnum <= uVar19) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (pEVar5 != local_60) {\n              if (local_70 != (Elf_Internal_Sym *)0x0) {\n                free(local_70);\n              }\n              if (is_32bit_elf == 0) {\n                local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n              else {\n                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n            }\n            local_60 = pEVar5;\n            if (local_70 == (Elf_Internal_Sym *)0x0) {\n              pcVar8 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4);\n              if (uVar6 < num_syms) {\n                if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }\nLAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;\n                uVar13 = (uint)(filedata_1->file_header).e_entry;\n                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);\n                puVar1 = &(filedata_1->file_header).e_flags;\n                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }\n                pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n                pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);\n                error(pcVar8,pcVar7,uVar6,uVar13);\n                goto LAB_00023378;\n              }\nLAB_000233d0:\n              pcVar8 = "Bad sh_info in group section `%s\'\n";\n            }\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n            error(pcVar8,pcVar7);\n          }\nLAB_00023170:\n          uVar19 = uVar19 + 1;\n          filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n          if ((filedata->file_header).e_shnum <= uVar19) {\nLAB_00023370:\n            if (local_70 != (Elf_Internal_Sym *)0x0) {\nLAB_00023378:\n              free(local_70);\n            }\n            if (local_58 == (Elf_Internal_Shdr *)0x0) {\n              return 1;\n            }\n            free(local_58);\n            return 1;\n          }\n        }" { (if_statement "if (filedata_1->handle == (FILE *)0x11) {\n            sec = &filedata->string_table_length;\n            pcVar7 = printable_section_name\n                               ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n            uVar6 = (uint)(filedata_1->file_header).e_phoff;\n            if (((filedata->file_header).e_shnum <= uVar6) ||\n               (pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2)) {\n              uVar19 = uVar19 + 1;\n              filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n              pcVar8 = (char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(pcVar8,pcVar7);\n              if ((filedata->file_header).e_shnum <= uVar19) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (pEVar5 != local_60) {\n              if (local_70 != (Elf_Internal_Sym *)0x0) {\n                free(local_70);\n              }\n              if (is_32bit_elf == 0) {\n                local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n              else {\n                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n            }\n            local_60 = pEVar5;\n            if (local_70 == (Elf_Internal_Sym *)0x0) {\n              pcVar8 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4);\n              if (uVar6 < num_syms) {\n                if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }\nLAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;\n                uVar13 = (uint)(filedata_1->file_header).e_entry;\n                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);\n                puVar1 = &(filedata_1->file_header).e_flags;\n                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }\n                pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n                pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);\n                error(pcVar8,pcVar7,uVar6,uVar13);\n                goto LAB_00023378;\n              }\nLAB_000233d0:\n              pcVar8 = "Bad sh_info in group section `%s\'\n";\n            }\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n            error(pcVar8,pcVar7);\n          }" if (parenthesized_expression "(filedata_1->handle == (FILE *)0x11)" ( (binary_expression "filedata_1->handle == (FILE *)0x11" (field_expression "filedata_1->handle" identifier -> field_identifier) == (cast_expression "(FILE *)0x11" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            sec = &filedata->string_table_length;\n            pcVar7 = printable_section_name\n                               ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n            uVar6 = (uint)(filedata_1->file_header).e_phoff;\n            if (((filedata->file_header).e_shnum <= uVar6) ||\n               (pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2)) {\n              uVar19 = uVar19 + 1;\n              filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n              pcVar8 = (char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(pcVar8,pcVar7);\n              if ((filedata->file_header).e_shnum <= uVar19) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (pEVar5 != local_60) {\n              if (local_70 != (Elf_Internal_Sym *)0x0) {\n                free(local_70);\n              }\n              if (is_32bit_elf == 0) {\n                local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n              else {\n                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n            }\n            local_60 = pEVar5;\n            if (local_70 == (Elf_Internal_Sym *)0x0) {\n              pcVar8 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4);\n              if (uVar6 < num_syms) {\n                if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }\nLAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;\n                uVar13 = (uint)(filedata_1->file_header).e_entry;\n                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);\n                puVar1 = &(filedata_1->file_header).e_flags;\n                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }\n                pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n                pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);\n                error(pcVar8,pcVar7,uVar6,uVar13);\n                goto LAB_00023378;\n              }\nLAB_000233d0:\n              pcVar8 = "Bad sh_info in group section `%s\'\n";\n            }\n            pcVar8 = (char *)dcgettext(0,pcVar8,5);\n            error(pcVar8,pcVar7);\n          }" { (expression_statement "sec = &filedata->string_table_length;" (assignment_expression "sec = &filedata->string_table_length" identifier = (pointer_expression "&filedata->string_table_length" & (field_expression "filedata->string_table_length" identifier -> field_identifier))) ;) (expression_statement "pcVar7 = printable_section_name\n                               ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);" (assignment_expression "pcVar7 = printable_section_name\n                               ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1)" identifier = (call_expression "printable_section_name\n                               ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1)" identifier (argument_list "((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1)" ( (cast_expression "(Filedata *)filedata_00" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Elf_Internal_Shdr *)sec" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "uVar6 = (uint)(filedata_1->file_header).e_phoff;" (assignment_expression "uVar6 = (uint)(filedata_1->file_header).e_phoff" identifier = (field_expression "(uint)(filedata_1->file_header).e_phoff" (call_expression "(uint)(filedata_1->file_header)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) ))) . field_identifier)) ;) (if_statement "if (((filedata->file_header).e_shnum <= uVar6) ||\n               (pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2)) {\n              uVar19 = uVar19 + 1;\n              filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n              pcVar8 = (char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(pcVar8,pcVar7);\n              if ((filedata->file_header).e_shnum <= uVar19) goto LAB_00023370;\n              goto LAB_0002317f;\n            }" if (parenthesized_expression "(((filedata->file_header).e_shnum <= uVar6) ||\n               (pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2))" ( (binary_expression "((filedata->file_header).e_shnum <= uVar6) ||\n               (pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2)" (parenthesized_expression "((filedata->file_header).e_shnum <= uVar6)" ( (binary_expression "(filedata->file_header).e_shnum <= uVar6" (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) <= identifier) )) || (parenthesized_expression "(pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2)" ( (comma_expression "pEVar5 = filedata->section_headers + uVar6, pEVar5->sh_type != 2" (assignment_expression "pEVar5 = filedata->section_headers + uVar6" identifier = (binary_expression "filedata->section_headers + uVar6" (field_expression "filedata->section_headers" identifier -> field_identifier) + identifier)) , (binary_expression "pEVar5->sh_type != 2" (field_expression "pEVar5->sh_type" identifier -> field_identifier) != number_literal)) ))) )) (compound_statement "{\n              uVar19 = uVar19 + 1;\n              filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;\n              pcVar8 = (char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(pcVar8,pcVar7);\n              if ((filedata->file_header).e_shnum <= uVar19) goto LAB_00023370;\n              goto LAB_0002317f;\n            }" { (expression_statement "uVar19 = uVar19 + 1;" (assignment_expression "uVar19 = uVar19 + 1" identifier = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) (expression_statement "filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;" (assignment_expression "filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize" identifier = (cast_expression "(Filedata *)&(filedata_1->file_header).e_phentsize" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(filedata_1->file_header).e_phentsize" & (field_expression "(filedata_1->file_header).e_phentsize" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier)))) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Bad sh_link in group section `%s\'\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Bad sh_link in group section `%s\'\n",5)" identifier (argument_list "(0,"Bad sh_link in group section `%s\'\n",5)" ( number_literal , (string_literal ""Bad sh_link in group section `%s\'\n"" " string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar8,pcVar7);" (call_expression "error(pcVar8,pcVar7)" identifier (argument_list "(pcVar8,pcVar7)" ( identifier , identifier ))) ;) (if_statement "if ((filedata->file_header).e_shnum <= uVar19) goto LAB_00023370;" if (parenthesized_expression "((filedata->file_header).e_shnum <= uVar19)" ( (binary_expression "(filedata->file_header).e_shnum <= uVar19" (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) <= identifier) )) (goto_statement "goto LAB_00023370;" goto statement_identifier ;)) (goto_statement "goto LAB_0002317f;" goto statement_identifier ;) })) (if_statement "if (pEVar5 != local_60) {\n              if (local_70 != (Elf_Internal_Sym *)0x0) {\n                free(local_70);\n              }\n              if (is_32bit_elf == 0) {\n                local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n              else {\n                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n            }" if (parenthesized_expression "(pEVar5 != local_60)" ( (binary_expression "pEVar5 != local_60" identifier != identifier) )) (compound_statement "{\n              if (local_70 != (Elf_Internal_Sym *)0x0) {\n                free(local_70);\n              }\n              if (is_32bit_elf == 0) {\n                local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n              else {\n                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n            }" { (if_statement "if (local_70 != (Elf_Internal_Sym *)0x0) {\n                free(local_70);\n              }" if (parenthesized_expression "(local_70 != (Elf_Internal_Sym *)0x0)" ( (binary_expression "local_70 != (Elf_Internal_Sym *)0x0" identifier != (cast_expression "(Elf_Internal_Sym *)0x0" ( (type_descriptor "Elf_Internal_Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                free(local_70);\n              }" { (expression_statement "free(local_70);" (call_expression "free(local_70)" identifier (argument_list "(local_70)" ( identifier ))) ;) })) (if_statement "if (is_32bit_elf == 0) {\n                local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }\n              else {\n                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }" if (parenthesized_expression "(is_32bit_elf == 0)" ( (binary_expression "is_32bit_elf == 0" identifier == number_literal) )) (compound_statement "{\n                local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }" { (expression_statement "local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms);" (assignment_expression "local_70 = get_64bit_elf_symbols(filedata,pEVar5,&num_syms)" identifier = (call_expression "get_64bit_elf_symbols(filedata,pEVar5,&num_syms)" identifier (argument_list "(filedata,pEVar5,&num_syms)" ( identifier , identifier , (pointer_expression "&num_syms" & identifier) )))) ;) }) (else_clause "else {\n                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }" else (compound_statement "{\n                local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);\n              }" { (expression_statement "local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms);" (assignment_expression "local_70 = get_32bit_elf_symbols(filedata,pEVar5,&num_syms)" identifier = (call_expression "get_32bit_elf_symbols(filedata,pEVar5,&num_syms)" identifier (argument_list "(filedata,pEVar5,&num_syms)" ( identifier , identifier , (pointer_expression "&num_syms" & identifier) )))) ;) }))) })) (expression_statement "local_60 = pEVar5;" (assignment_expression "local_60 = pEVar5" identifier = identifier) ;) (if_statement "if (local_70 == (Elf_Internal_Sym *)0x0) {\n              pcVar8 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4);\n              if (uVar6 < num_syms) {\n                if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }\nLAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;\n                uVar13 = (uint)(filedata_1->file_header).e_entry;\n                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);\n                puVar1 = &(filedata_1->file_header).e_flags;\n                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }\n                pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n                pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);\n                error(pcVar8,pcVar7,uVar6,uVar13);\n                goto LAB_00023378;\n              }\nLAB_000233d0:\n              pcVar8 = "Bad sh_info in group section `%s\'\n";\n            }" if (parenthesized_expression "(local_70 == (Elf_Internal_Sym *)0x0)" ( (binary_expression "local_70 == (Elf_Internal_Sym *)0x0" identifier == (cast_expression "(Elf_Internal_Sym *)0x0" ( (type_descriptor "Elf_Internal_Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar8 = "Corrupt header in group section `%s\'\n";\n            }" { (expression_statement "pcVar8 = "Corrupt header in group section `%s\'\n";" (assignment_expression "pcVar8 = "Corrupt header in group section `%s\'\n"" identifier = (string_literal ""Corrupt header in group section `%s\'\n"" " string_content escape_sequence escape_sequence ")) ;) }) (else_clause "else {\n              uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4);\n              if (uVar6 < num_syms) {\n                if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }\nLAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;\n                uVar13 = (uint)(filedata_1->file_header).e_entry;\n                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);\n                puVar1 = &(filedata_1->file_header).e_flags;\n                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }\n                pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n                pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);\n                error(pcVar8,pcVar7,uVar6,uVar13);\n                goto LAB_00023378;\n              }\nLAB_000233d0:\n              pcVar8 = "Bad sh_info in group section `%s\'\n";\n            }" else (compound_statement "{\n              uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4);\n              if (uVar6 < num_syms) {\n                if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }\nLAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;\n                uVar13 = (uint)(filedata_1->file_header).e_entry;\n                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);\n                puVar1 = &(filedata_1->file_header).e_flags;\n                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }\n                pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n                pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);\n                error(pcVar8,pcVar7,uVar6,uVar13);\n                goto LAB_00023378;\n              }\nLAB_000233d0:\n              pcVar8 = "Bad sh_info in group section `%s\'\n";\n            }" { (expression_statement "uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4);" (assignment_expression "uVar6 = *(uint *)((int)&(filedata_1->file_header).e_phoff + 4)" identifier = (pointer_expression "*(uint *)((int)&(filedata_1->file_header).e_phoff + 4)" * (cast_expression "(uint *)((int)&(filedata_1->file_header).e_phoff + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(filedata_1->file_header).e_phoff + 4)" ( (binary_expression "(int)&(filedata_1->file_header).e_phoff + 4" (cast_expression "(int)&(filedata_1->file_header).e_phoff" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(filedata_1->file_header).e_phoff" & (field_expression "(filedata_1->file_header).e_phoff" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (if_statement "if (uVar6 < num_syms) {\n                if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }\nLAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;\n                uVar13 = (uint)(filedata_1->file_header).e_entry;\n                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);\n                puVar1 = &(filedata_1->file_header).e_flags;\n                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }\n                pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n                pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);\n                error(pcVar8,pcVar7,uVar6,uVar13);\n                goto LAB_00023378;\n              }" if (parenthesized_expression "(uVar6 < num_syms)" ( (binary_expression "uVar6 < num_syms" identifier < identifier) )) (compound_statement "{\n                if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }\nLAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;\n                uVar13 = (uint)(filedata_1->file_header).e_entry;\n                uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);\n                puVar1 = &(filedata_1->file_header).e_flags;\n                if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }\n                pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);\n                pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);\n                error(pcVar8,pcVar7,uVar6,uVar13);\n                goto LAB_00023378;\n              }" { (if_statement "if ((local_70[uVar6].st_info & 0xf) == 3) {\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }\n                else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }" if (parenthesized_expression "((local_70[uVar6].st_info & 0xf) == 3)" ( (binary_expression "(local_70[uVar6].st_info & 0xf) == 3" (parenthesized_expression "(local_70[uVar6].st_info & 0xf)" ( (binary_expression "local_70[uVar6].st_info & 0xf" (field_expression "local_70[uVar6].st_info" (subscript_expression "local_70[uVar6]" identifier [ identifier ]) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                  uVar6 = local_70[uVar6].st_shndx;\n                  if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;\n                  if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }\n                  if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }\n                }" { (expression_statement "uVar6 = local_70[uVar6].st_shndx;" (assignment_expression "uVar6 = local_70[uVar6].st_shndx" identifier = (field_expression "local_70[uVar6].st_shndx" (subscript_expression "local_70[uVar6]" identifier [ identifier ]) . field_identifier)) ;) (if_statement "if ((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)) goto LAB_000233d0;" if (parenthesized_expression "((uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6))" ( (binary_expression "(uVar6 == 0) || ((filedata->file_header).e_shnum <= uVar6)" (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) || (parenthesized_expression "((filedata->file_header).e_shnum <= uVar6)" ( (binary_expression "(filedata->file_header).e_shnum <= uVar6" (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) <= identifier) ))) )) (goto_statement "goto LAB_000233d0;" goto statement_identifier ;)) (if_statement "if (filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0) {\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }\n                  else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }" if (parenthesized_expression "(filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0)" ( (binary_expression "filedata->section_headers + uVar6 == (Elf_Internal_Shdr *)0x0" (binary_expression "filedata->section_headers + uVar6" (field_expression "filedata->section_headers" identifier -> field_identifier) + identifier) == (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    pcVar8 = "<none>";\nLAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);\n                  }" { (expression_statement "pcVar8 = "<none>";" (assignment_expression "pcVar8 = "<none>"" identifier = (string_literal ""<none>"" " string_content ")) ;) (labeled_statement "LAB_00023a33:\n                    local_44 = (char *)dcgettext(0,pcVar8,5);" statement_identifier : (expression_statement "local_44 = (char *)dcgettext(0,pcVar8,5);" (assignment_expression "local_44 = (char *)dcgettext(0,pcVar8,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar8,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar8,5)" identifier (argument_list "(0,pcVar8,5)" ( number_literal , identifier , number_literal ))))) ;)) }) (else_clause "else {\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }" else (compound_statement "{\n                    if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }\n                    uVar6 = filedata->section_headers[uVar6].sh_name;\n                    local_44 = filedata->string_table + uVar6;\n                    if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }\n                  }" { (if_statement "if (filedata->string_table == (char *)0x0) {\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }" if (parenthesized_expression "(filedata->string_table == (char *)0x0)" ( (binary_expression "filedata->string_table == (char *)0x0" (field_expression "filedata->string_table" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      pcVar8 = "<no-strings>";\n                      goto LAB_00023a33;\n                    }" { (expression_statement "pcVar8 = "<no-strings>";" (assignment_expression "pcVar8 = "<no-strings>"" identifier = (string_literal ""<no-strings>"" " string_content ")) ;) (goto_statement "goto LAB_00023a33;" goto statement_identifier ;) })) (expression_statement "uVar6 = filedata->section_headers[uVar6].sh_name;" (assignment_expression "uVar6 = filedata->section_headers[uVar6].sh_name" identifier = (field_expression "filedata->section_headers[uVar6].sh_name" (subscript_expression "filedata->section_headers[uVar6]" (field_expression "filedata->section_headers" identifier -> field_identifier) [ identifier ]) . field_identifier)) ;) (expression_statement "local_44 = filedata->string_table + uVar6;" (assignment_expression "local_44 = filedata->string_table + uVar6" identifier = (binary_expression "filedata->string_table + uVar6" (field_expression "filedata->string_table" identifier -> field_identifier) + identifier)) ;) (if_statement "if (filedata->string_table_length <= uVar6) {\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }" if (parenthesized_expression "(filedata->string_table_length <= uVar6)" ( (binary_expression "filedata->string_table_length <= uVar6" (field_expression "filedata->string_table_length" identifier -> field_identifier) <= identifier) )) (compound_statement "{\n                      pcVar8 = "<corrupt>";\n                      goto LAB_00023a33;\n                    }" { (expression_statement "pcVar8 = "<corrupt>";" (assignment_expression "pcVar8 = "<corrupt>"" identifier = (string_literal ""<corrupt>"" " string_content ")) ;) (goto_statement "goto LAB_00023a33;" goto statement_identifier ;) })) }))) (if_statement "if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }" if (parenthesized_expression "(local_58 == (Elf_Internal_Shdr *)0x0)" ( (binary_expression "local_58 == (Elf_Internal_Shdr *)0x0" identifier == (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                    local_48 = 0;\n                  }" { (expression_statement "local_4c = (Elf_Internal_Shdr *)0x0;" (assignment_expression "local_4c = (Elf_Internal_Shdr *)0x0" identifier = (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }" else (compound_statement "{\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    local_4c = (Elf_Internal_Shdr *)0x0;\n                  }" { (expression_statement "free(local_58);" (call_expression "free(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_58 = (Elf_Internal_Shdr *)0x0;" (assignment_expression "local_58 = (Elf_Internal_Shdr *)0x0" identifier = (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = (Elf_Internal_Shdr *)0x0;" (assignment_expression "local_4c = (Elf_Internal_Shdr *)0x0" identifier = (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }" else (compound_statement "{\n                  if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\nLAB_0002326f:\n                  local_58 = pEVar5;\n                  local_44 = (char *)dcgettext(0,"<corrupt>",5);\n                  local_4c = local_58;\n                  local_58 = pEVar15;\n                }" { (if_statement "if (pEVar5->sh_link < (filedata->file_header).e_shnum) {\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }\n                  else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }" if (parenthesized_expression "(pEVar5->sh_link < (filedata->file_header).e_shnum)" ( (binary_expression "pEVar5->sh_link < (filedata->file_header).e_shnum" (field_expression "pEVar5->sh_link" identifier -> field_identifier) < (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) )) (compound_statement "{\n                    pEVar5 = filedata->section_headers + pEVar5->sh_link;\n                    if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }\n                    pEVar15 = local_58;\n                    if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }\n                  }" { (expression_statement "pEVar5 = filedata->section_headers + pEVar5->sh_link;" (assignment_expression "pEVar5 = filedata->section_headers + pEVar5->sh_link" identifier = (binary_expression "filedata->section_headers + pEVar5->sh_link" (field_expression "filedata->section_headers" identifier -> field_identifier) + (field_expression "pEVar5->sh_link" identifier -> field_identifier))) ;) (if_statement "if (pEVar5 != local_4c) {\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }" if (parenthesized_expression "(pEVar5 != local_4c)" ( (binary_expression "pEVar5 != local_4c" identifier != identifier) )) (compound_statement "{\n                      if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }\n                      pcVar8 = (char *)dcgettext(0,"string table",5);\n                      local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);\n                      if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }\n                      local_48 = (uint)pEVar5->sh_size;\n                    }" { (if_statement "if (local_58 != (Elf_Internal_Shdr *)0x0) {\n                        free(local_58);\n                      }" if (parenthesized_expression "(local_58 != (Elf_Internal_Shdr *)0x0)" ( (binary_expression "local_58 != (Elf_Internal_Shdr *)0x0" identifier != (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        free(local_58);\n                      }" { (expression_statement "free(local_58);" (call_expression "free(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) })) (expression_statement "pcVar8 = (char *)dcgettext(0,"string table",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"string table",5)" identifier = (cast_expression "(char *)dcgettext(0,"string table",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"string table",5)" identifier (argument_list "(0,"string table",5)" ( number_literal , (string_literal ""string table"" " string_content ") , number_literal ))))) ;) (expression_statement "local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8);" (assignment_expression "local_58 = (Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8)" identifier = (cast_expression "(Elf_Internal_Shdr *)\n                                 get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8)" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "get_data((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8)" identifier (argument_list "((void *)0x0,filedata,(ulong)pEVar5->sh_offset,1,\n                                          pEVar5->sh_size,pcVar8)" ( (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(ulong)pEVar5->sh_offset" ( (type_descriptor "ulong" type_identifier) ) (field_expression "pEVar5->sh_offset" identifier -> field_identifier)) , number_literal , (field_expression "pEVar5->sh_size" identifier -> field_identifier) , identifier ))))) ;) (if_statement "if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }" if (parenthesized_expression "(local_58 == (Elf_Internal_Shdr *)0x0)" ( (binary_expression "local_58 == (Elf_Internal_Shdr *)0x0" identifier == (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        local_48 = 0;\n                        pEVar15 = (Elf_Internal_Shdr *)0x0;\n                        goto LAB_0002326f;\n                      }" { (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "pEVar15 = (Elf_Internal_Shdr *)0x0;" (assignment_expression "pEVar15 = (Elf_Internal_Shdr *)0x0" identifier = (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0002326f;" goto statement_identifier ;) })) (expression_statement "local_48 = (uint)pEVar5->sh_size;" (assignment_expression "local_48 = (uint)pEVar5->sh_size" identifier = (cast_expression "(uint)pEVar5->sh_size" ( (type_descriptor "uint" type_identifier) ) (field_expression "pEVar5->sh_size" identifier -> field_identifier))) ;) })) (expression_statement "pEVar15 = local_58;" (assignment_expression "pEVar15 = local_58" identifier = identifier) ;) (if_statement "if (local_70[uVar6].st_name < local_48) {\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }" if (parenthesized_expression "(local_70[uVar6].st_name < local_48)" ( (binary_expression "local_70[uVar6].st_name < local_48" (field_expression "local_70[uVar6].st_name" (subscript_expression "local_70[uVar6]" identifier [ identifier ]) . field_identifier) < identifier) )) (compound_statement "{\n                      local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);\n                      local_4c = pEVar5;\n                      goto LAB_00023496;\n                    }" { (expression_statement "local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name);" (assignment_expression "local_44 = (char *)((int)&local_58->sh_name + local_70[uVar6].st_name)" identifier = (cast_expression "(char *)((int)&local_58->sh_name + local_70[uVar6].st_name)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_58->sh_name + local_70[uVar6].st_name)" ( (binary_expression "(int)&local_58->sh_name + local_70[uVar6].st_name" (cast_expression "(int)&local_58->sh_name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_58->sh_name" & (field_expression "local_58->sh_name" identifier -> field_identifier))) + (field_expression "local_70[uVar6].st_name" (subscript_expression "local_70[uVar6]" identifier [ identifier ]) . field_identifier)) )))) ;) (expression_statement "local_4c = pEVar5;" (assignment_expression "local_4c = pEVar5" identifier = identifier) ;) (goto_statement "goto LAB_00023496;" goto statement_identifier ;) })) }) (else_clause "else if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }" else (if_statement "if (local_58 == (Elf_Internal_Shdr *)0x0) {\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }\n                  else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }" if (parenthesized_expression "(local_58 == (Elf_Internal_Shdr *)0x0)" ( (binary_expression "local_58 == (Elf_Internal_Shdr *)0x0" identifier == (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    local_48 = 0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }" { (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "pEVar15 = (Elf_Internal_Shdr *)0x0;" (assignment_expression "pEVar15 = (Elf_Internal_Shdr *)0x0" identifier = (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pEVar5 = local_58;" (assignment_expression "pEVar5 = local_58" identifier = identifier) ;) }) (else_clause "else {\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }" else (compound_statement "{\n                    free(local_58);\n                    local_48 = 0;\n                    local_58 = (Elf_Internal_Shdr *)0x0;\n                    pEVar15 = (Elf_Internal_Shdr *)0x0;\n                    pEVar5 = local_58;\n                  }" { (expression_statement "free(local_58);" (call_expression "free(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_58 = (Elf_Internal_Shdr *)0x0;" (assignment_expression "local_58 = (Elf_Internal_Shdr *)0x0" identifier = (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pEVar15 = (Elf_Internal_Shdr *)0x0;" (assignment_expression "pEVar15 = (Elf_Internal_Shdr *)0x0" identifier = (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pEVar5 = local_58;" (assignment_expression "pEVar5 = local_58" identifier = identifier) ;) }))))) (labeled_statement "LAB_0002326f:\n                  local_58 = pEVar5;" statement_identifier : (expression_statement "local_58 = pEVar5;" (assignment_expression "local_58 = pEVar5" identifier = identifier) ;)) (expression_statement "local_44 = (char *)dcgettext(0,"<corrupt>",5);" (assignment_expression "local_44 = (char *)dcgettext(0,"<corrupt>",5)" identifier = (cast_expression "(char *)dcgettext(0,"<corrupt>",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<corrupt>",5)" identifier (argument_list "(0,"<corrupt>",5)" ( number_literal , (string_literal ""<corrupt>"" " string_content ") , number_literal ))))) ;) (expression_statement "local_4c = local_58;" (assignment_expression "local_4c = local_58" identifier = identifier) ;) (expression_statement "local_58 = pEVar15;" (assignment_expression "local_58 = pEVar15" identifier = identifier) ;) }))) (labeled_statement "LAB_00023496:\n                uVar6 = (filedata_1->file_header).e_version;" statement_identifier : (expression_statement "uVar6 = (filedata_1->file_header).e_version;" (assignment_expression "uVar6 = (filedata_1->file_header).e_version" identifier = (field_expression "(filedata_1->file_header).e_version" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "uVar13 = (uint)(filedata_1->file_header).e_entry;" (assignment_expression "uVar13 = (uint)(filedata_1->file_header).e_entry" identifier = (field_expression "(uint)(filedata_1->file_header).e_entry" (call_expression "(uint)(filedata_1->file_header)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4);" (assignment_expression "uVar2 = *(uint *)((int)&(filedata_1->file_header).e_entry + 4)" identifier = (pointer_expression "*(uint *)((int)&(filedata_1->file_header).e_entry + 4)" * (cast_expression "(uint *)((int)&(filedata_1->file_header).e_entry + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(filedata_1->file_header).e_entry + 4)" ( (binary_expression "(int)&(filedata_1->file_header).e_entry + 4" (cast_expression "(int)&(filedata_1->file_header).e_entry" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(filedata_1->file_header).e_entry" & (field_expression "(filedata_1->file_header).e_entry" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "puVar1 = &(filedata_1->file_header).e_flags;" (assignment_expression "puVar1 = &(filedata_1->file_header).e_flags" identifier = (pointer_expression "&(filedata_1->file_header).e_flags" & (field_expression "(filedata_1->file_header).e_flags" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1) {\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }" if (parenthesized_expression "(*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1)" ( (binary_expression "*puVar1 <= uVar2 && (uint)(uVar13 < uVar6) <= uVar2 - *puVar1" (binary_expression "*puVar1 <= uVar2" (pointer_expression "*puVar1" * identifier) <= identifier) && (binary_expression "(uint)(uVar13 < uVar6) <= uVar2 - *puVar1" (call_expression "(uint)(uVar13 < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar13 < uVar6)" ( (binary_expression "uVar13 < uVar6" identifier < identifier) ))) <= (binary_expression "uVar2 - *puVar1" identifier - (pointer_expression "*puVar1" * identifier)))) )) (compound_statement "{\n                  pcVar8 = (char *)dcgettext(0,"section data",5);\n                  __ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);\n                  if (__ptr == (uchar *)0x0) goto LAB_00023170;\n                  iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);\n                  iVar9 = iVar9 + -1;\n                  eVar22._0_4_ = (*byte_get)(__ptr,4);\n                  if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }\n                  local_6c->group_index = uVar19;\n                  if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }\n                  free(__ptr);\n                  local_6c = local_6c + 1;\n                  goto LAB_00023170;\n                }" { (expression_statement "pcVar8 = (char *)dcgettext(0,"section data",5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,"section data",5)" identifier = (cast_expression "(char *)dcgettext(0,"section data",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"section data",5)" identifier (argument_list "(0,"section data",5)" ( number_literal , (string_literal ""section data"" " string_content ") , number_literal ))))) ;) (expression_statement "__ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8);" (assignment_expression "__ptr = (uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8)" identifier = (cast_expression "(uchar *)get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "get_data((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8)" identifier (argument_list "((void *)0x0,filedata,\n                                            *(ulong *)((filedata_1->file_header).e_ident + 8),1,\n                                            (filedata_1->file_header).e_entry,pcVar8)" ( (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (pointer_expression "*(ulong *)((filedata_1->file_header).e_ident + 8)" * (cast_expression "(ulong *)((filedata_1->file_header).e_ident + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((filedata_1->file_header).e_ident + 8)" ( (binary_expression "(filedata_1->file_header).e_ident + 8" (field_expression "(filedata_1->file_header).e_ident" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier) + number_literal) )))) , number_literal , (field_expression "(filedata_1->file_header).e_entry" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier) , identifier ))))) ;) (if_statement "if (__ptr == (uchar *)0x0) goto LAB_00023170;" if (parenthesized_expression "(__ptr == (uchar *)0x0)" ( (binary_expression "__ptr == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00023170;" goto statement_identifier ;)) (expression_statement "iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags);" (assignment_expression "iVar9 = __udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags)" identifier = (call_expression "__udivdi3((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags)" identifier (argument_list "((int)(filedata_1->file_header).e_entry,\n                                    *(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4),\n                                    (filedata_1->file_header).e_version,\n                                    (filedata_1->file_header).e_flags)" ( (cast_expression "(int)(filedata_1->file_header).e_entry" ( (type_descriptor "int" primitive_type) ) (field_expression "(filedata_1->file_header).e_entry" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier)) , (pointer_expression "*(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4)" * (cast_expression "(undefined4 *)((int)&(filedata_1->file_header).e_entry + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(filedata_1->file_header).e_entry + 4)" ( (binary_expression "(int)&(filedata_1->file_header).e_entry + 4" (cast_expression "(int)&(filedata_1->file_header).e_entry" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(filedata_1->file_header).e_entry" & (field_expression "(filedata_1->file_header).e_entry" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) , (field_expression "(filedata_1->file_header).e_version" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier) , (field_expression "(filedata_1->file_header).e_flags" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier) )))) ;) (expression_statement "iVar9 = iVar9 + -1;" (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "eVar22._0_4_ = (*byte_get)(__ptr,4);" (assignment_expression "eVar22._0_4_ = (*byte_get)(__ptr,4)" (field_expression "eVar22._0_4_" identifier . field_identifier) = (call_expression "(*byte_get)(__ptr,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(__ptr,4)" ( identifier , number_literal )))) ;) (if_statement "if (do_section_groups != 0) {\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }" if (parenthesized_expression "(do_section_groups != 0)" ( (binary_expression "do_section_groups != 0" identifier != number_literal) )) (compound_statement "{\n                    pcVar8 = &DAT_0007bc5a;\n                    if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }\n                    pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);\n                    printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);\n                    pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);\n                    printf(pcVar7);\n                  }" { (expression_statement "pcVar8 = &DAT_0007bc5a;" (assignment_expression "pcVar8 = &DAT_0007bc5a" identifier = (pointer_expression "&DAT_0007bc5a" & identifier)) ;) (if_statement "if (((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)) {\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }" if (parenthesized_expression "(((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1))" ( (binary_expression "((elf_vma)eVar22 != 0) && (pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)" (parenthesized_expression "((elf_vma)eVar22 != 0)" ( (binary_expression "(elf_vma)eVar22 != 0" (cast_expression "(elf_vma)eVar22" ( (type_descriptor "elf_vma" type_identifier) ) identifier) != number_literal) )) && (parenthesized_expression "(pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1)" ( (comma_expression "pcVar8 = "COMDAT ", (elf_vma)eVar22 != 1" (assignment_expression "pcVar8 = "COMDAT "" identifier = (string_literal ""COMDAT "" " string_content ")) , (binary_expression "(elf_vma)eVar22 != 1" (cast_expression "(elf_vma)eVar22" ( (type_descriptor "elf_vma" type_identifier) ) identifier) != number_literal)) ))) )) (compound_statement "{\n                      pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);\n                      pcVar8 = (char *)&buff_17704;\n                      snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);\n                      puVar17 = (uint *)pcVar8;\n                      if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }\n                      do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);\n                      bVar21 = (uVar13 & 0x8080) == 0;\n                      if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }\n                      if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }\n                      pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );\n                      pcVar12[0] = ']';\n                      pcVar12[1] = '\0';\n                    }" { (expression_statement "pcVar12 = (char *)dcgettext(0,"[0x%x: ",5);" (assignment_expression "pcVar12 = (char *)dcgettext(0,"[0x%x: ",5)" identifier = (cast_expression "(char *)dcgettext(0,"[0x%x: ",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"[0x%x: ",5)" identifier (argument_list "(0,"[0x%x: ",5)" ( number_literal , (string_literal ""[0x%x: "" " string_content ") , number_literal ))))) ;) (expression_statement "pcVar8 = (char *)&buff_17704;" (assignment_expression "pcVar8 = (char *)&buff_17704" identifier = (cast_expression "(char *)&buff_17704" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&buff_17704" & identifier))) ;) (expression_statement "snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22);" (call_expression "snprintf((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22)" identifier (argument_list "((char *)&buff_17704,0xe,pcVar12,(undefined4)(elf_vma)eVar22)" ( (cast_expression "(char *)&buff_17704" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&buff_17704" & identifier)) , number_literal , identifier , (cast_expression "(undefined4)(elf_vma)eVar22" ( (type_descriptor "undefined4" type_identifier) ) (cast_expression "(elf_vma)eVar22" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) ))) ;) (expression_statement "puVar17 = (uint *)pcVar8;" (assignment_expression "puVar17 = (uint *)pcVar8" identifier = (cast_expression "(uint *)pcVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (((uint)(elf_vma)eVar22 & 0xff00000) == 0) {\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }\n                      else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }" if (parenthesized_expression "(((uint)(elf_vma)eVar22 & 0xff00000) == 0)" ( (binary_expression "((uint)(elf_vma)eVar22 & 0xff00000) == 0" (parenthesized_expression "((uint)(elf_vma)eVar22 & 0xff00000)" ( (binary_expression "(uint)(elf_vma)eVar22 & 0xff00000" (cast_expression "(uint)(elf_vma)eVar22" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(elf_vma)eVar22" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) & number_literal) )) == number_literal) )) (compound_statement "{\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }\nLAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);\n                        puVar17 = (uint *)pcVar8;\n                      }" { (if_statement "if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) {\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }" if (parenthesized_expression "(((uint)(elf_vma)eVar22 & 0xf0000000) != 0)" ( (binary_expression "((uint)(elf_vma)eVar22 & 0xf0000000) != 0" (parenthesized_expression "((uint)(elf_vma)eVar22 & 0xf0000000)" ( (binary_expression "(uint)(elf_vma)eVar22 & 0xf0000000" (cast_expression "(uint)(elf_vma)eVar22" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(elf_vma)eVar22" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) & number_literal) )) != number_literal) )) (compound_statement "{\n                          local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;\nLAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);\n                          bVar21 = (uVar13 & 0x8080) == 0;\n                          if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }\n                          if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }\n                          local_34 = local_34 & 0xfffffff;\n                          builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);\n                          goto LAB_0002390e;\n                        }" { (expression_statement "local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe;" (assignment_expression "local_34 = (uint)(elf_vma)eVar22 & 0xfffffffe" identifier = (binary_expression "(uint)(elf_vma)eVar22 & 0xfffffffe" (cast_expression "(uint)(elf_vma)eVar22" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(elf_vma)eVar22" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) & number_literal)) ;) (labeled_statement "LAB_000238bb:\n                          do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);" statement_identifier : (do_statement "do {\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          } while (uVar6 == 0);" do (compound_statement "{\n                            puVar16 = puVar17;\n                            uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                            uVar6 = uVar13 & 0x80808080;\n                            puVar17 = puVar16 + 1;\n                          }" { (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" identifier = identifier) ;) (expression_statement "uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;" (assignment_expression "uVar13 = *puVar16 + 0xfefefeff & ~*puVar16" identifier = (binary_expression "*puVar16 + 0xfefefeff & ~*puVar16" (binary_expression "*puVar16 + 0xfefefeff" (pointer_expression "*puVar16" * identifier) + number_literal) & (unary_expression "~*puVar16" ~ (pointer_expression "*puVar16" * identifier)))) ;) (expression_statement "uVar6 = uVar13 & 0x80808080;" (assignment_expression "uVar6 = uVar13 & 0x80808080" identifier = (binary_expression "uVar13 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar17 = puVar16 + 1;" (assignment_expression "puVar17 = puVar16 + 1" identifier = (binary_expression "puVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) ;)) (expression_statement "bVar21 = (uVar13 & 0x8080) == 0;" (assignment_expression "bVar21 = (uVar13 & 0x8080) == 0" identifier = (binary_expression "(uVar13 & 0x8080) == 0" (parenthesized_expression "(uVar13 & 0x8080)" ( (binary_expression "uVar13 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar21) {\n                            uVar6 = uVar6 >> 0x10;\n                          }" if (parenthesized_expression "(bVar21)" ( identifier )) (compound_statement "{\n                            uVar6 = uVar6 >> 0x10;\n                          }" { (expression_statement "uVar6 = uVar6 >> 0x10;" (assignment_expression "uVar6 = uVar6 >> 0x10" identifier = (binary_expression "uVar6 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar21) {\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }" if (parenthesized_expression "(bVar21)" ( identifier )) (compound_statement "{\n                            puVar17 = (uint *)((int)puVar16 + 6);\n                          }" { (expression_statement "puVar17 = (uint *)((int)puVar16 + 6);" (assignment_expression "puVar17 = (uint *)((int)puVar16 + 6)" identifier = (cast_expression "(uint *)((int)puVar16 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar16 + 6)" ( (binary_expression "(int)puVar16 + 6" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "local_34 = local_34 & 0xfffffff;" (assignment_expression "local_34 = local_34 & 0xfffffff" identifier = (binary_expression "local_34 & 0xfffffff" identifier & number_literal)) ;) (expression_statement "builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10);" (call_expression "builtin_strncpy((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10)" identifier (argument_list "((char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                          "<PROC specific>",0x10)" ( (cast_expression "(char *)((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)))" ( (binary_expression "(int)puVar17 +\n                                                  (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar6,(byte)uVar6)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar6,(byte)uVar6)" identifier (argument_list "((byte)uVar6,(byte)uVar6)" ( (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) ))) ))) , (string_literal ""<PROC specific>"" " string_content ") , number_literal ))) ;) (goto_statement "goto LAB_0002390e;" goto statement_identifier ;) })) (labeled_statement "LAB_00023a65:\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);" statement_identifier : (do_statement "do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);" do (compound_statement "{\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        }" { (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" identifier = identifier) ;) (expression_statement "uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;" (assignment_expression "uVar13 = *puVar16 + 0xfefefeff & ~*puVar16" identifier = (binary_expression "*puVar16 + 0xfefefeff & ~*puVar16" (binary_expression "*puVar16 + 0xfefefeff" (pointer_expression "*puVar16" * identifier) + number_literal) & (unary_expression "~*puVar16" ~ (pointer_expression "*puVar16" * identifier)))) ;) (expression_statement "uVar6 = uVar13 & 0x80808080;" (assignment_expression "uVar6 = uVar13 & 0x80808080" identifier = (binary_expression "uVar13 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar17 = puVar16 + 1;" (assignment_expression "puVar17 = puVar16 + 1" identifier = (binary_expression "puVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) ;)) (expression_statement "bVar21 = (uVar13 & 0x8080) == 0;" (assignment_expression "bVar21 = (uVar13 & 0x8080) == 0" identifier = (binary_expression "(uVar13 & 0x8080) == 0" (parenthesized_expression "(uVar13 & 0x8080)" ( (binary_expression "uVar13 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }" if (parenthesized_expression "(bVar21)" ( identifier )) (compound_statement "{\n                          uVar6 = uVar6 >> 0x10;\n                        }" { (expression_statement "uVar6 = uVar6 >> 0x10;" (assignment_expression "uVar6 = uVar6 >> 0x10" identifier = (binary_expression "uVar6 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar21) {\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }" if (parenthesized_expression "(bVar21)" ( identifier )) (compound_statement "{\n                          puVar17 = (uint *)((int)puVar16 + 6);\n                        }" { (expression_statement "puVar17 = (uint *)((int)puVar16 + 6);" (assignment_expression "puVar17 = (uint *)((int)puVar16 + 6)" identifier = (cast_expression "(uint *)((int)puVar16 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar16 + 6)" ( (binary_expression "(int)puVar16 + 6" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10);" (call_expression "builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10)" identifier (argument_list "((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<unknown>",10)" ( (cast_expression "(char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)))" ( (binary_expression "(int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar6,(byte)uVar6)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar6,(byte)uVar6)" identifier (argument_list "((byte)uVar6,(byte)uVar6)" ( (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) ))) ))) , (string_literal ""<unknown>"" " string_content ") , number_literal ))) ;) (expression_statement "puVar17 = (uint *)pcVar8;" (assignment_expression "puVar17 = (uint *)pcVar8" identifier = (cast_expression "(uint *)pcVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }" else (compound_statement "{\n                        do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);\n                        bVar21 = (uVar13 & 0x8080) == 0;\n                        if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                        if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }\n                        local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;\n                        builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);\n                        puVar17 = (uint *)pcVar8;\n                        if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;\nLAB_0002390e:\n                        puVar17 = (uint *)pcVar8;\n                        if (local_34 != 0) goto LAB_00023a65;\n                      }" { (do_statement "do {\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        } while (uVar6 == 0);" do (compound_statement "{\n                          puVar16 = puVar17;\n                          uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                          uVar6 = uVar13 & 0x80808080;\n                          puVar17 = puVar16 + 1;\n                        }" { (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" identifier = identifier) ;) (expression_statement "uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;" (assignment_expression "uVar13 = *puVar16 + 0xfefefeff & ~*puVar16" identifier = (binary_expression "*puVar16 + 0xfefefeff & ~*puVar16" (binary_expression "*puVar16 + 0xfefefeff" (pointer_expression "*puVar16" * identifier) + number_literal) & (unary_expression "~*puVar16" ~ (pointer_expression "*puVar16" * identifier)))) ;) (expression_statement "uVar6 = uVar13 & 0x80808080;" (assignment_expression "uVar6 = uVar13 & 0x80808080" identifier = (binary_expression "uVar13 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar17 = puVar16 + 1;" (assignment_expression "puVar17 = puVar16 + 1" identifier = (binary_expression "puVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) ;) (expression_statement "bVar21 = (uVar13 & 0x8080) == 0;" (assignment_expression "bVar21 = (uVar13 & 0x8080) == 0" identifier = (binary_expression "(uVar13 & 0x8080) == 0" (parenthesized_expression "(uVar13 & 0x8080)" ( (binary_expression "uVar13 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar21) {\n                          uVar6 = uVar6 >> 0x10;\n                        }" if (parenthesized_expression "(bVar21)" ( identifier )) (compound_statement "{\n                          uVar6 = uVar6 >> 0x10;\n                        }" { (expression_statement "uVar6 = uVar6 >> 0x10;" (assignment_expression "uVar6 = uVar6 >> 0x10" identifier = (binary_expression "uVar6 >> 0x10" identifier >> number_literal)) ;) })) (expression_statement "puVar17 = (uint *)((int)puVar16 + 6);" (assignment_expression "puVar17 = (uint *)((int)puVar16 + 6)" identifier = (cast_expression "(uint *)((int)puVar16 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar16 + 6)" ( (binary_expression "(int)puVar16 + 6" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (!bVar21) {\n                          puVar17 = puVar16 + 1;\n                        }" if (parenthesized_expression "(!bVar21)" ( (unary_expression "!bVar21" ! identifier) )) (compound_statement "{\n                          puVar17 = puVar16 + 1;\n                        }" { (expression_statement "puVar17 = puVar16 + 1;" (assignment_expression "puVar17 = puVar16 + 1" identifier = (binary_expression "puVar16 + 1" identifier + number_literal)) ;) })) (expression_statement "local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe;" (assignment_expression "local_34 = (uint)(elf_vma)eVar22 & 0xf00ffffe" identifier = (binary_expression "(uint)(elf_vma)eVar22 & 0xf00ffffe" (cast_expression "(uint)(elf_vma)eVar22" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(elf_vma)eVar22" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) & number_literal)) ;) (expression_statement "builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe);" (call_expression "builtin_strncpy((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe)" identifier (argument_list "((char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))),\n                                        "<OS specific>",0xe)" ( (cast_expression "(char *)((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)))" ( (binary_expression "(int)puVar17 +\n                                                (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar6,(byte)uVar6)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar6,(byte)uVar6)" identifier (argument_list "((byte)uVar6,(byte)uVar6)" ( (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) ))) ))) , (string_literal ""<OS specific>"" " string_content ") , number_literal ))) ;) (expression_statement "puVar17 = (uint *)pcVar8;" (assignment_expression "puVar17 = (uint *)pcVar8" identifier = (cast_expression "(uint *)pcVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (((uint)(elf_vma)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;" if (parenthesized_expression "(((uint)(elf_vma)eVar22 & 0xf0000000) != 0)" ( (binary_expression "((uint)(elf_vma)eVar22 & 0xf0000000) != 0" (parenthesized_expression "((uint)(elf_vma)eVar22 & 0xf0000000)" ( (binary_expression "(uint)(elf_vma)eVar22 & 0xf0000000" (cast_expression "(uint)(elf_vma)eVar22" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(elf_vma)eVar22" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000238bb;" goto statement_identifier ;)) (labeled_statement "LAB_0002390e:\n                        puVar17 = (uint *)pcVar8;" statement_identifier : (expression_statement "puVar17 = (uint *)pcVar8;" (assignment_expression "puVar17 = (uint *)pcVar8" identifier = (cast_expression "(uint *)pcVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if (local_34 != 0) goto LAB_00023a65;" if (parenthesized_expression "(local_34 != 0)" ( (binary_expression "local_34 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00023a65;" goto statement_identifier ;)) }))) (do_statement "do {\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      } while (uVar6 == 0);" do (compound_statement "{\n                        puVar16 = puVar17;\n                        uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;\n                        uVar6 = uVar13 & 0x80808080;\n                        puVar17 = puVar16 + 1;\n                      }" { (expression_statement "puVar16 = puVar17;" (assignment_expression "puVar16 = puVar17" identifier = identifier) ;) (expression_statement "uVar13 = *puVar16 + 0xfefefeff & ~*puVar16;" (assignment_expression "uVar13 = *puVar16 + 0xfefefeff & ~*puVar16" identifier = (binary_expression "*puVar16 + 0xfefefeff & ~*puVar16" (binary_expression "*puVar16 + 0xfefefeff" (pointer_expression "*puVar16" * identifier) + number_literal) & (unary_expression "~*puVar16" ~ (pointer_expression "*puVar16" * identifier)))) ;) (expression_statement "uVar6 = uVar13 & 0x80808080;" (assignment_expression "uVar6 = uVar13 & 0x80808080" identifier = (binary_expression "uVar13 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar17 = puVar16 + 1;" (assignment_expression "puVar17 = puVar16 + 1" identifier = (binary_expression "puVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) ;) (expression_statement "bVar21 = (uVar13 & 0x8080) == 0;" (assignment_expression "bVar21 = (uVar13 & 0x8080) == 0" identifier = (binary_expression "(uVar13 & 0x8080) == 0" (parenthesized_expression "(uVar13 & 0x8080)" ( (binary_expression "uVar13 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar21) {\n                        uVar6 = uVar6 >> 0x10;\n                      }" if (parenthesized_expression "(bVar21)" ( identifier )) (compound_statement "{\n                        uVar6 = uVar6 >> 0x10;\n                      }" { (expression_statement "uVar6 = uVar6 >> 0x10;" (assignment_expression "uVar6 = uVar6 >> 0x10" identifier = (binary_expression "uVar6 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar21) {\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }" if (parenthesized_expression "(bVar21)" ( identifier )) (compound_statement "{\n                        puVar17 = (uint *)((int)puVar16 + 6);\n                      }" { (expression_statement "puVar17 = (uint *)((int)puVar16 + 6);" (assignment_expression "puVar17 = (uint *)((int)puVar16 + 6)" identifier = (cast_expression "(uint *)((int)puVar16 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar16 + 6)" ( (binary_expression "(int)puVar16 + 6" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        );" (assignment_expression "pcVar12 = (char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        )" identifier = (cast_expression "(char *)((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))\n                                        )" ( (binary_expression "(int)puVar17 + (-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6))" ( (binary_expression "-3 - (uint)CARRY1((byte)uVar6,(byte)uVar6)" number_literal - (cast_expression "(uint)CARRY1((byte)uVar6,(byte)uVar6)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar6,(byte)uVar6)" identifier (argument_list "((byte)uVar6,(byte)uVar6)" ( (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) ))) )))) ;) (expression_statement "pcVar12[0] = ']';" (assignment_expression "pcVar12[0] = ']'" (subscript_expression "pcVar12[0]" identifier [ number_literal ]) = (char_literal "']'" ' character ')) ;) (expression_statement "pcVar12[1] = '\0';" (assignment_expression "pcVar12[1] = '\0'" (subscript_expression "pcVar12[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5);" (assignment_expression "pcVar12 = (char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5)" identifier (argument_list "(0,\n                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"\n                                                ,5)" ( number_literal , (string_literal ""\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"" " escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9);" (call_expression "printf(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9)" identifier (argument_list "(pcVar12,pcVar8,uVar19,pcVar7,local_44,iVar9)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"   [Index]    Name\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"   [Index]    Name\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"   [Index]    Name\n",5)" identifier (argument_list "(0,"   [Index]    Name\n",5)" ( number_literal , (string_literal ""   [Index]    Name\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) })) (expression_statement "local_6c->group_index = uVar19;" (assignment_expression "local_6c->group_index = uVar19" (field_expression "local_6c->group_index" identifier -> field_identifier) = identifier) ;) (if_statement "if (iVar9 != 0) {\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n                    iVar18 = 0;\n                    puVar20 = __ptr;\n                    do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);\n                  }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "puVar20 = __ptr;" (assignment_expression "puVar20 = __ptr" identifier = identifier) ;) (do_statement "do {\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    } while (iVar9 != iVar18);" do (compound_statement "{\n                      puVar20 = puVar20 + 4;\n                      eVar23._0_4_ = (*byte_get)(puVar20,4);\n                    /* WARNING: Load size is inaccurate */\n                      eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;\n                      if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }\nLAB_000235c3:\n                      iVar18 = iVar18 + 1;\n                    }" { (expression_statement "puVar20 = puVar20 + 4;" (assignment_expression "puVar20 = puVar20 + 4" identifier = (binary_expression "puVar20 + 4" identifier + number_literal)) ;) (expression_statement "eVar23._0_4_ = (*byte_get)(puVar20,4);" (assignment_expression "eVar23._0_4_ = (*byte_get)(puVar20,4)" (field_expression "eVar23._0_4_" identifier . field_identifier) = (call_expression "(*byte_get)(puVar20,4)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(puVar20,4)" ( identifier , number_literal )))) ;) comment (expression_statement "eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum;" (assignment_expression "eVar22._0_4_ = *(elf_vma *)&(filedata->file_header).e_shnum" (field_expression "eVar22._0_4_" identifier . field_identifier) = (pointer_expression "*(elf_vma *)&(filedata->file_header).e_shnum" * (cast_expression "(elf_vma *)&(filedata->file_header).e_shnum" ( (type_descriptor "elf_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(filedata->file_header).e_shnum" & (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier))))) ;) (if_statement "if ((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22) {\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }\n                      else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }" if (parenthesized_expression "((uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22)" ( (binary_expression "(uint)(elf_vma)eVar23 < (uint)(elf_vma)eVar22" (cast_expression "(uint)(elf_vma)eVar23" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(elf_vma)eVar23" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) < (cast_expression "(uint)(elf_vma)eVar22" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(elf_vma)eVar22" ( (type_descriptor "elf_vma" type_identifier) ) identifier))) )) (compound_statement "{\n                        ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;\n                        pgVar3 = *ppgVar10;\n                        if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }\n                        *ppgVar10 = local_6c;\n                        if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }\n                        pgVar11 = (group_list *)xmalloc(8);\n                    /* WARNING: Store size is inaccurate */\n                        *(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;\n                        pgVar4 = local_6c->root;\n                        local_6c->root = pgVar11;\n                        pgVar11->next = pgVar4;\n                      }" { (expression_statement "ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23;" (assignment_expression "ppgVar10 = section_headers_groups + (int)(elf_vma)eVar23" identifier = (binary_expression "section_headers_groups + (int)(elf_vma)eVar23" identifier + (cast_expression "(int)(elf_vma)eVar23" ( (type_descriptor "int" primitive_type) ) (cast_expression "(elf_vma)eVar23" ( (type_descriptor "elf_vma" type_identifier) ) identifier)))) ;) (expression_statement "pgVar3 = *ppgVar10;" (assignment_expression "pgVar3 = *ppgVar10" identifier = (pointer_expression "*ppgVar10" * identifier)) ;) (if_statement "if (pgVar3 != (group *)0x0) {\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }" if (parenthesized_expression "(pgVar3 != (group *)0x0)" ( (binary_expression "pgVar3 != (group *)0x0" identifier != (cast_expression "(group *)0x0" ( (type_descriptor "group *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }\n                        }" { (if_statement "if ((elf_vma)eVar23 != 0) {\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }" if (parenthesized_expression "((elf_vma)eVar23 != 0)" ( (binary_expression "(elf_vma)eVar23 != 0" (cast_expression "(elf_vma)eVar23" ( (type_descriptor "elf_vma" type_identifier) ) identifier) != number_literal) )) (compound_statement "{\n                            uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;\n                            bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;\n                            if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }\n                            goto LAB_000235c3;\n                          }" { (ERROR "uVar6 = process_section_groups::" (assignment_expression "uVar6 = process_section_groups" identifier = identifier) : :) (labeled_statement "lexical_block_10::lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10_9::\n                                    lexical_block_10_9_2::num_errs + 1;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10_9_2::num_errs + 1;" statement_identifier : (ERROR ":" :) (expression_statement "num_errs + 1;" (binary_expression "num_errs + 1" identifier + number_literal) ;)))) (ERROR "bVar21 = process_section_groups::" (assignment_expression "bVar21 = process_section_groups" identifier = identifier) : :) (labeled_statement "lexical_block_10::lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10_9::\n                                     lexical_block_10_9_2::num_errs < 10;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10_9_2::num_errs < 10;" statement_identifier : (ERROR ":" :) (expression_statement "num_errs < 10;" (binary_expression "num_errs < 10" identifier < number_literal) ;)))) (labeled_statement "process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10_9::\n                            lexical_block_10_9_2::num_errs = uVar6;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10_9_2::num_errs = uVar6;" statement_identifier : (ERROR ":" :) (expression_statement "num_errs = uVar6;" (assignment_expression "num_errs = uVar6" identifier = identifier) ;))))) (if_statement "if (bVar21) {\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }" if (parenthesized_expression "(bVar21)" ( identifier )) (compound_statement "{\n                              uVar6 = pgVar3->group_index;\n                              pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);\n                              error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);\n                              if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }\n                            }" { (expression_statement "uVar6 = pgVar3->group_index;" (assignment_expression "uVar6 = pgVar3->group_index" identifier = (field_expression "pgVar3->group_index" identifier -> field_identifier)) ;) (expression_statement "pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5)" identifier (argument_list "(0,\n                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"\n                                                  ,5)" ( number_literal , (string_literal ""section [%5u] in group section [%5u] already in group section [%5u]\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6);" (call_expression "error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6)" identifier (argument_list "(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,uVar6)" ( identifier , (cast_expression "(undefined4)(elf_vma)eVar23" ( (type_descriptor "undefined4" type_identifier) ) (cast_expression "(elf_vma)eVar23" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) , identifier , identifier ))) ;) (if_statement "if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10) {\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }" if (parenthesized_expression "(process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::num_errs == 10)" ( (ERROR "process_section_groups::lexical_block_10::lexical_block_10_9::\n                                  lexical_block_10_9_2::" identifier : : identifier : : identifier : : identifier : :) (binary_expression "num_errs == 10" identifier == number_literal) )) (compound_statement "{\n                                pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;\n                                goto LAB_000236dd;\n                              }" { (expression_statement "pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"\n                                ;" (assignment_expression "pcVar7 = \n                                "Further error messages about already contained group sections suppressed\n"" identifier = (string_literal ""Further error messages about already contained group sections suppressed\n"" " string_content escape_sequence ")) ;) (goto_statement "goto LAB_000236dd;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_000235c3;" goto statement_identifier ;) })) (if_statement "if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0) {\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }" if (parenthesized_expression "(process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::warned == 0)" ( (ERROR "process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_3::" identifier : : identifier : : identifier : : identifier : :) (binary_expression "warned == 0" identifier == number_literal) )) (compound_statement "{\n                            uVar6 = pgVar3->group_index;\n                            pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);\n                            error(pcVar7,uVar6);\n                            process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;\n                            ppgVar10 = section_headers_groups;\n                          }" { (expression_statement "uVar6 = pgVar3->group_index;" (assignment_expression "uVar6 = pgVar3->group_index" identifier = (field_expression "pgVar3->group_index" identifier -> field_identifier)) ;) (expression_statement "pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"section 0 in group section [%5u]\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"section 0 in group section [%5u]\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"section 0 in group section [%5u]\n",5)" identifier (argument_list "(0,"section 0 in group section [%5u]\n",5)" ( number_literal , (string_literal ""section 0 in group section [%5u]\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar7,uVar6);" (call_expression "error(pcVar7,uVar6)" identifier (argument_list "(pcVar7,uVar6)" ( identifier , identifier ))) ;) (labeled_statement "process_section_groups::lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10::lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10_9::\n                            lexical_block_10_9_3::warned = 1;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10_9_3::warned = 1;" statement_identifier : (ERROR ":" :) (expression_statement "warned = 1;" (assignment_expression "warned = 1" identifier = number_literal) ;))))) (expression_statement "ppgVar10 = section_headers_groups;" (assignment_expression "ppgVar10 = section_headers_groups" identifier = identifier) ;) })) })) (expression_statement "*ppgVar10 = local_6c;" (assignment_expression "*ppgVar10 = local_6c" (pointer_expression "*ppgVar10" * identifier) = identifier) ;) (if_statement "if (do_section_groups != 0) {\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }" if (parenthesized_expression "(do_section_groups != 0)" ( (binary_expression "do_section_groups != 0" identifier != number_literal) )) (compound_statement "{\n                          pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));\n                          printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);\n                        }" { (expression_statement "pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23));" (assignment_expression "pcVar7 = printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23))" identifier = (call_expression "printable_section_name\n                                             ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23))" identifier (argument_list "((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,\n                                              (Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23))" ( (cast_expression "(Filedata *)filedata_00" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Elf_Internal_Shdr *)sec" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Filedata *)\n                                              (filedata->section_headers + (int)(elf_vma)eVar23)" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(filedata->section_headers + (int)(elf_vma)eVar23)" ( (binary_expression "filedata->section_headers + (int)(elf_vma)eVar23" (field_expression "filedata->section_headers" identifier -> field_identifier) + (cast_expression "(int)(elf_vma)eVar23" ( (type_descriptor "int" primitive_type) ) (cast_expression "(elf_vma)eVar23" ( (type_descriptor "elf_vma" type_identifier) ) identifier))) ))) )))) ;) (expression_statement "printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7);" (call_expression "printf("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7)" identifier (argument_list "("   [%5u]   %s\n",(undefined4)(elf_vma)eVar23,pcVar7)" ( (string_literal ""   [%5u]   %s\n"" " string_content escape_sequence ") , (cast_expression "(undefined4)(elf_vma)eVar23" ( (type_descriptor "undefined4" type_identifier) ) (cast_expression "(elf_vma)eVar23" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) , identifier ))) ;) })) (expression_statement "pgVar11 = (group_list *)xmalloc(8);" (assignment_expression "pgVar11 = (group_list *)xmalloc(8)" identifier = (cast_expression "(group_list *)xmalloc(8)" ( (type_descriptor "group_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(8)" identifier (argument_list "(8)" ( number_literal ))))) ;) comment (expression_statement "*(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23;" (assignment_expression "*(elf_vma *)&pgVar11->section_index = (elf_vma)eVar23" (pointer_expression "*(elf_vma *)&pgVar11->section_index" * (cast_expression "(elf_vma *)&pgVar11->section_index" ( (type_descriptor "elf_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pgVar11->section_index" & (field_expression "pgVar11->section_index" identifier -> field_identifier)))) = (cast_expression "(elf_vma)eVar23" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) ;) (expression_statement "pgVar4 = local_6c->root;" (assignment_expression "pgVar4 = local_6c->root" identifier = (field_expression "local_6c->root" identifier -> field_identifier)) ;) (expression_statement "local_6c->root = pgVar11;" (assignment_expression "local_6c->root = pgVar11" (field_expression "local_6c->root" identifier -> field_identifier) = identifier) ;) (expression_statement "pgVar11->next = pgVar4;" (assignment_expression "pgVar11->next = pgVar4" (field_expression "pgVar11->next" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }" else (compound_statement "{\n                        uVar6 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;\n                        bVar21 = process_section_groups::lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;\n                        process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;\n                        if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }\n                      }" { (ERROR "uVar6 = process_section_groups::" (assignment_expression "uVar6 = process_section_groups" identifier = identifier) : :) (labeled_statement "lexical_block_10::lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10_9::\n                                lexical_block_10_9_1::num_group_errors + 1;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10_9_1::num_group_errors + 1;" statement_identifier : (ERROR ":" :) (expression_statement "num_group_errors + 1;" (binary_expression "num_group_errors + 1" identifier + number_literal) ;)))) (ERROR "bVar21 = process_section_groups::" (assignment_expression "bVar21 = process_section_groups" identifier = identifier) : :) (labeled_statement "lexical_block_10::lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10_9::\n                                 lexical_block_10_9_1::num_group_errors < 10;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10_9_1::num_group_errors < 10;" statement_identifier : (ERROR ":" :) (expression_statement "num_group_errors < 10;" (binary_expression "num_group_errors < 10" identifier < number_literal) ;)))) (labeled_statement "process_section_groups::lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10::lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10_9::\n                        lexical_block_10_9_1::num_group_errors = uVar6;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10_9_1::num_group_errors = uVar6;" statement_identifier : (ERROR ":" :) (expression_statement "num_group_errors = uVar6;" (assignment_expression "num_group_errors = uVar6" identifier = identifier) ;))))) (if_statement "if (bVar21) {\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }" if (parenthesized_expression "(bVar21)" ( identifier )) (compound_statement "{\n                          pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);\n                          error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);\n                          if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }\n                        }" { (expression_statement "pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5)" identifier (argument_list "(0,\n                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"\n                                                  ,5)" ( number_literal , (string_literal ""section [%5u] in group section [%5u] > maximum section [%5u]\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1);" (call_expression "error(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1)" identifier (argument_list "(pcVar7,(undefined4)(elf_vma)eVar23,uVar19,(int)(elf_vma)eVar22 - 1)" ( identifier , (cast_expression "(undefined4)(elf_vma)eVar23" ( (type_descriptor "undefined4" type_identifier) ) (cast_expression "(elf_vma)eVar23" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) , identifier , (binary_expression "(int)(elf_vma)eVar22 - 1" (cast_expression "(int)(elf_vma)eVar22" ( (type_descriptor "int" primitive_type) ) (cast_expression "(elf_vma)eVar22" ( (type_descriptor "elf_vma" type_identifier) ) identifier)) - number_literal) ))) ;) (if_statement "if (process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10) {\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }" if (parenthesized_expression "(process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::num_group_errors == 10)" ( (ERROR "process_section_groups::lexical_block_10::lexical_block_10_9::\n                              lexical_block_10_9_1::" identifier : : identifier : : identifier : : identifier : :) (binary_expression "num_group_errors == 10" identifier == number_literal) )) (compound_statement "{\n                            pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;\nLAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);\n                            warn(pcVar7);\n                          }" { (expression_statement "pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"\n                            ;" (assignment_expression "pcVar7 = \n                            "Further error messages about overlarge group section indicies suppressed\n"" identifier = (string_literal ""Further error messages about overlarge group section indicies suppressed\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_000236dd:\n                            pcVar7 = (char *)dcgettext(0,pcVar7,5);" statement_identifier : (expression_statement "pcVar7 = (char *)dcgettext(0,pcVar7,5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,pcVar7,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar7,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar7,5)" identifier (argument_list "(0,pcVar7,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "warn(pcVar7);" (call_expression "warn(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) })) })) }))) (labeled_statement "LAB_000235c3:\n                      iVar18 = iVar18 + 1;" statement_identifier : (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(iVar9 != iVar18)" ( (binary_expression "iVar9 != iVar18" identifier != identifier) )) ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "local_6c = local_6c + 1;" (assignment_expression "local_6c = local_6c + 1" identifier = (binary_expression "local_6c + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00023170;" goto statement_identifier ;) })) (expression_statement "pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1);" (assignment_expression "pcVar7 = printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1)" identifier = (call_expression "printable_section_name\n                                   ((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1)" identifier (argument_list "((Filedata *)filedata_00,(Elf_Internal_Shdr *)sec,filedata_1)" ( (cast_expression "(Filedata *)filedata_00" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Elf_Internal_Shdr *)sec" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5)" identifier (argument_list "(0,\n                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"\n                                           ,5)" ( number_literal , (string_literal ""Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar8,pcVar7,uVar6,uVar13);" (call_expression "error(pcVar8,pcVar7,uVar6,uVar13)" identifier (argument_list "(pcVar8,pcVar7,uVar6,uVar13)" ( identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_00023378;" goto statement_identifier ;) })) (labeled_statement "LAB_000233d0:\n              pcVar8 = "Bad sh_info in group section `%s\'\n";" statement_identifier : (expression_statement "pcVar8 = "Bad sh_info in group section `%s\'\n";" (assignment_expression "pcVar8 = "Bad sh_info in group section `%s\'\n"" identifier = (string_literal ""Bad sh_info in group section `%s\'\n"" " string_content escape_sequence escape_sequence ")) ;)) }))) (expression_statement "pcVar8 = (char *)dcgettext(0,pcVar8,5);" (assignment_expression "pcVar8 = (char *)dcgettext(0,pcVar8,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar8,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar8,5)" identifier (argument_list "(0,pcVar8,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "error(pcVar8,pcVar7);" (call_expression "error(pcVar8,pcVar7)" identifier (argument_list "(pcVar8,pcVar7)" ( identifier , identifier ))) ;) })) (labeled_statement "LAB_00023170:\n          uVar19 = uVar19 + 1;" statement_identifier : (expression_statement "uVar19 = uVar19 + 1;" (assignment_expression "uVar19 = uVar19 + 1" identifier = (binary_expression "uVar19 + 1" identifier + number_literal)) ;)) (expression_statement "filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize;" (assignment_expression "filedata_1 = (Filedata *)&(filedata_1->file_header).e_phentsize" identifier = (cast_expression "(Filedata *)&(filedata_1->file_header).e_phentsize" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(filedata_1->file_header).e_phentsize" & (field_expression "(filedata_1->file_header).e_phentsize" (parenthesized_expression "(filedata_1->file_header)" ( (field_expression "filedata_1->file_header" identifier -> field_identifier) )) . field_identifier)))) ;) (if_statement "if ((filedata->file_header).e_shnum <= uVar19) {\nLAB_00023370:\n            if (local_70 != (Elf_Internal_Sym *)0x0) {\nLAB_00023378:\n              free(local_70);\n            }\n            if (local_58 == (Elf_Internal_Shdr *)0x0) {\n              return 1;\n            }\n            free(local_58);\n            return 1;\n          }" if (parenthesized_expression "((filedata->file_header).e_shnum <= uVar19)" ( (binary_expression "(filedata->file_header).e_shnum <= uVar19" (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier) <= identifier) )) (compound_statement "{\nLAB_00023370:\n            if (local_70 != (Elf_Internal_Sym *)0x0) {\nLAB_00023378:\n              free(local_70);\n            }\n            if (local_58 == (Elf_Internal_Shdr *)0x0) {\n              return 1;\n            }\n            free(local_58);\n            return 1;\n          }" { (labeled_statement "LAB_00023370:\n            if (local_70 != (Elf_Internal_Sym *)0x0) {\nLAB_00023378:\n              free(local_70);\n            }" statement_identifier : (if_statement "if (local_70 != (Elf_Internal_Sym *)0x0) {\nLAB_00023378:\n              free(local_70);\n            }" if (parenthesized_expression "(local_70 != (Elf_Internal_Sym *)0x0)" ( (binary_expression "local_70 != (Elf_Internal_Sym *)0x0" identifier != (cast_expression "(Elf_Internal_Sym *)0x0" ( (type_descriptor "Elf_Internal_Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00023378:\n              free(local_70);\n            }" { (labeled_statement "LAB_00023378:\n              free(local_70);" statement_identifier : (expression_statement "free(local_70);" (call_expression "free(local_70)" identifier (argument_list "(local_70)" ( identifier ))) ;)) }))) (if_statement "if (local_58 == (Elf_Internal_Shdr *)0x0) {\n              return 1;\n            }" if (parenthesized_expression "(local_58 == (Elf_Internal_Shdr *)0x0)" ( (binary_expression "local_58 == (Elf_Internal_Shdr *)0x0" identifier == (cast_expression "(Elf_Internal_Shdr *)0x0" ( (type_descriptor "Elf_Internal_Shdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              return 1;\n            }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "free(local_58);" (call_expression "free(local_58)" identifier (argument_list "(local_58)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (if_statement "if (do_section_groups == 0) {\n        return 1;\n      }" if (parenthesized_expression "(do_section_groups == 0)" ( (binary_expression "do_section_groups == 0" identifier == number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar7 = "\nThere are no section groups in this file.\n";" (assignment_expression "pcVar7 = "\nThere are no section groups in this file.\n"" identifier = (string_literal ""\nThere are no section groups in this file.\n"" " escape_sequence string_content escape_sequence ")) ;) (goto_statement "goto LAB_000232cb;" goto statement_identifier ;) })) }) (else_clause "else {\n    uVar19 = (filedata->file_header).e_shnum;\n    if (uVar19 != 0) goto LAB_0002308b;\n    if (do_section_groups == 0) {\n      return 1;\n    }\n  }" else (compound_statement "{\n    uVar19 = (filedata->file_header).e_shnum;\n    if (uVar19 != 0) goto LAB_0002308b;\n    if (do_section_groups == 0) {\n      return 1;\n    }\n  }" { (expression_statement "uVar19 = (filedata->file_header).e_shnum;" (assignment_expression "uVar19 = (filedata->file_header).e_shnum" identifier = (field_expression "(filedata->file_header).e_shnum" (parenthesized_expression "(filedata->file_header)" ( (field_expression "filedata->file_header" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (uVar19 != 0) goto LAB_0002308b;" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002308b;" goto statement_identifier ;)) (if_statement "if (do_section_groups == 0) {\n      return 1;\n    }" if (parenthesized_expression "(do_section_groups == 0)" ( (binary_expression "do_section_groups == 0" identifier == number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }))) (expression_statement "pcVar7 = "\nThere are no sections to group in this file.\n";" (assignment_expression "pcVar7 = "\nThere are no sections to group in this file.\n"" identifier = (string_literal ""\nThere are no sections to group in this file.\n"" " escape_sequence string_content escape_sequence ")) ;) (labeled_statement "LAB_000232cb:\n  pcVar7 = (char *)dcgettext(0,pcVar7,5);" statement_identifier : (expression_statement "pcVar7 = (char *)dcgettext(0,pcVar7,5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,pcVar7,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar7,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar7,5)" identifier (argument_list "(0,pcVar7,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "printf(pcVar7);" (call_expression "printf(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "undefined4 __regparm3 FUN_00023050(int param_1)\n\n{\n  bool bVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined4 uVar5;\n  size_t __nmemb;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  void *local_70;\n  int local_60;\n  \n  if (DAT_000b634c == 0) {\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) {\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }\n  }\n  else {\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) goto LAB_0002308b;\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n  }\n  pcVar4 = "\nThere are no sections to group in this file.\n";\nLAB_000232cb:\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  printf(pcVar4);\n  return 1;\n}\n\n" (function_definition "undefined4 __regparm3 FUN_00023050(int param_1)\n\n{\n  bool bVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined4 uVar5;\n  size_t __nmemb;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  void *local_70;\n  int local_60;\n  \n  if (DAT_000b634c == 0) {\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) {\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }\n  }\n  else {\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) goto LAB_0002308b;\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n  }\n  pcVar4 = "\nThere are no sections to group in this file.\n";\nLAB_000232cb:\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  printf(pcVar4);\n  return 1;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00023050(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  bool bVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined4 uVar5;\n  size_t __nmemb;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  void *local_70;\n  int local_60;\n  \n  if (DAT_000b634c == 0) {\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) {\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }\n  }\n  else {\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) goto LAB_0002308b;\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n  }\n  pcVar4 = "\nThere are no sections to group in this file.\n";\nLAB_000232cb:\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  printf(pcVar4);\n  return 1;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "size_t __nmemb;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "void *local_70;" primitive_type (pointer_declarator "*local_70" * identifier) ;) (declaration "int local_60;" primitive_type identifier ;) (if_statement "if (DAT_000b634c == 0) {\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) {\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }\n  }\n  else {\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) goto LAB_0002308b;\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n  }" if (parenthesized_expression "(DAT_000b634c == 0)" ( (binary_expression "DAT_000b634c == 0" identifier == number_literal) )) (compound_statement "{\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) {\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }\n  }" { (if_statement "if (DAT_000b6358 == 0) {\n      return 1;\n    }" if (parenthesized_expression "(DAT_000b6358 == 0)" ( (binary_expression "DAT_000b6358 == 0" identifier == number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar7 = *(uint *)(param_1 + 0x54);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0x54)" identifier = (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (uVar7 != 0) {\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }" { (labeled_statement "LAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);" statement_identifier : (expression_statement "iVar8 = *(int *)(param_1 + 0x5c);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x5c)" identifier = (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;)) (if_statement "if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }" { (expression_statement "uVar3 = dcgettext(0,"Section headers are not available!\n",5);" (assignment_expression "uVar3 = dcgettext(0,"Section headers are not available!\n",5)" identifier = (call_expression "dcgettext(0,"Section headers are not available!\n",5)" identifier (argument_list "(0,"Section headers are not available!\n",5)" ( number_literal , (string_literal ""Section headers are not available!\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar3);" (call_expression "error(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "DAT_000b6314 = calloc(uVar7,4);" (assignment_expression "DAT_000b6314 = calloc(uVar7,4)" identifier = (call_expression "calloc(uVar7,4)" identifier (argument_list "(uVar7,4)" ( identifier , number_literal )))) ;) (if_statement "if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }" if (parenthesized_expression "(DAT_000b6314 == (void *)0x0)" ( (binary_expression "DAT_000b6314 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }" { (expression_statement "uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);" (assignment_expression "uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5)" identifier = (call_expression "dcgettext(0,"Out of memory reading %u section group headers\n",5)" identifier (argument_list "(0,"Out of memory reading %u section group headers\n",5)" ( number_literal , (string_literal ""Out of memory reading %u section group headers\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar3,uVar7);" (call_expression "error(uVar3,uVar7)" identifier (argument_list "(uVar3,uVar7)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "DAT_000b631c = 0;" (assignment_expression "DAT_000b631c = 0" identifier = number_literal) ;) (expression_statement "__nmemb = 0;" (assignment_expression "__nmemb = 0" identifier = number_literal) ;) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "iVar6 = iVar8;" (assignment_expression "iVar6 = iVar8" identifier = identifier) ;) (do_statement "do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);" do (compound_statement "{\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      }" { (if_statement "if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }" if (parenthesized_expression "(*(int *)(iVar6 + 4) == 0x11)" ( (binary_expression "*(int *)(iVar6 + 4) == 0x11" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "__nmemb = __nmemb + 1;" (assignment_expression "__nmemb = __nmemb + 1" identifier = (binary_expression "__nmemb + 1" identifier + number_literal)) ;) })) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" identifier = (binary_expression "uVar2 + 1" identifier + number_literal)) ;) (expression_statement "iVar6 = iVar6 + 0x48;" (assignment_expression "iVar6 = iVar6 + 0x48" identifier = (binary_expression "iVar6 + 0x48" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar2 < uVar7)" ( (binary_expression "uVar2 < uVar7" identifier < identifier) )) ;) (if_statement "if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }" if (parenthesized_expression "((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0))" ( (binary_expression "(bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)" (parenthesized_expression "(bVar1)" ( identifier )) && (parenthesized_expression "(DAT_000b631c = __nmemb, __nmemb != 0)" ( (comma_expression "DAT_000b631c = __nmemb, __nmemb != 0" (assignment_expression "DAT_000b631c = __nmemb" identifier = identifier) , (binary_expression "__nmemb != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }" { (expression_statement "DAT_000b6318 = calloc(__nmemb,8);" (assignment_expression "DAT_000b6318 = calloc(__nmemb,8)" identifier = (call_expression "calloc(__nmemb,8)" identifier (argument_list "(__nmemb,8)" ( identifier , number_literal )))) ;) (if_statement "if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }" if (parenthesized_expression "(DAT_000b6318 == (void *)0x0)" ( (binary_expression "DAT_000b6318 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }" { (expression_statement "uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);" (assignment_expression "uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5)" identifier = (call_expression "dcgettext(0,"Out of memory reading %lu groups\n",5)" identifier (argument_list "(0,"Out of memory reading %lu groups\n",5)" ( number_literal , (string_literal ""Out of memory reading %lu groups\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar3,__nmemb);" (call_expression "error(uVar3,__nmemb)" identifier (argument_list "(uVar3,__nmemb)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "local_70 = (void *)0x0;" (assignment_expression "local_70 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );" statement_identifier : (do_statement "do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );" do (compound_statement "{\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        }" { (if_statement "if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }" if (parenthesized_expression "(*(int *)(iVar8 + 4) == 0x11)" ( (binary_expression "*(int *)(iVar8 + 4) == 0x11" (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }" { (expression_statement "uVar3 = FUN_00022190();" (assignment_expression "uVar3 = FUN_00022190()" identifier = (call_expression "FUN_00022190()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }" if (parenthesized_expression "((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2))" ( (binary_expression "(*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)" (parenthesized_expression "(*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28))" ( (binary_expression "*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)" (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(iVar8 + 0x28)" * (cast_expression "(uint *)(iVar8 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x28)" ( (binary_expression "iVar8 + 0x28" identifier + number_literal) ))))) )) || (parenthesized_expression "(iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)" ( (comma_expression "iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2" (assignment_expression "iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48" identifier = (binary_expression "*(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48" (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) + (binary_expression "*(uint *)(iVar8 + 0x28) * 0x48" (pointer_expression "*(uint *)(iVar8 + 0x28)" * (cast_expression "(uint *)(iVar8 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x28)" ( (binary_expression "iVar8 + 0x28" identifier + number_literal) )))) * number_literal))) , (binary_expression "*(int *)(iVar6 + 4) != 2" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) != number_literal)) ))) )) (compound_statement "{\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }" { (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = iVar8 + 0x48;" (assignment_expression "iVar8 = iVar8 + 0x48" identifier = (binary_expression "iVar8 + 0x48" identifier + number_literal)) ;) (expression_statement "uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);" (assignment_expression "uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5)" identifier = (call_expression "dcgettext(0,"Bad sh_link in group section `%s\'\n",5)" identifier (argument_list "(0,"Bad sh_link in group section `%s\'\n",5)" ( number_literal , (string_literal ""Bad sh_link in group section `%s\'\n"" " string_content escape_sequence escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar5,uVar3);" (call_expression "error(uVar5,uVar3)" identifier (argument_list "(uVar5,uVar3)" ( identifier , identifier ))) ;) (if_statement "if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;" if (parenthesized_expression "(*(uint *)(param_1 + 0x54) <= uVar7)" ( (binary_expression "*(uint *)(param_1 + 0x54) <= uVar7" (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) <= identifier) )) (goto_statement "goto LAB_00023370;" goto statement_identifier ;)) (goto_statement "goto LAB_0002317f;" goto statement_identifier ;) })) (if_statement "if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }" if (parenthesized_expression "(iVar6 != local_60)" ( (binary_expression "iVar6 != local_60" identifier != identifier) )) (compound_statement "{\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }" { (if_statement "if (local_70 != (void *)0x0) {\n                free(local_70);\n              }" if (parenthesized_expression "(local_70 != (void *)0x0)" ( (binary_expression "local_70 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                free(local_70);\n              }" { (expression_statement "free(local_70);" (call_expression "free(local_70)" identifier (argument_list "(local_70)" ( identifier ))) ;) })) (if_statement "if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }" if (parenthesized_expression "(DAT_000b6324 == 0)" ( (binary_expression "DAT_000b6324 == 0" identifier == number_literal) )) (compound_statement "{\n                local_70 = (void *)FUN_00022830();\n              }" { (expression_statement "local_70 = (void *)FUN_00022830();" (assignment_expression "local_70 = (void *)FUN_00022830()" identifier = (cast_expression "(void *)FUN_00022830()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00022830()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else {\n                local_70 = (void *)FUN_000222e0();\n              }" else (compound_statement "{\n                local_70 = (void *)FUN_000222e0();\n              }" { (expression_statement "local_70 = (void *)FUN_000222e0();" (assignment_expression "local_70 = (void *)FUN_000222e0()" identifier = (cast_expression "(void *)FUN_000222e0()" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000222e0()" identifier (argument_list "()" ( ))))) ;) }))) })) (if_statement "if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }" if (parenthesized_expression "(local_70 == (void *)0x0)" ( (binary_expression "local_70 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }" { (expression_statement "pcVar4 = "Corrupt header in group section `%s\'\n";" (assignment_expression "pcVar4 = "Corrupt header in group section `%s\'\n"" identifier = (string_literal ""Corrupt header in group section `%s\'\n"" " string_content escape_sequence escape_sequence ")) ;) }) (else_clause "else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }" else (compound_statement "{\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }" { (expression_statement "pcVar4 = "Bad sh_info in group section `%s\'\n";" (assignment_expression "pcVar4 = "Bad sh_info in group section `%s\'\n"" identifier = (string_literal ""Bad sh_info in group section `%s\'\n"" " string_content escape_sequence escape_sequence ")) ;) }))) (expression_statement "uVar5 = dcgettext(0,pcVar4,5);" (assignment_expression "uVar5 = dcgettext(0,pcVar4,5)" identifier = (call_expression "dcgettext(0,pcVar4,5)" identifier (argument_list "(0,pcVar4,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "error(uVar5,uVar3);" (call_expression "error(uVar5,uVar3)" identifier (argument_list "(uVar5,uVar3)" ( identifier , identifier ))) ;) (expression_statement "local_60 = iVar6;" (assignment_expression "local_60 = iVar6" identifier = identifier) ;) })) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = iVar8 + 0x48;" (assignment_expression "iVar8 = iVar8 + 0x48" identifier = (binary_expression "iVar8 + 0x48" identifier + number_literal)) ;) (if_statement "if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }" if (parenthesized_expression "(*(uint *)(param_1 + 0x54) <= uVar7)" ( (binary_expression "*(uint *)(param_1 + 0x54) <= uVar7" (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) <= identifier) )) (compound_statement "{\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }" { (labeled_statement "LAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }" statement_identifier : (if_statement "if (local_70 == (void *)0x0) {\n              return 1;\n            }" if (parenthesized_expression "(local_70 == (void *)0x0)" ( (binary_expression "local_70 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              return 1;\n            }" { (return_statement "return 1;" return number_literal ;) }))) (expression_statement "free(local_70);" (call_expression "free(local_70)" identifier (argument_list "(local_70)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (if_statement "if (DAT_000b6358 == 0) {\n        return 1;\n      }" if (parenthesized_expression "(DAT_000b6358 == 0)" ( (binary_expression "DAT_000b6358 == 0" identifier == number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar4 = "\nThere are no section groups in this file.\n";" (assignment_expression "pcVar4 = "\nThere are no section groups in this file.\n"" identifier = (string_literal ""\nThere are no section groups in this file.\n"" " escape_sequence string_content escape_sequence ")) ;) (goto_statement "goto LAB_000232cb;" goto statement_identifier ;) })) }) (else_clause "else {\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) goto LAB_0002308b;\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n  }" else (compound_statement "{\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) goto LAB_0002308b;\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n  }" { (expression_statement "uVar7 = *(uint *)(param_1 + 0x54);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0x54)" identifier = (pointer_expression "*(uint *)(param_1 + 0x54)" * (cast_expression "(uint *)(param_1 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (uVar7 != 0) goto LAB_0002308b;" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002308b;" goto statement_identifier ;)) (if_statement "if (DAT_000b6358 == 0) {\n      return 1;\n    }" if (parenthesized_expression "(DAT_000b6358 == 0)" ( (binary_expression "DAT_000b6358 == 0" identifier == number_literal) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }))) (expression_statement "pcVar4 = "\nThere are no sections to group in this file.\n";" (assignment_expression "pcVar4 = "\nThere are no sections to group in this file.\n"" identifier = (string_literal ""\nThere are no sections to group in this file.\n"" " escape_sequence string_content escape_sequence ")) ;) (labeled_statement "LAB_000232cb:\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);" statement_identifier : (expression_statement "pcVar4 = (char *)dcgettext(0,pcVar4,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,pcVar4,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar4,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar4,5)" identifier (argument_list "(0,pcVar4,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "printf(pcVar4);" (call_expression "printf(pcVar4)" identifier (argument_list "(pcVar4)" ( identifier ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (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 = LIT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_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 *)) ) (call_expression IDENT (argument_list ( ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence escape_sequence ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence escape_sequence ")) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) }) while (parenthesized_expression ( BOOL )) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (string_literal " escape_sequence string_content escape_sequence ")) ;) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) }))) (expression_statement (assignment_expression IDENT = (string_literal " escape_sequence string_content escape_sequence ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , IDENT , LIT ))))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 __regparm3 FUN_00023050(int param_1)\n\n{\n  bool bVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined4 uVar5;\n  size_t __nmemb;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  void *local_70;\n  int local_60;\n  \n  if (DAT_000b634c == 0) {\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) {\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }\n  }\n  else {\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) goto LAB_0002308b;\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n  }\n  pcVar4 = "\nThere are no sections to group in this file.\n";\nLAB_000232cb:\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  printf(pcVar4);\n  return 1;\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00023050(int param_1)" (identifier "FUN_00023050") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  bool bVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  undefined4 uVar5;\n  size_t __nmemb;\n  int iVar6;\n  uint uVar7;\n  int iVar8;\n  void *local_70;\n  int local_60;\n  \n  if (DAT_000b634c == 0) {\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) {\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }\n  }\n  else {\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) goto LAB_0002308b;\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n  }\n  pcVar4 = "\nThere are no sections to group in this file.\n";\nLAB_000232cb:\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);\n  printf(pcVar4);\n  return 1;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "size_t __nmemb;" (primitive_type "size_t") (identifier "__nmemb") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "void *local_70;" (primitive_type "void") (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "int local_60;" (primitive_type "int") (identifier "local_60") (; ";")) (if_statement "if (DAT_000b634c == 0) {\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) {\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }\n  }\n  else {\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) goto LAB_0002308b;\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n  }" (if "if") (parenthesized_expression "(DAT_000b634c == 0)" (( "(") (binary_expression "DAT_000b634c == 0" (identifier "DAT_000b634c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) {\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }\n  }" ({ "{") (if_statement "if (DAT_000b6358 == 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(DAT_000b6358 == 0)" (( "(") (binary_expression "DAT_000b6358 == 0" (identifier "DAT_000b6358") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "uVar7 = *(uint *)(param_1 + 0x54);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0x54)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(param_1 + 0x54)" (* "*") (cast_expression "(uint *)(param_1 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (if_statement "if (uVar7 != 0) {\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }" (if "if") (parenthesized_expression "(uVar7 != 0)" (( "(") (binary_expression "uVar7 != 0" (identifier "uVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);\n      if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }\n      DAT_000b6314 = calloc(uVar7,4);\n      if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }\n      DAT_000b631c = 0;\n      __nmemb = 0;\n      uVar2 = 0;\n      bVar1 = false;\n      iVar6 = iVar8;\n      do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);\n      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }\n      if (DAT_000b6358 == 0) {\n        return 1;\n      }\n      pcVar4 = "\nThere are no section groups in this file.\n";\n      goto LAB_000232cb;\n    }" ({ "{") (labeled_statement "LAB_0002308b:\n      iVar8 = *(int *)(param_1 + 0x5c);" (statement_identifier "LAB_0002308b") (: ":") (expression_statement "iVar8 = *(int *)(param_1 + 0x5c);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x5c)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(param_1 + 0x5c)" (* "*") (cast_expression "(int *)(param_1 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";"))) (if_statement "if (iVar8 == 0) {\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar3 = dcgettext(0,"Section headers are not available!\n",5);\n        error(uVar3);\n        return 0;\n      }" ({ "{") (expression_statement "uVar3 = dcgettext(0,"Section headers are not available!\n",5);" (assignment_expression "uVar3 = dcgettext(0,"Section headers are not available!\n",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"Section headers are not available!\n",5)" (identifier "dcgettext") (argument_list "(0,"Section headers are not available!\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Section headers are not available!\n"" (" """) (string_content "Section headers are not available!") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar3);" (call_expression "error(uVar3)" (identifier "error") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "DAT_000b6314 = calloc(uVar7,4);" (assignment_expression "DAT_000b6314 = calloc(uVar7,4)" (identifier "DAT_000b6314") (= "=") (call_expression "calloc(uVar7,4)" (identifier "calloc") (argument_list "(uVar7,4)" (( "(") (identifier "uVar7") (, ",") (number_literal "4") () ")")))) (; ";")) (if_statement "if (DAT_000b6314 == (void *)0x0) {\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }" (if "if") (parenthesized_expression "(DAT_000b6314 == (void *)0x0)" (( "(") (binary_expression "DAT_000b6314 == (void *)0x0" (identifier "DAT_000b6314") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);\n        error(uVar3,uVar7);\n        return 0;\n      }" ({ "{") (expression_statement "uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);" (assignment_expression "uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"Out of memory reading %u section group headers\n",5)" (identifier "dcgettext") (argument_list "(0,"Out of memory reading %u section group headers\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Out of memory reading %u section group headers\n"" (" """) (string_content "Out of memory reading %u section group headers") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar3,uVar7);" (call_expression "error(uVar3,uVar7)" (identifier "error") (argument_list "(uVar3,uVar7)" (( "(") (identifier "uVar3") (, ",") (identifier "uVar7") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "DAT_000b631c = 0;" (assignment_expression "DAT_000b631c = 0" (identifier "DAT_000b631c") (= "=") (number_literal "0")) (; ";")) (expression_statement "__nmemb = 0;" (assignment_expression "__nmemb = 0" (identifier "__nmemb") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (expression_statement "iVar6 = iVar8;" (assignment_expression "iVar6 = iVar8" (identifier "iVar6") (= "=") (identifier "iVar8")) (; ";")) (do_statement "do {\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      } while (uVar2 < uVar7);" (do "do") (compound_statement "{\n        if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }\n        uVar2 = uVar2 + 1;\n        iVar6 = iVar6 + 0x48;\n      }" ({ "{") (if_statement "if (*(int *)(iVar6 + 4) == 0x11) {\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar6 + 4) == 0x11)" (( "(") (binary_expression "*(int *)(iVar6 + 4) == 0x11" (pointer_expression "*(int *)(iVar6 + 4)" (* "*") (cast_expression "(int *)(iVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0x11")) () ")")) (compound_statement "{\n          bVar1 = true;\n          __nmemb = __nmemb + 1;\n        }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (expression_statement "__nmemb = __nmemb + 1;" (assignment_expression "__nmemb = __nmemb + 1" (identifier "__nmemb") (= "=") (binary_expression "__nmemb + 1" (identifier "__nmemb") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar2 = uVar2 + 1;" (assignment_expression "uVar2 = uVar2 + 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 + 1" (identifier "uVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar6 = iVar6 + 0x48;" (assignment_expression "iVar6 = iVar6 + 0x48" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 0x48" (identifier "iVar6") (+ "+") (number_literal "0x48"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar2 < uVar7)" (( "(") (binary_expression "uVar2 < uVar7" (identifier "uVar2") (< "<") (identifier "uVar7")) () ")")) (; ";")) (if_statement "if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }" (if "if") (parenthesized_expression "((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0))" (( "(") (binary_expression "(bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)" (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (&& "&&") (parenthesized_expression "(DAT_000b631c = __nmemb, __nmemb != 0)" (( "(") (comma_expression "DAT_000b631c = __nmemb, __nmemb != 0" (assignment_expression "DAT_000b631c = __nmemb" (identifier "DAT_000b631c") (= "=") (identifier "__nmemb")) (, ",") (binary_expression "__nmemb != 0" (identifier "__nmemb") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        DAT_000b6318 = calloc(__nmemb,8);\n        if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }\n        uVar7 = 0;\n        local_70 = (void *)0x0;\n        local_60 = 0;\nLAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );\n      }" ({ "{") (expression_statement "DAT_000b6318 = calloc(__nmemb,8);" (assignment_expression "DAT_000b6318 = calloc(__nmemb,8)" (identifier "DAT_000b6318") (= "=") (call_expression "calloc(__nmemb,8)" (identifier "calloc") (argument_list "(__nmemb,8)" (( "(") (identifier "__nmemb") (, ",") (number_literal "8") () ")")))) (; ";")) (if_statement "if (DAT_000b6318 == (void *)0x0) {\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }" (if "if") (parenthesized_expression "(DAT_000b6318 == (void *)0x0)" (( "(") (binary_expression "DAT_000b6318 == (void *)0x0" (identifier "DAT_000b6318") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);\n          error(uVar3,__nmemb);\n          return 0;\n        }" ({ "{") (expression_statement "uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);" (assignment_expression "uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"Out of memory reading %lu groups\n",5)" (identifier "dcgettext") (argument_list "(0,"Out of memory reading %lu groups\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Out of memory reading %lu groups\n"" (" """) (string_content "Out of memory reading %lu groups") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar3,__nmemb);" (call_expression "error(uVar3,__nmemb)" (identifier "error") (argument_list "(uVar3,__nmemb)" (( "(") (identifier "uVar3") (, ",") (identifier "__nmemb") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_70 = (void *)0x0;" (assignment_expression "local_70 = (void *)0x0" (identifier "local_70") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0002317f:\n        do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );" (statement_identifier "LAB_0002317f") (: ":") (do_statement "do {\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        } while( true );" (do "do") (compound_statement "{\n          if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }\n          uVar7 = uVar7 + 1;\n          iVar8 = iVar8 + 0x48;\n          if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }\n        }" ({ "{") (if_statement "if (*(int *)(iVar8 + 4) == 0x11) {\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar8 + 4) == 0x11)" (( "(") (binary_expression "*(int *)(iVar8 + 4) == 0x11" (pointer_expression "*(int *)(iVar8 + 4)" (* "*") (cast_expression "(int *)(iVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0x11")) () ")")) (compound_statement "{\n            uVar3 = FUN_00022190();\n            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }\n            if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }\n            if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }\n            uVar5 = dcgettext(0,pcVar4,5);\n            error(uVar5,uVar3);\n            local_60 = iVar6;\n          }" ({ "{") (expression_statement "uVar3 = FUN_00022190();" (assignment_expression "uVar3 = FUN_00022190()" (identifier "uVar3") (= "=") (call_expression "FUN_00022190()" (identifier "FUN_00022190") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)) {\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2))" (( "(") (binary_expression "(*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||\n               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)" (parenthesized_expression "(*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28))" (( "(") (binary_expression "*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)" (pointer_expression "*(uint *)(param_1 + 0x54)" (* "*") (cast_expression "(uint *)(param_1 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (<= "<=") (pointer_expression "*(uint *)(iVar8 + 0x28)" (* "*") (cast_expression "(uint *)(iVar8 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x28)" (( "(") (binary_expression "iVar8 + 0x28" (identifier "iVar8") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (|| "||") (parenthesized_expression "(iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2)" (( "(") (comma_expression "iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,\n               *(int *)(iVar6 + 4) != 2" (assignment_expression "iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48" (identifier "iVar6") (= "=") (binary_expression "*(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48" (pointer_expression "*(int *)(param_1 + 0x5c)" (* "*") (cast_expression "(int *)(param_1 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")")))) (+ "+") (binary_expression "*(uint *)(iVar8 + 0x28) * 0x48" (pointer_expression "*(uint *)(iVar8 + 0x28)" (* "*") (cast_expression "(uint *)(iVar8 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x28)" (( "(") (binary_expression "iVar8 + 0x28" (identifier "iVar8") (+ "+") (number_literal "0x28")) () ")")))) (* "*") (number_literal "0x48")))) (, ",") (binary_expression "*(int *)(iVar6 + 4) != 2" (pointer_expression "*(int *)(iVar6 + 4)" (* "*") (cast_expression "(int *)(iVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "2"))) () ")"))) () ")")) (compound_statement "{\n              uVar7 = uVar7 + 1;\n              iVar8 = iVar8 + 0x48;\n              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);\n              error(uVar5,uVar3);\n              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;\n              goto LAB_0002317f;\n            }" ({ "{") (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" (identifier "uVar7") (= "=") (binary_expression "uVar7 + 1" (identifier "uVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar8 = iVar8 + 0x48;" (assignment_expression "iVar8 = iVar8 + 0x48" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 0x48" (identifier "iVar8") (+ "+") (number_literal "0x48"))) (; ";")) (expression_statement "uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);" (assignment_expression "uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5)" (identifier "uVar5") (= "=") (call_expression "dcgettext(0,"Bad sh_link in group section `%s\'\n",5)" (identifier "dcgettext") (argument_list "(0,"Bad sh_link in group section `%s\'\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Bad sh_link in group section `%s\'\n"" (" """) (string_content "Bad sh_link in group section `%s") (escape_sequence "\'") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar5,uVar3);" (call_expression "error(uVar5,uVar3)" (identifier "error") (argument_list "(uVar5,uVar3)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar3") () ")"))) (; ";")) (if_statement "if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x54) <= uVar7)" (( "(") (binary_expression "*(uint *)(param_1 + 0x54) <= uVar7" (pointer_expression "*(uint *)(param_1 + 0x54)" (* "*") (cast_expression "(uint *)(param_1 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (<= "<=") (identifier "uVar7")) () ")")) (goto_statement "goto LAB_00023370;" (goto "goto") (statement_identifier "LAB_00023370") (; ";"))) (goto_statement "goto LAB_0002317f;" (goto "goto") (statement_identifier "LAB_0002317f") (; ";")) (} "}"))) (if_statement "if (iVar6 != local_60) {\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }" (if "if") (parenthesized_expression "(iVar6 != local_60)" (( "(") (binary_expression "iVar6 != local_60" (identifier "iVar6") (!= "!=") (identifier "local_60")) () ")")) (compound_statement "{\n              if (local_70 != (void *)0x0) {\n                free(local_70);\n              }\n              if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }\n            }" ({ "{") (if_statement "if (local_70 != (void *)0x0) {\n                free(local_70);\n              }" (if "if") (parenthesized_expression "(local_70 != (void *)0x0)" (( "(") (binary_expression "local_70 != (void *)0x0" (identifier "local_70") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                free(local_70);\n              }" ({ "{") (expression_statement "free(local_70);" (call_expression "free(local_70)" (identifier "free") (argument_list "(local_70)" (( "(") (identifier "local_70") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_000b6324 == 0) {\n                local_70 = (void *)FUN_00022830();\n              }\n              else {\n                local_70 = (void *)FUN_000222e0();\n              }" (if "if") (parenthesized_expression "(DAT_000b6324 == 0)" (( "(") (binary_expression "DAT_000b6324 == 0" (identifier "DAT_000b6324") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                local_70 = (void *)FUN_00022830();\n              }" ({ "{") (expression_statement "local_70 = (void *)FUN_00022830();" (assignment_expression "local_70 = (void *)FUN_00022830()" (identifier "local_70") (= "=") (cast_expression "(void *)FUN_00022830()" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00022830()" (identifier "FUN_00022830") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                local_70 = (void *)FUN_000222e0();\n              }" (else "else") (compound_statement "{\n                local_70 = (void *)FUN_000222e0();\n              }" ({ "{") (expression_statement "local_70 = (void *)FUN_000222e0();" (assignment_expression "local_70 = (void *)FUN_000222e0()" (identifier "local_70") (= "=") (cast_expression "(void *)FUN_000222e0()" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000222e0()" (identifier "FUN_000222e0") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (local_70 == (void *)0x0) {\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }\n            else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }" (if "if") (parenthesized_expression "(local_70 == (void *)0x0)" (( "(") (binary_expression "local_70 == (void *)0x0" (identifier "local_70") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              pcVar4 = "Corrupt header in group section `%s\'\n";\n            }" ({ "{") (expression_statement "pcVar4 = "Corrupt header in group section `%s\'\n";" (assignment_expression "pcVar4 = "Corrupt header in group section `%s\'\n"" (identifier "pcVar4") (= "=") (string_literal ""Corrupt header in group section `%s\'\n"" (" """) (string_content "Corrupt header in group section `%s") (escape_sequence "\'") (escape_sequence "\n") (" """))) (; ";")) (} "}")) (else_clause "else {\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }" (else "else") (compound_statement "{\n              pcVar4 = "Bad sh_info in group section `%s\'\n";\n            }" ({ "{") (expression_statement "pcVar4 = "Bad sh_info in group section `%s\'\n";" (assignment_expression "pcVar4 = "Bad sh_info in group section `%s\'\n"" (identifier "pcVar4") (= "=") (string_literal ""Bad sh_info in group section `%s\'\n"" (" """) (string_content "Bad sh_info in group section `%s") (escape_sequence "\'") (escape_sequence "\n") (" """))) (; ";")) (} "}")))) (expression_statement "uVar5 = dcgettext(0,pcVar4,5);" (assignment_expression "uVar5 = dcgettext(0,pcVar4,5)" (identifier "uVar5") (= "=") (call_expression "dcgettext(0,pcVar4,5)" (identifier "dcgettext") (argument_list "(0,pcVar4,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar4") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar5,uVar3);" (call_expression "error(uVar5,uVar3)" (identifier "error") (argument_list "(uVar5,uVar3)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "local_60 = iVar6;" (assignment_expression "local_60 = iVar6" (identifier "local_60") (= "=") (identifier "iVar6")) (; ";")) (} "}"))) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" (identifier "uVar7") (= "=") (binary_expression "uVar7 + 1" (identifier "uVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar8 = iVar8 + 0x48;" (assignment_expression "iVar8 = iVar8 + 0x48" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 0x48" (identifier "iVar8") (+ "+") (number_literal "0x48"))) (; ";")) (if_statement "if (*(uint *)(param_1 + 0x54) <= uVar7) {\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x54) <= uVar7)" (( "(") (binary_expression "*(uint *)(param_1 + 0x54) <= uVar7" (pointer_expression "*(uint *)(param_1 + 0x54)" (* "*") (cast_expression "(uint *)(param_1 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (<= "<=") (identifier "uVar7")) () ")")) (compound_statement "{\nLAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }\n            free(local_70);\n            return 1;\n          }" ({ "{") (labeled_statement "LAB_00023370:\n            if (local_70 == (void *)0x0) {\n              return 1;\n            }" (statement_identifier "LAB_00023370") (: ":") (if_statement "if (local_70 == (void *)0x0) {\n              return 1;\n            }" (if "if") (parenthesized_expression "(local_70 == (void *)0x0)" (( "(") (binary_expression "local_70 == (void *)0x0" (identifier "local_70") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              return 1;\n            }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))) (expression_statement "free(local_70);" (call_expression "free(local_70)" (identifier "free") (argument_list "(local_70)" (( "(") (identifier "local_70") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}"))) (if_statement "if (DAT_000b6358 == 0) {\n        return 1;\n      }" (if "if") (parenthesized_expression "(DAT_000b6358 == 0)" (( "(") (binary_expression "DAT_000b6358 == 0" (identifier "DAT_000b6358") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "pcVar4 = "\nThere are no section groups in this file.\n";" (assignment_expression "pcVar4 = "\nThere are no section groups in this file.\n"" (identifier "pcVar4") (= "=") (string_literal ""\nThere are no section groups in this file.\n"" (" """) (escape_sequence "\n") (string_content "There are no section groups in this file.") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_000232cb;" (goto "goto") (statement_identifier "LAB_000232cb") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) goto LAB_0002308b;\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n  }" (else "else") (compound_statement "{\n    uVar7 = *(uint *)(param_1 + 0x54);\n    if (uVar7 != 0) goto LAB_0002308b;\n    if (DAT_000b6358 == 0) {\n      return 1;\n    }\n  }" ({ "{") (expression_statement "uVar7 = *(uint *)(param_1 + 0x54);" (assignment_expression "uVar7 = *(uint *)(param_1 + 0x54)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(param_1 + 0x54)" (* "*") (cast_expression "(uint *)(param_1 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (if_statement "if (uVar7 != 0) goto LAB_0002308b;" (if "if") (parenthesized_expression "(uVar7 != 0)" (( "(") (binary_expression "uVar7 != 0" (identifier "uVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002308b;" (goto "goto") (statement_identifier "LAB_0002308b") (; ";"))) (if_statement "if (DAT_000b6358 == 0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(DAT_000b6358 == 0)" (( "(") (binary_expression "DAT_000b6358 == 0" (identifier "DAT_000b6358") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}")))) (expression_statement "pcVar4 = "\nThere are no sections to group in this file.\n";" (assignment_expression "pcVar4 = "\nThere are no sections to group in this file.\n"" (identifier "pcVar4") (= "=") (string_literal ""\nThere are no sections to group in this file.\n"" (" """) (escape_sequence "\n") (string_content "There are no sections to group in this file.") (escape_sequence "\n") (" """))) (; ";")) (labeled_statement "LAB_000232cb:\n  pcVar4 = (char *)dcgettext(0,pcVar4,5);" (statement_identifier "LAB_000232cb") (: ":") (expression_statement "pcVar4 = (char *)dcgettext(0,pcVar4,5);" (assignment_expression "pcVar4 = (char *)dcgettext(0,pcVar4,5)" (identifier "pcVar4") (= "=") (cast_expression "(char *)dcgettext(0,pcVar4,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,pcVar4,5)" (identifier "dcgettext") (argument_list "(0,pcVar4,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar4") (, ",") (number_literal "5") () ")"))))) (; ";"))) (expression_statement "printf(pcVar4);" (call_expression "printf(pcVar4)" (identifier "printf") (argument_list "(pcVar4)" (( "(") (identifier "pcVar4") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

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

type_1 __regparm3 function_1(type_2 *filedata)

{
  char **filedata_00;
  type_3 *sec;
  type_3 *puVar1;
  type_4 var_25;
  type_5 *var_37;
  type_6 *pgVar4;
  type_7 *var_13;
  type_4 var_10;
  char *pcVar7;
  char *pcVar8;
  type_8 *var_27;
  int var_29;
  type_5 **ppgVar10;
  type_6 *pgVar11;
  char *pcVar12;
  type_4 var_26;
  size_t var_9;
  type_9 eVar22;
  type_9 eVar23;
  type_2 *pFVar14;
  type_7 *pEVar15;
  type_4 *var_31;
  type_4 *puVar17;
  int var_43;
  type_4 var_3;
  type_2 *var_4;
  type_8 *var_36;
  bool bVar21;
  type_10 *var_15;
  type_5 *var_11;
  type_7 *var_14;
  type_7 *var_21;
  type_7 *var_22;
  type_4 var_24;
  char *local_44;
  type_4 var_32;
  type_3 var_20;
  type_11 uStack_14;
  
  uStack_14 = 0x2305b;
  if (var_1 == 0) {
    if (var_2 == 0) {
      return 1;
    }
    var_3 = (filedata->file_header).e_shnum;
    if (var_3 != 0) {
LAB_0002308b:
      var_4 = (type_2 *)filedata->section_headers;
      if (var_4 == (type_2 *)0x0) {
        pcVar7 = (char *)var_5(0,"Section headers are not available!\n",5);
        var_6(pcVar7);
        return 0;
      }
      var_8 = (type_5 **)var_7(var_3,4);
      if (var_8 == (type_5 **)0x0) {
        pcVar7 = (char *)var_5(0,"Out of memory reading %u section group headers\n",5);
        var_6(pcVar7,var_3);
        return 0;
      }
      group_count = 0;
      var_9 = 0;
      var_10 = 0;
      bVar21 = false;
      pFVar14 = var_4;
      do {
        if (pFVar14->handle == (type_12 *)0x11) {
          bVar21 = true;
          var_9 = var_9 + 1;
        }
        var_10 = var_10 + 1;
        pFVar14 = (type_2 *)&(pFVar14->file_header).e_phentsize;
      } while (var_10 < var_3);
      if ((bVar21) && (group_count = var_9, var_9 != 0)) {
        var_11 = (type_5 *)var_7(var_9,8);
        section_groups = var_11;
        if (var_11 == (type_5 *)0x0) {
          pcVar7 = (char *)var_5(0,"Out of memory reading %lu groups\n",5);
          var_6(pcVar7,var_9);
          return 0;
        }
        filedata_00 = &filedata->string_table;
        var_20 = 0;
        var_3 = 0;
        var_24 = 0;
        var_21 = (type_7 *)0x0;
        var_15 = (type_10 *)0x0;
        var_22 = (type_7 *)0x0;
        var_14 = (type_7 *)0x0;
LAB_0002317f:
        do {
          if (var_4->handle == (type_12 *)0x11) {
            sec = &filedata->string_table_length;
            pcVar7 = var_12
                               ((type_2 *)filedata_00,(type_7 *)sec,var_4);
            var_10 = (type_4)(var_4->file_header).e_phoff;
            if (((filedata->file_header).e_shnum <= var_10) ||
               (var_13 = filedata->section_headers + var_10, var_13->sh_type != 2)) {
              var_3 = var_3 + 1;
              var_4 = (type_2 *)&(var_4->file_header).e_phentsize;
              pcVar8 = (char *)var_5(0,"Bad sh_link in group section `%s\'\n",5);
              var_6(pcVar8,pcVar7);
              if ((filedata->file_header).e_shnum <= var_3) goto LAB_00023370;
              goto LAB_0002317f;
            }
            if (var_13 != var_14) {
              if (var_15 != (type_10 *)0x0) {
                var_16(var_15);
              }
              if (var_17 == 0) {
                var_15 = var_18(filedata,var_13,&var_20);
              }
              else {
                var_15 = var_19(filedata,var_13,&var_20);
              }
            }
            var_14 = var_13;
            if (var_15 == (type_10 *)0x0) {
              pcVar8 = "Corrupt header in group section `%s\'\n";
            }
            else {
              var_10 = *(type_4 *)((int)&(var_4->file_header).e_phoff + 4);
              if (var_10 < var_20) {
                if ((var_15[var_10].st_info & 0xf) == 3) {
                  var_10 = var_15[var_10].st_shndx;
                  if ((var_10 == 0) || ((filedata->file_header).e_shnum <= var_10)) goto LAB_000233d0;
                  if (filedata->section_headers + var_10 == (type_7 *)0x0) {
                    pcVar8 = "<none>";
LAB_00023a33:
                    local_44 = (char *)var_5(0,pcVar8,5);
                  }
                  else {
                    if (filedata->string_table == (char *)0x0) {
                      pcVar8 = "<no-strings>";
                      goto LAB_00023a33;
                    }
                    var_10 = filedata->section_headers[var_10].sh_name;
                    local_44 = filedata->string_table + var_10;
                    if (filedata->string_table_length <= var_10) {
                      pcVar8 = "<corrupt>";
                      goto LAB_00023a33;
                    }
                  }
                  if (var_21 == (type_7 *)0x0) {
                    var_22 = (type_7 *)0x0;
                    var_24 = 0;
                  }
                  else {
                    var_16(var_21);
                    var_24 = 0;
                    var_21 = (type_7 *)0x0;
                    var_22 = (type_7 *)0x0;
                  }
                }
                else {
                  if (var_13->sh_link < (filedata->file_header).e_shnum) {
                    var_13 = filedata->section_headers + var_13->sh_link;
                    if (var_13 != var_22) {
                      if (var_21 != (type_7 *)0x0) {
                        var_16(var_21);
                      }
                      pcVar8 = (char *)var_5(0,"string table",5);
                      var_21 = (type_7 *)
                                 var_23((void *)0x0,filedata,(type_3)var_13->sh_offset,1,
                                          var_13->sh_size,pcVar8);
                      if (var_21 == (type_7 *)0x0) {
                        var_24 = 0;
                        pEVar15 = (type_7 *)0x0;
                        goto LAB_0002326f;
                      }
                      var_24 = (type_4)var_13->sh_size;
                    }
                    pEVar15 = var_21;
                    if (var_15[var_10].st_name < var_24) {
                      local_44 = (char *)((int)&var_21->sh_name + var_15[var_10].st_name);
                      var_22 = var_13;
                      goto LAB_00023496;
                    }
                  }
                  else if (var_21 == (type_7 *)0x0) {
                    var_24 = 0;
                    pEVar15 = (type_7 *)0x0;
                    var_13 = var_21;
                  }
                  else {
                    var_16(var_21);
                    var_24 = 0;
                    var_21 = (type_7 *)0x0;
                    pEVar15 = (type_7 *)0x0;
                    var_13 = var_21;
                  }
LAB_0002326f:
                  var_21 = var_13;
                  local_44 = (char *)var_5(0,"<corrupt>",5);
                  var_22 = var_21;
                  var_21 = pEVar15;
                }
LAB_00023496:
                var_10 = (var_4->file_header).e_version;
                var_26 = (type_4)(var_4->file_header).e_entry;
                var_25 = *(type_4 *)((int)&(var_4->file_header).e_entry + 4);
                puVar1 = &(var_4->file_header).e_flags;
                if (*puVar1 <= var_25 && (type_4)(var_26 < var_10) <= var_25 - *puVar1) {
                  pcVar8 = (char *)var_5(0,"section data",5);
                  var_27 = (type_8 *)var_23((void *)0x0,filedata,
                                            *(type_3 *)((var_4->file_header).e_ident + 8),1,
                                            (var_4->file_header).e_entry,pcVar8);
                  if (var_27 == (type_8 *)0x0) goto LAB_00023170;
                  var_29 = var_28((int)(var_4->file_header).e_entry,
                                    *(type_11 *)((int)&(var_4->file_header).e_entry + 4),
                                    (var_4->file_header).e_version,
                                    (var_4->file_header).e_flags);
                  var_29 = var_29 + -1;
                  eVar22._0_4_ = (*byte_get)(var_27,4);
                  if (var_2 != 0) {
                    pcVar8 = &DAT_0007bc5a;
                    if (((type_9)eVar22 != 0) && (pcVar8 = "COMDAT ", (type_9)eVar22 != 1)) {
                      pcVar12 = (char *)var_5(0,"[0x%x: ",5);
                      pcVar8 = (char *)&buff_17704;
                      var_30((char *)&buff_17704,0xe,pcVar12,(type_11)(type_9)eVar22);
                      puVar17 = (type_4 *)pcVar8;
                      if (((type_4)(type_9)eVar22 & 0xff00000) == 0) {
                        if (((type_4)(type_9)eVar22 & 0xf0000000) != 0) {
                          var_32 = (type_4)(type_9)eVar22 & 0xfffffffe;
LAB_000238bb:
                          do {
                            var_31 = puVar17;
                            var_26 = *var_31 + 0xfefefeff & ~*var_31;
                            var_10 = var_26 & 0x80808080;
                            puVar17 = var_31 + 1;
                          } while (var_10 == 0);
                          bVar21 = (var_26 & 0x8080) == 0;
                          if (bVar21) {
                            var_10 = var_10 >> 0x10;
                          }
                          if (bVar21) {
                            puVar17 = (type_4 *)((int)var_31 + 6);
                          }
                          var_32 = var_32 & 0xfffffff;
                          var_33((char *)((int)puVar17 +
                                                  (-3 - (type_4)var_34((type_13)var_10,(type_13)var_10))),
                                          "<PROC specific>",0x10);
                          goto LAB_0002390e;
                        }
LAB_00023a65:
                        do {
                          var_31 = puVar17;
                          var_26 = *var_31 + 0xfefefeff & ~*var_31;
                          var_10 = var_26 & 0x80808080;
                          puVar17 = var_31 + 1;
                        } while (var_10 == 0);
                        bVar21 = (var_26 & 0x8080) == 0;
                        if (bVar21) {
                          var_10 = var_10 >> 0x10;
                        }
                        if (bVar21) {
                          puVar17 = (type_4 *)((int)var_31 + 6);
                        }
                        var_33((char *)((int)puVar17 +
                                                (-3 - (type_4)var_34((type_13)var_10,(type_13)var_10))),
                                        "<unknown>",10);
                        puVar17 = (type_4 *)pcVar8;
                      }
                      else {
                        do {
                          var_31 = puVar17;
                          var_26 = *var_31 + 0xfefefeff & ~*var_31;
                          var_10 = var_26 & 0x80808080;
                          puVar17 = var_31 + 1;
                        } while (var_10 == 0);
                        bVar21 = (var_26 & 0x8080) == 0;
                        if (bVar21) {
                          var_10 = var_10 >> 0x10;
                        }
                        puVar17 = (type_4 *)((int)var_31 + 6);
                        if (!bVar21) {
                          puVar17 = var_31 + 1;
                        }
                        var_32 = (type_4)(type_9)eVar22 & 0xf00ffffe;
                        var_33((char *)((int)puVar17 +
                                                (-3 - (type_4)var_34((type_13)var_10,(type_13)var_10))),
                                        "<OS specific>",0xe);
                        puVar17 = (type_4 *)pcVar8;
                        if (((type_4)(type_9)eVar22 & 0xf0000000) != 0) goto LAB_000238bb;
LAB_0002390e:
                        puVar17 = (type_4 *)pcVar8;
                        if (var_32 != 0) goto LAB_00023a65;
                      }
                      do {
                        var_31 = puVar17;
                        var_26 = *var_31 + 0xfefefeff & ~*var_31;
                        var_10 = var_26 & 0x80808080;
                        puVar17 = var_31 + 1;
                      } while (var_10 == 0);
                      bVar21 = (var_26 & 0x8080) == 0;
                      if (bVar21) {
                        var_10 = var_10 >> 0x10;
                      }
                      if (bVar21) {
                        puVar17 = (type_4 *)((int)var_31 + 6);
                      }
                      pcVar12 = (char *)((int)puVar17 + (-3 - (type_4)var_34((type_13)var_10,(type_13)var_10))
                                        );
                      pcVar12[0] = ']';
                      pcVar12[1] = '\0';
                    }
                    pcVar12 = (char *)var_5(0,
                                                "\n%sgroup section [%5u] `%s\' [%s] contains %u sections:\n"
                                                ,5);
                    var_35(pcVar12,pcVar8,var_3,pcVar7,local_44,var_29);
                    pcVar7 = (char *)var_5(0,"   [Index]    Name\n",5);
                    var_35(pcVar7);
                  }
                  var_11->group_index = var_3;
                  if (var_29 != 0) {
                    var_43 = 0;
                    var_36 = var_27;
                    do {
                      var_36 = var_36 + 4;
                      eVar23._0_4_ = (*byte_get)(var_36,4);
                    /* WARNING: Load size is inaccurate */
                      eVar22._0_4_ = *(type_9 *)&(filedata->file_header).e_shnum;
                      if ((type_4)(type_9)eVar23 < (type_4)(type_9)eVar22) {
                        ppgVar10 = var_8 + (int)(type_9)eVar23;
                        var_37 = *ppgVar10;
                        if (var_37 != (type_5 *)0x0) {
                          if ((type_9)eVar23 != 0) {
                            var_10 = function_1::lexical_block_10::lexical_block_10_9::
                                    lexical_block_10_9_2::var_38 + 1;
                            bVar21 = function_1::lexical_block_10::lexical_block_10_9::
                                     lexical_block_10_9_2::var_38 < 10;
                            process_section_groups::lexical_block_10::lexical_block_10_9::
                            lexical_block_10_9_2::var_38 = var_10;
                            if (bVar21) {
                              var_10 = var_37->group_index;
                              pcVar7 = (char *)var_5(0,
                                                  "section [%5u] in group section [%5u] already in group section [%5u]\n"
                                                  ,5);
                              var_6(pcVar7,(type_11)(type_9)eVar23,var_3,var_10);
                              if (function_1::lexical_block_10::lexical_block_10_9::
                                  lexical_block_10_9_2::var_38 == 10) {
                                pcVar7 = 
                                "Further error messages about already contained group sections suppressed\n"
                                ;
                                goto LAB_000236dd;
                              }
                            }
                            goto LAB_000235c3;
                          }
                          if (function_1::lexical_block_10::lexical_block_10_9::
                              lexical_block_10_9_3::var_39 == 0) {
                            var_10 = var_37->group_index;
                            pcVar7 = (char *)var_5(0,"section 0 in group section [%5u]\n",5);
                            var_6(pcVar7,var_10);
                            process_section_groups::lexical_block_10::lexical_block_10_9::
                            lexical_block_10_9_3::var_39 = 1;
                            ppgVar10 = var_8;
                          }
                        }
                        *ppgVar10 = var_11;
                        if (var_2 != 0) {
                          pcVar7 = var_12
                                             ((type_2 *)filedata_00,(type_7 *)sec,
                                              (type_2 *)
                                              (filedata->section_headers + (int)(type_9)eVar23));
                          var_35("   [%5u]   %s\n",(type_11)(type_9)eVar23,pcVar7);
                        }
                        pgVar11 = (type_6 *)var_40(8);
                    /* WARNING: Store size is inaccurate */
                        *(type_9 *)&pgVar11->section_index = (type_9)eVar23;
                        pgVar4 = var_11->root;
                        var_11->root = pgVar11;
                        pgVar11->next = pgVar4;
                      }
                      else {
                        var_10 = function_1::lexical_block_10::lexical_block_10_9::
                                lexical_block_10_9_1::var_41 + 1;
                        bVar21 = function_1::lexical_block_10::lexical_block_10_9::
                                 lexical_block_10_9_1::var_41 < 10;
                        process_section_groups::lexical_block_10::lexical_block_10_9::
                        lexical_block_10_9_1::var_41 = var_10;
                        if (bVar21) {
                          pcVar7 = (char *)var_5(0,
                                                  "section [%5u] in group section [%5u] > maximum section [%5u]\n"
                                                  ,5);
                          var_6(pcVar7,(type_11)(type_9)eVar23,var_3,(int)(type_9)eVar22 - 1);
                          if (function_1::lexical_block_10::lexical_block_10_9::
                              lexical_block_10_9_1::var_41 == 10) {
                            pcVar7 = 
                            "Further error messages about overlarge group section indicies suppressed\n"
                            ;
LAB_000236dd:
                            pcVar7 = (char *)var_5(0,pcVar7,5);
                            var_42(pcVar7);
                          }
                        }
                      }
LAB_000235c3:
                      var_43 = var_43 + 1;
                    } while (var_29 != var_43);
                  }
                  var_16(var_27);
                  var_11 = var_11 + 1;
                  goto LAB_00023170;
                }
                pcVar7 = var_12
                                   ((type_2 *)filedata_00,(type_7 *)sec,var_4);
                pcVar8 = (char *)var_5(0,
                                           "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"
                                           ,5);
                var_6(pcVar8,pcVar7,var_10,var_26);
                goto LAB_00023378;
              }
LAB_000233d0:
              pcVar8 = "Bad sh_info in group section `%s\'\n";
            }
            pcVar8 = (char *)var_5(0,pcVar8,5);
            var_6(pcVar8,pcVar7);
          }
LAB_00023170:
          var_3 = var_3 + 1;
          var_4 = (type_2 *)&(var_4->file_header).e_phentsize;
          if ((filedata->file_header).e_shnum <= var_3) {
LAB_00023370:
            if (var_15 != (type_10 *)0x0) {
LAB_00023378:
              var_16(var_15);
            }
            if (var_21 == (type_7 *)0x0) {
              return 1;
            }
            var_16(var_21);
            return 1;
          }
        } while( true );
      }
      if (var_2 == 0) {
        return 1;
      }
      pcVar7 = "\nThere are no section groups in this file.\n";
      goto LAB_000232cb;
    }
  }
  else {
    var_3 = (filedata->file_header).e_shnum;
    if (var_3 != 0) goto LAB_0002308b;
    if (var_2 == 0) {
      return 1;
    }
  }
  pcVar7 = "\nThere are no sections to group in this file.\n";
LAB_000232cb:
  pcVar7 = (char *)var_5(0,pcVar7,5);
  var_35(pcVar7);
  return 1;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Removing unreachable block (ram,0x00023217) */
/* WARNING: Removing unreachable block (ram,0x000233c0) */
/* WARNING: Removing unreachable block (ram,0x00023768) */
/* WARNING: Removing unreachable block (ram,0x00023771) */
/* WARNING: Removing unreachable block (ram,0x00023a47) */
/* WARNING: Removing unreachable block (ram,0x00023782) */
/* WARNING: Removing unreachable block (ram,0x00023a54) */
/* WARNING: Removing unreachable block (ram,0x0002378d) */
/* WARNING: Removing unreachable block (ram,0x00023a28) */
/* WARNING: Removing unreachable block (ram,0x00023a33) */
/* WARNING: Removing unreachable block (ram,0x0002379f) */
/* WARNING: Removing unreachable block (ram,0x000239be) */
/* WARNING: Removing unreachable block (ram,0x000237ab) */
/* WARNING: Removing unreachable block (ram,0x00023235) */
/* WARNING: Removing unreachable block (ram,0x00023400) */
/* WARNING: Removing unreachable block (ram,0x00023413) */
/* WARNING: Removing unreachable block (ram,0x0002341b) */
/* WARNING: Removing unreachable block (ram,0x00023427) */
/* WARNING: Removing unreachable block (ram,0x000239d3) */
/* WARNING: Removing unreachable block (ram,0x0002346a) */
/* WARNING: Removing unreachable block (ram,0x00023475) */
/* WARNING: Removing unreachable block (ram,0x00023486) */
/* WARNING: Removing unreachable block (ram,0x00023b38) */
/* WARNING: Removing unreachable block (ram,0x00023245) */
/* WARNING: Removing unreachable block (ram,0x000237d4) */
/* WARNING: Removing unreachable block (ram,0x00023251) */
/* WARNING: Removing unreachable block (ram,0x0002326f) */
/* WARNING: Removing unreachable block (ram,0x00023496) */
/* WARNING: Removing unreachable block (ram,0x000234aa) */
/* WARNING: Removing unreachable block (ram,0x000234ed) */
/* WARNING: Removing unreachable block (ram,0x00023836) */
/* WARNING: Removing unreachable block (ram,0x00023844) */
/* WARNING: Removing unreachable block (ram,0x00023857) */
/* WARNING: Removing unreachable block (ram,0x00023ab0) */
/* WARNING: Removing unreachable block (ram,0x00023aba) */
/* WARNING: Removing unreachable block (ram,0x00023ad0) */
/* WARNING: Removing unreachable block (ram,0x00023ae2) */
/* WARNING: Removing unreachable block (ram,0x00023ae5) */
/* WARNING: Removing unreachable block (ram,0x00023aec) */
/* WARNING: Removing unreachable block (ram,0x00023af1) */
/* WARNING: Removing unreachable block (ram,0x00023b33) */
/* WARNING: Removing unreachable block (ram,0x000238a4) */
/* WARNING: Removing unreachable block (ram,0x000238b0) */
/* WARNING: Removing unreachable block (ram,0x000238b7) */
/* WARNING: Removing unreachable block (ram,0x000238bb) */
/* WARNING: Removing unreachable block (ram,0x000238d1) */
/* WARNING: Removing unreachable block (ram,0x000238db) */
/* WARNING: Removing unreachable block (ram,0x000238de) */
/* WARNING: Removing unreachable block (ram,0x000238e1) */
/* WARNING: Removing unreachable block (ram,0x000238e4) */
/* WARNING: Removing unreachable block (ram,0x0002390e) */
/* WARNING: Removing unreachable block (ram,0x00023a61) */
/* WARNING: Removing unreachable block (ram,0x00023a65) */
/* WARNING: Removing unreachable block (ram,0x00023a7b) */
/* WARNING: Removing unreachable block (ram,0x00023a85) */
/* WARNING: Removing unreachable block (ram,0x00023a88) */
/* WARNING: Removing unreachable block (ram,0x00023a8b) */
/* WARNING: Removing unreachable block (ram,0x00023a8e) */
/* WARNING: Removing unreachable block (ram,0x0002391a) */
/* WARNING: Removing unreachable block (ram,0x0002391e) */
/* WARNING: Removing unreachable block (ram,0x00023934) */
/* WARNING: Removing unreachable block (ram,0x0002393e) */
/* WARNING: Removing unreachable block (ram,0x00023941) */
/* WARNING: Removing unreachable block (ram,0x00023944) */
/* WARNING: Removing unreachable block (ram,0x00023947) */
/* WARNING: Removing unreachable block (ram,0x0002395a) */
/* WARNING: Removing unreachable block (ram,0x00023531) */
/* WARNING: Removing unreachable block (ram,0x0002355a) */
/* WARNING: Removing unreachable block (ram,0x000235d0) */
/* WARNING: Removing unreachable block (ram,0x00023570) */
/* WARNING: Removing unreachable block (ram,0x0002357f) */
/* WARNING: Removing unreachable block (ram,0x00023680) */
/* WARNING: Removing unreachable block (ram,0x00023698) */
/* WARNING: Removing unreachable block (ram,0x000236d2) */
/* WARNING: Removing unreachable block (ram,0x00023587) */
/* WARNING: Removing unreachable block (ram,0x00023728) */
/* WARNING: Removing unreachable block (ram,0x00023595) */
/* WARNING: Removing unreachable block (ram,0x00023650) */
/* WARNING: Removing unreachable block (ram,0x000235a9) */
/* WARNING: Removing unreachable block (ram,0x000235ef) */
/* WARNING: Removing unreachable block (ram,0x00023603) */
/* WARNING: Removing unreachable block (ram,0x00023639) */
/* WARNING: Removing unreachable block (ram,0x000236dd) */
/* WARNING: Removing unreachable block (ram,0x000235c3) */
/* WARNING: Removing unreachable block (ram,0x000236f8) */
/* WARNING: Removing unreachable block (ram,0x00023704) */
/* WARNING: Removing unreachable block (ram,0x000239ea) */
/* WARNING: Removing unreachable block (ram,0x00023393) */

undefined4 __regparm3 MASKED(int param_1)

{
  bool bVar1;
  uint uVar2;
  undefined4 uVar3;
  char *pcVar4;
  undefined4 uVar5;
  size_t __nmemb;
  int iVar6;
  uint uVar7;
  int iVar8;
  void *local_70;
  int local_60;
  
  if (DAT_000b634c == 0) {
    if (DAT_000b6358 == 0) {
      return 1;
    }
    uVar7 = *(uint *)(param_1 + 0x54);
    if (uVar7 != 0) {
LAB_0002308b:
      iVar8 = *(int *)(param_1 + 0x5c);
      if (iVar8 == 0) {
        uVar3 = dcgettext(0,"Section headers are not available!\n",5);
        error(uVar3);
        return 0;
      }
      DAT_000b6314 = calloc(uVar7,4);
      if (DAT_000b6314 == (void *)0x0) {
        uVar3 = dcgettext(0,"Out of memory reading %u section group headers\n",5);
        error(uVar3,uVar7);
        return 0;
      }
      DAT_000b631c = 0;
      __nmemb = 0;
      uVar2 = 0;
      bVar1 = false;
      iVar6 = iVar8;
      do {
        if (*(int *)(iVar6 + 4) == 0x11) {
          bVar1 = true;
          __nmemb = __nmemb + 1;
        }
        uVar2 = uVar2 + 1;
        iVar6 = iVar6 + 0x48;
      } while (uVar2 < uVar7);
      if ((bVar1) && (DAT_000b631c = __nmemb, __nmemb != 0)) {
        DAT_000b6318 = calloc(__nmemb,8);
        if (DAT_000b6318 == (void *)0x0) {
          uVar3 = dcgettext(0,"Out of memory reading %lu groups\n",5);
          error(uVar3,__nmemb);
          return 0;
        }
        uVar7 = 0;
        local_70 = (void *)0x0;
        local_60 = 0;
LAB_0002317f:
        do {
          if (*(int *)(iVar8 + 4) == 0x11) {
            uVar3 = FUN_00022190();
            if ((*(uint *)(param_1 + 0x54) <= *(uint *)(iVar8 + 0x28)) ||
               (iVar6 = *(int *)(param_1 + 0x5c) + *(uint *)(iVar8 + 0x28) * 0x48,
               *(int *)(iVar6 + 4) != 2)) {
              uVar7 = uVar7 + 1;
              iVar8 = iVar8 + 0x48;
              uVar5 = dcgettext(0,"Bad sh_link in group section `%s\'\n",5);
              error(uVar5,uVar3);
              if (*(uint *)(param_1 + 0x54) <= uVar7) goto LAB_00023370;
              goto LAB_0002317f;
            }
            if (iVar6 != local_60) {
              if (local_70 != (void *)0x0) {
                free(local_70);
              }
              if (DAT_000b6324 == 0) {
                local_70 = (void *)FUN_00022830();
              }
              else {
                local_70 = (void *)FUN_000222e0();
              }
            }
            if (local_70 == (void *)0x0) {
              pcVar4 = "Corrupt header in group section `%s\'\n";
            }
            else {
              pcVar4 = "Bad sh_info in group section `%s\'\n";
            }
            uVar5 = dcgettext(0,pcVar4,5);
            error(uVar5,uVar3);
            local_60 = iVar6;
          }
          uVar7 = uVar7 + 1;
          iVar8 = iVar8 + 0x48;
          if (*(uint *)(param_1 + 0x54) <= uVar7) {
LAB_00023370:
            if (local_70 == (void *)0x0) {
              return 1;
            }
            free(local_70);
            return 1;
          }
        } while( true );
      }
      if (DAT_000b6358 == 0) {
        return 1;
      }
      pcVar4 = "\nThere are no section groups in this file.\n";
      goto LAB_000232cb;
    }
  }
  else {
    uVar7 = *(uint *)(param_1 + 0x54);
    if (uVar7 != 0) goto LAB_0002308b;
    if (DAT_000b6358 == 0) {
      return 1;
    }
  }
  pcVar4 = "\nThere are no sections to group in this file.\n";
LAB_000232cb:
  pcVar4 = (char *)dcgettext(0,pcVar4,5);
  printf(pcVar4);
  return 1;
}

