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

bfd_boolean __regparm3 process_archive(Filedata *filedata,bfd_boolean is_thin_archive)

{
  undefined *puVar1;
  ulong uVar2;
  int iVar3;
  size_t sVar4;
  char *pcVar5;
  char *pcVar6;
  bfd_boolean bVar7;
  long __off;
  Filedata *pFVar8;
  char *pcVar9;
  bfd_boolean bVar10;
  uint uVar11;
  byte bVar12;
  uint local_1a0;
  archive_info *local_198;
  bfd_boolean local_194;
  bfd_boolean local_190;
  archive_info arch;
  archive_info nested_arch;
  Filedata thin_filedata;
  
  bVar12 = 0;
  arch.file_name = (char *)0x0;
  arch.file = (FILE *)0x0;
  arch.index_array = (elf_vma *)0x0;
  arch.sym_table = (char *)0x0;
  arch.longnames = (char *)0x0;
  nested_arch.file_name = (char *)0x0;
  nested_arch.file = (FILE *)0x0;
  nested_arch.index_array = (elf_vma *)0x0;
  nested_arch.sym_table = (char *)0x0;
  nested_arch.longnames = (char *)0x0;
  show_name = 1;
  iVar3 = setup_archive(&arch,filedata->file_name,filedata->handle,is_thin_archive,do_archive_index)
  ;
  uVar2 = arch.sym_size;
  uVar11 = (uint)arch.index_num;
  if (iVar3 == 0) {
    if (do_archive_index == 0) {
      local_194 = 1;
    }
    else {
      pcVar5 = filedata->file_name;
      if (arch.sym_table == (char *)0x0) {
        pcVar6 = (char *)dcgettext(0,"%s: unable to dump the index as none was found\n",5);
        error(pcVar6,pcVar5);
        local_194 = 1;
      }
      else {
        pcVar6 = (char *)dcgettext(0,
                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"
                                   ,5);
        printf(pcVar6,pcVar5,uVar11,uVar2);
        __off = ftell((FILE *)filedata->handle);
        puVar1 = PTR_stdout_000b3fd8;
        if (arch.index_num._4_4_ == 0 && (uint)arch.index_num == 0) {
          local_1a0 = 0;
          local_194 = 1;
        }
        else {
          uVar11 = 0;
          local_1a0 = 0;
          do {
            if ((((uVar11 == 0) ||
                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||
                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=
                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&
                (pcVar5 = get_archive_member_name_at
                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),
                pcVar5 != (char *)0x0)) &&
               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)) {
              pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);
              pcVar6 = pcVar5;
              printf(pcVar9);
              print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));
              putc(10,*(FILE **)puVar1);
              free(pcVar5);
            }
            if (arch.sym_size <= local_1a0) {
              pcVar5 = filedata->file_name;
              pcVar6 = (char *)dcgettext(0,
                                         "%s: end of the symbol table reached before the end of the index\n"
                                         ,5);
              error(pcVar6,pcVar5);
              local_194 = 0;
              goto LAB_0004a7a7;
            }
            uVar11 = uVar11 + 1;
            printf("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0);
            uVar2 = arch.sym_size;
            sVar4 = strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0);
            local_1a0 = sVar4 + 1 + local_1a0;
          } while (arch.index_num._4_4_ != 0 ||
                   (uint)-arch.index_num._4_4_ < (uint)(uVar11 < (uint)arch.index_num));
          local_194 = 1;
          arch.sym_size = uVar2;
        }
LAB_0004a7a7:
        if (arch.uses_64bit_indicies == 0) {
          uVar11 = local_1a0 + 1 & 0xfffffffe;
        }
        else {
          uVar11 = local_1a0 + 7 & 0xfffffff8;
        }
        if (uVar11 < arch.sym_size) {
          pcVar5 = filedata->file_name;
          pcVar6 = (char *)dcngettext(0,
                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"
                                      ,
                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"
                                      ,arch.sym_size - uVar11,5);
          error(pcVar6,pcVar5,arch.sym_size - uVar11);
          local_194 = 0;
        }
        iVar3 = fseek((FILE *)filedata->handle,__off,0);
        if (iVar3 != 0) {
          pcVar5 = filedata->file_name;
          pcVar6 = (char *)dcgettext(0,
                                     "%s: failed to seek back to start of object files in the archive\n"
                                     ,5);
          error(pcVar6,pcVar5);
          local_190 = 0;
          goto LAB_0004a8e3;
        }
      }
      if ((((((((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&
                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&
               do_version == 0) && do_histogram == 0) && do_debugging == 0) && do_arch == 0) &&
           do_notes == 0) && do_section_groups == 0) && do_dyn_syms == 0) {
        local_190 = 1;
        goto LAB_0004a8e3;
      }
    }
    while( true ) {
      iVar3 = fseek((FILE *)filedata->handle,arch.next_arhdr_offset,0);
      if (iVar3 != 0) {
        pcVar5 = filedata->file_name;
        pcVar6 = (char *)dcgettext(0,"%s: failed to seek to next archive header\n",5);
        error(pcVar6,pcVar5);
        return 0;
      }
      sVar4 = fread(&arch.arhdr,1,0x3c,(FILE *)filedata->handle);
      local_190 = 0;
      if (sVar4 != 0x3c) break;
      if (arch.arhdr.ar_fmag != (char  [2])0xa60) {
        pcVar5 = "%s: did not find a valid archive header\n";
        pcVar6 = arch.file_name;
        goto LAB_0004a9ef;
      }
      arch.next_arhdr_offset = arch.next_arhdr_offset + 0x3c;
      archive_file_size = strtoul(arch.arhdr.ar_size,(char **)0x0,10);
      if ((archive_file_size & 1) != 0) {
        archive_file_size = archive_file_size + 1;
      }
      pcVar5 = get_archive_member_name(&arch,&nested_arch);
      if (pcVar5 == (char *)0x0) {
LAB_0004a928:
        pcVar6 = filedata->file_name;
        pcVar5 = "%s: bad archive file name\n";
LAB_0004a936:
        pcVar5 = (char *)dcgettext(0,pcVar5,5);
        error(pcVar5,pcVar6);
        goto LAB_0004a8e3;
      }
      sVar4 = strlen(pcVar5);
      pcVar6 = make_qualified_name(&arch,&nested_arch,pcVar5);
      if (pcVar6 == (char *)0x0) goto LAB_0004a928;
      if (is_thin_archive != 0) {
        if (arch.nested_member_origin == 0) {
          pcVar5 = adjust_relative_path(filedata->file_name,pcVar5,sVar4);
          if (pcVar5 == (char *)0x0) goto LAB_0004a8db;
          pFVar8 = open_file(pcVar5);
          if (pFVar8 != (Filedata *)0x0) {
            archive_file_offset = arch.nested_member_origin;
            pFVar8->file_name = pcVar6;
            bVar7 = process_object(pFVar8);
            bVar10 = 0;
            if (bVar7 != 0) {
              bVar10 = local_194;
            }
            close_file(pFVar8);
            free(pcVar5);
            goto LAB_0004a469;
          }
          pcVar6 = (char *)dcgettext(0,"Input file \'%s\' is not readable.\n",5);
          error(pcVar6,pcVar5);
          free(pcVar5);
        }
        else {
          pFVar8 = &thin_filedata;
          for (iVar3 = 0x1d; iVar3 != 0; iVar3 = iVar3 + -1) {
            pFVar8->file_name = (char *)0x0;
            pFVar8 = (Filedata *)((int)pFVar8 + (uint)bVar12 * -8 + 4);
          }
          if (nested_arch.file != (FILE *)0x0) {
            archive_file_offset = arch.nested_member_origin + 0x3c;
            iVar3 = fseek((FILE *)nested_arch.file,archive_file_offset,0);
            if (iVar3 == 0) {
              thin_filedata.handle = nested_arch.file;
              thin_filedata.file_name = pcVar6;
              bVar7 = process_object(&thin_filedata);
              bVar10 = 0;
              if (bVar7 != 0) {
                bVar10 = local_194;
              }
              goto LAB_0004a469;
            }
            pcVar5 = "%s: failed to seek to archive member.\n";
            pcVar6 = nested_arch.file_name;
            goto LAB_0004a936;
          }
          pcVar6 = filedata->file_name;
          pcVar9 = (char *)dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);
          error(pcVar9,pcVar6,pcVar5);
        }
        goto LAB_0004a8e3;
      }
      archive_file_offset = arch.next_arhdr_offset;
      arch.next_arhdr_offset = arch.next_arhdr_offset + archive_file_size;
      filedata->file_name = pcVar6;
      bVar7 = process_object(filedata);
      bVar10 = local_194;
      if (bVar7 == 0) {
        bVar10 = 0;
      }
LAB_0004a469:
      local_194 = bVar10;
      if (filedata->dump_sects != (dump_type *)0x0) {
        free(filedata->dump_sects);
        filedata->dump_sects = (dump_type *)0x0;
        filedata->num_dump_sects = 0;
      }
      free(pcVar6);
    }
    if (sVar4 == 0) {
      local_190 = local_194;
    }
    else {
      pcVar6 = filedata->file_name;
      pcVar5 = "%s: failed to read archive header\n";
LAB_0004a9ef:
      pcVar5 = (char *)dcgettext(0,pcVar5,5);
      error(pcVar5,pcVar6);
    }
  }
  else {
LAB_0004a8db:
    local_190 = 0;
  }
LAB_0004a8e3:
  local_198 = &nested_arch;
  if (nested_arch.file != (FILE *)0x0) {
    fclose((FILE *)nested_arch.file);
  }
  release_archive(local_198);
  release_archive(&arch);
  return local_190;
}



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

undefined4 __regparm3 FUN_0004a360(undefined4 *param_1,int param_2)

{
  int iVar1;
  undefined *puVar2;
  uint uVar3;
  int iVar4;
  size_t sVar5;
  char *pcVar6;
  void *pvVar7;
  long __off;
  void *__ptr;
  undefined4 *puVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  void **ppvVar12;
  byte bVar13;
  uint local_1a0;
  undefined4 *local_198;
  undefined4 local_194;
  undefined4 local_190;
  undefined4 local_170;
  undefined4 local_16c;
  uint local_168;
  int local_164;
  int local_160;
  int local_15c;
  uint local_158;
  undefined4 local_154;
  int local_14c;
  int local_148;
  int local_140;
  undefined1 local_13c [48];
  char local_10c [10];
  short local_102;
  undefined4 local_100;
  FILE *local_fc;
  undefined4 local_f0;
  undefined4 local_ec;
  undefined4 local_e4;
  void *local_90;
  FILE *local_8c;
  undefined4 uStack_14;
  
  bVar13 = 0;
  uStack_14 = 0x4a36b;
  local_170 = 0;
  local_16c = 0;
  local_160 = 0;
  local_15c = 0;
  local_154 = 0;
  local_100 = 0;
  local_fc = (FILE *)0x0;
  local_f0 = 0;
  local_ec = 0;
  local_e4 = 0;
  DAT_000b6370 = 1;
  iVar4 = FUN_000672b0(&local_170,*param_1,param_1[1],param_2,DAT_000b6328);
  uVar3 = local_158;
  uVar11 = local_168;
  if (iVar4 == 0) {
    if (DAT_000b6328 == 0) {
      local_194 = 1;
    }
    else {
      uVar10 = *param_1;
      if (local_15c == 0) {
        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);
        error(uVar9,uVar10);
        local_194 = 1;
      }
      else {
        pcVar6 = (char *)dcgettext(0,
                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"
                                   ,5);
        printf(pcVar6,uVar10,uVar11,uVar3);
        __off = ftell((FILE *)param_1[1]);
        puVar2 = PTR_stdout_000b3fd8;
        if (local_164 == 0 && local_168 == 0) {
          local_1a0 = 0;
          local_194 = 1;
        }
        else {
          uVar11 = 0;
          local_1a0 = 0;
          do {
            iVar4 = uVar11 * 8;
            iVar1 = *(int *)(local_160 + uVar11 * 8);
            if ((((uVar11 == 0) ||
                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||
                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&
                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&
               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))
            {
              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);
              printf(pcVar6,pvVar7);
              FUN_0001e910();
              putc(10,*(FILE **)puVar2);
              free(pvVar7);
            }
            if (local_158 <= local_1a0) {
              uVar10 = *param_1;
              uVar9 = dcgettext(0,
                                "%s: end of the symbol table reached before the end of the index\n",
                                5);
              error(uVar9,uVar10);
              local_194 = 0;
              goto LAB_0004a7a7;
            }
            uVar11 = uVar11 + 1;
            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);
            uVar3 = local_158;
            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);
            local_1a0 = sVar5 + 1 + local_1a0;
          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));
          local_194 = 1;
          local_158 = uVar3;
        }
LAB_0004a7a7:
        if (local_140 == 0) {
          uVar11 = local_1a0 + 1 & 0xfffffffe;
        }
        else {
          uVar11 = local_1a0 + 7 & 0xfffffff8;
        }
        if (uVar11 < local_158) {
          uVar10 = *param_1;
          uVar9 = dcngettext(0,
                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"
                             ,
                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"
                             ,local_158 - uVar11,5);
          error(uVar9,uVar10,local_158 - uVar11);
          local_194 = 0;
        }
        iVar4 = fseek((FILE *)param_1[1],__off,0);
        if (iVar4 != 0) {
          uVar10 = *param_1;
          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)
          ;
          error(uVar9,uVar10);
          local_190 = 0;
          goto LAB_0004a8e3;
        }
      }
      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&
                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&
                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0
              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&
          DAT_000b6358 == 0) && DAT_000b6364 == 0) {
        local_190 = 1;
        goto LAB_0004a8e3;
      }
    }
    while( true ) {
      iVar4 = fseek((FILE *)param_1[1],local_148,0);
      if (iVar4 != 0) {
        uVar10 = *param_1;
        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);
        error(uVar9,uVar10);
        return 0;
      }
      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);
      local_190 = 0;
      if (sVar5 != 0x3c) break;
      if (local_102 != 0xa60) {
        pcVar6 = "%s: did not find a valid archive header\n";
        uVar10 = local_170;
        goto LAB_0004a9ef;
      }
      local_148 = local_148 + 0x3c;
      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);
      if ((DAT_000b754c & 1) != 0) {
        DAT_000b754c = DAT_000b754c + 1;
      }
      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);
      if (pcVar6 == (char *)0x0) {
LAB_0004a928:
        uVar10 = *param_1;
        pcVar6 = "%s: bad archive file name\n";
LAB_0004a936:
        uVar9 = dcgettext(0,pcVar6,5);
        error(uVar9,uVar10);
        goto LAB_0004a8e3;
      }
      sVar5 = strlen(pcVar6);
      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);
      if (pvVar7 == (void *)0x0) goto LAB_0004a928;
      if (param_2 != 0) {
        if (local_14c == 0) {
          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);
          if (__ptr == (void *)0x0) goto LAB_0004a8db;
          puVar8 = (undefined4 *)FUN_000268f0();
          if (puVar8 != (undefined4 *)0x0) {
            DAT_000b7550 = local_14c;
            *puVar8 = pvVar7;
            iVar4 = FUN_00045c20();
            uVar10 = 0;
            if (iVar4 != 0) {
              uVar10 = local_194;
            }
            FUN_0001e670();
            free(__ptr);
            goto LAB_0004a469;
          }
          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);
          error(uVar10,__ptr);
          free(__ptr);
        }
        else {
          ppvVar12 = &local_90;
          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {
            *ppvVar12 = (void *)0x0;
            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;
          }
          if (local_fc != (FILE *)0x0) {
            DAT_000b7550 = local_14c + 0x3c;
            iVar4 = fseek(local_fc,DAT_000b7550,0);
            if (iVar4 == 0) {
              local_8c = local_fc;
              local_90 = pvVar7;
              iVar4 = FUN_00045c20();
              uVar10 = 0;
              if (iVar4 != 0) {
                uVar10 = local_194;
              }
              goto LAB_0004a469;
            }
            pcVar6 = "%s: failed to seek to archive member.\n";
            uVar10 = local_100;
            goto LAB_0004a936;
          }
          uVar10 = *param_1;
          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);
          error(uVar9,uVar10,pcVar6);
        }
        goto LAB_0004a8e3;
      }
      DAT_000b7550 = local_148;
      local_148 = local_148 + DAT_000b754c;
      *param_1 = pvVar7;
      iVar4 = FUN_00045c20();
      uVar10 = local_194;
      if (iVar4 == 0) {
        uVar10 = 0;
      }
LAB_0004a469:
      local_194 = uVar10;
      if ((void *)param_1[0x1b] != (void *)0x0) {
        free((void *)param_1[0x1b]);
        param_1[0x1b] = 0;
        param_1[0x1c] = 0;
      }
      free(pvVar7);
    }
    if (sVar5 == 0) {
      local_190 = local_194;
    }
    else {
      uVar10 = *param_1;
      pcVar6 = "%s: failed to read archive header\n";
LAB_0004a9ef:
      uVar9 = dcgettext(0,pcVar6,5);
      error(uVar9,uVar10);
    }
  }
  else {
LAB_0004a8db:
    local_190 = 0;
  }
LAB_0004a8e3:
  local_198 = &local_100;
  if (local_fc != (FILE *)0x0) {
    fclose(local_fc);
  }
  FUN_000675d0(local_198);
  FUN_000675d0(&local_170);
  return local_190;
}


PUSH EBP
MOV EBP,EAX
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00013f70
ADD EBX,0x69c95
SUB ESP,0x1a8
MOV dword ptr [ESP + 0x2c],EDX
MOV dword ptr [ESP + 0x48],0x0
MOV dword ptr [ESP + 0x4c],0x0
MOV dword ptr [ESP + 0x58],0x0
MOV dword ptr [ESP + 0x5c],0x0
MOV dword ptr [ESP + 0x64],0x0
MOV dword ptr [ESP + 0xb8],0x0
MOV dword ptr [ESP + 0xbc],0x0
MOV dword ptr [ESP + 0xc8],0x0
MOV dword ptr [ESP + 0xcc],0x0
MOV dword ptr [ESP + 0xd4],0x0
PUSH dword ptr [EBX + 0x2328]
PUSH EDX
PUSH dword ptr [EAX + 0x4]
PUSH dword ptr [EAX]
MOV dword ptr [EBX + 0x2370],0x1
LEA EAX,[ESP + 0x58]
MOV dword ptr [ESP + 0x2c],EAX
PUSH EAX
CALL 0x000672b0
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x0004a8d0
MOV EAX,dword ptr [EBX + 0x2328]
TEST EAX,EAX
JNZ 0x0004a5f0
MOV dword ptr [ESP + 0x18],0x1
LEA EAX,[ESP + 0x70]
MOV dword ptr [ESP + 0x24],EAX
LEA EAX,[ESP + 0xa0]
MOV dword ptr [ESP + 0x28],EAX
JMP 0x0004a499
MOV EAX,dword ptr [ESP + 0x64]
MOV dword ptr [EBX + 0x3550],EAX
ADD EAX,dword ptr [EBX + 0x354c]
MOV dword ptr [ESP + 0x64],EAX
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [EBP],EAX
MOV EAX,EBP
CALL 0x00045c20
TEST EAX,EAX
MOV EAX,dword ptr [ESP + 0x18]
CMOVZ EAX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [EBP + 0x6c]
TEST EAX,EAX
JZ 0x0004a48a
SUB ESP,0xc
PUSH EAX
CALL 0x000130a0
MOV dword ptr [EBP + 0x6c],0x0
ADD ESP,0x10
MOV dword ptr [EBP + 0x70],0x0
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
CALL 0x000130a0
ADD ESP,0x10
SUB ESP,0x4
PUSH 0x0
PUSH dword ptr [ESP + 0x6c]
PUSH dword ptr [EBP + 0x4]
CALL 0x00013130
MOV dword ptr [ESP + 0x2c],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004a980
PUSH dword ptr [EBP + 0x4]
PUSH 0x3c
PUSH 0x1
PUSH dword ptr [ESP + 0x30]
CALL 0x00013180
ADD ESP,0x10
CMP EAX,0x3c
JNZ 0x0004a9c0
CMP word ptr [ESP + 0xaa],0xa60
JNZ 0x0004a9e0
ADD dword ptr [ESP + 0x64],0x3c
SUB ESP,0x4
PUSH 0xa
PUSH 0x0
PUSH dword ptr [ESP + 0x34]
CALL 0x00013230
POP EDX
POP ECX
TEST AL,0x1
LEA EDX,[EAX + 0x1]
CMOVNZ EAX,EDX
MOV dword ptr [EBX + 0x354c],EAX
LEA EAX,[ESP + 0xb4]
MOV dword ptr [ESP + 0x1c],EAX
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00067770
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0004a928
SUB ESP,0xc
PUSH EAX
CALL 0x00013260
ADD ESP,0xc
PUSH ESI
MOV EDI,EAX
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x1c]
CALL 0x000679c0
MOV dword ptr [ESP + 0x1c],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004a928
MOV EAX,dword ptr [ESP + 0x20]
TEST EAX,EAX
JZ 0x0004a438
MOV EDX,dword ptr [ESP + 0x60]
TEST EDX,EDX
JZ 0x0004a858
MOV EAX,dword ptr [ESP + 0x1c]
LEA EDI,[ESP + 0x11c]
MOV ECX,0x1d
MOV dword ptr [ESP + 0x2c],EDI
STOSD.REP ES:EDI
MOV ECX,dword ptr [ESP + 0xb0]
TEST ECX,ECX
JZ 0x0004aabf
SUB ESP,0x4
LEA EAX,[EDX + 0x3c]
PUSH 0x0
PUSH EAX
PUSH ECX
MOV dword ptr [EBX + 0x3550],EAX
CALL 0x00013130
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JNZ 0x0004aaea
MOV EAX,dword ptr [ESP + 0xb0]
MOV dword ptr [ESP + 0x120],EAX
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x11c],EAX
MOV EAX,dword ptr [ESP + 0x2c]
CALL 0x00045c20
TEST EAX,EAX
CMOVNZ ESI,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x18],ESI
JMP 0x0004a469
MOV EDI,dword ptr [ESP + 0x50]
MOV ESI,dword ptr [EBP]
TEST EDI,EDI
JZ 0x0004aa18
MOV EDX,dword ptr [ESP + 0x54]
MOV EDI,dword ptr [ESP + 0x44]
LEA EAX,[EBX + 0xfffd22e4]
SUB ESP,0x4
MOV dword ptr [ESP + 0x10],EDX
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
MOV EDX,dword ptr [ESP + 0x1c]
PUSH EDX
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x00013060
ADD ESP,0x14
PUSH dword ptr [EBP + 0x4]
CALL 0x00013290
MOV dword ptr [ESP + 0x2c],EAX
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x48]
OR EAX,dword ptr [ESP + 0x44]
JZ 0x0004ab40
LEA EAX,[ESP + 0xac]
XOR ESI,ESI
XOR EDI,EDI
MOV dword ptr [ESP + 0x24],EBP
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,dword ptr [EBX + 0xffffffd8]
MOV EBP,EDI
MOV dword ptr [ESP + 0xc],ESI
MOV dword ptr [ESP + 0x18],EAX
JMP 0x0004a6c4
SUB ESP,0x4
ADD EBP,0x1
MOV ESI,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESP + 0x54]
SUB EAX,ESI
ADD EDX,ESI
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xfffdf8d0]
PUSH EAX
CALL 0x00013060
MOV EDI,dword ptr [ESP + 0x64]
POP EAX
POP EDX
MOV EAX,EDI
SUB EAX,ESI
PUSH EAX
MOV EAX,dword ptr [ESP + 0x5c]
ADD EAX,ESI
PUSH EAX
CALL 0x00013310
ADD ESP,0x10
XOR EDX,EDX
LEA EAX,[EAX + ESI*0x1 + 0x1]
CMP EBP,dword ptr [ESP + 0x44]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,EDX
SBB EAX,dword ptr [ESP + 0x48]
JNC 0x0004a960
MOV EAX,dword ptr [ESP + 0x4c]
LEA EDI,[EBP*0x8 + 0x0]
MOV ECX,dword ptr [EAX + EBP*0x8]
MOV EDX,dword ptr [EAX + EDI*0x1 + 0x4]
TEST EBP,EBP
JZ 0x0004a6e8
MOV ESI,dword ptr [EAX + EDI*0x1 + -0x8]
XOR EDX,dword ptr [EAX + EDI*0x1 + -0x4]
XOR ESI,ECX
OR ESI,EDX
JZ 0x0004a763
SUB ESP,0x4
PUSH dword ptr [ESP + 0x18]
PUSH ECX
MOV ESI,dword ptr [ESP + 0x1c]
PUSH ESI
CALL 0x000676c0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004a763
SUB ESP,0x4
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
PUSH ESI
CALL 0x000679c0
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0004a763
SUB ESP,0x4
LEA EAX,[EBX + 0xfffd232c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP ECX
POP EDX
PUSH ESI
PUSH EAX
CALL 0x00013060
MOV EAX,dword ptr [ESP + 0x5c]
MOV ECX,0x4
MOV EDX,dword ptr [EAX + EDI*0x1 + 0x4]
MOV EAX,dword ptr [EAX + EDI*0x1]
CALL 0x0001e910
POP ECX
POP EDI
MOV EAX,dword ptr [ESP + 0x20]
PUSH dword ptr [EAX]
PUSH 0xa
CALL 0x00013360
MOV dword ptr [ESP],ESI
CALL 0x000130a0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x54]
CMP EAX,dword ptr [ESP + 0xc]
JA 0x0004a670
MOV EBP,dword ptr [ESP + 0x24]
MOV ESI,dword ptr [ESP + 0xc]
LEA EAX,[EBX + 0xfffd2350]
SUB ESP,0x4
MOV EDI,dword ptr [EBP]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP ECX
POP EDX
PUSH EDI
PUSH EAX
CALL 0x00066870
MOV ECX,dword ptr [ESP + 0x64]
ADD ESP,0x10
MOV dword ptr [ESP + 0x18],0x0
MOV EAX,dword ptr [ESP + 0x6c]
TEST EAX,EAX
JZ 0x0004a950
LEA EAX,[ESI + 0x7]
AND EAX,0xfffffff8
CMP EAX,ECX
JC 0x0004aa48
SUB ESP,0x4
PUSH 0x0
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [EBP + 0x4]
CALL 0x00013130
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004aa85
MOV EAX,dword ptr [EBX + 0x236c]
OR EAX,dword ptr [EBX + 0x2368]
OR EAX,dword ptr [EBX + 0x2360]
OR EAX,dword ptr [EBX + 0x234c]
OR EAX,dword ptr [EBX + 0x235c]
OR EAX,dword ptr [EBX + 0x2350]
OR EAX,dword ptr [EBX + 0x2344]
OR EAX,dword ptr [EBX + 0x2340]
OR EAX,dword ptr [EBX + 0x233c]
OR EAX,dword ptr [EBX + 0x2338]
OR EAX,dword ptr [EBX + 0x2334]
OR EAX,dword ptr [EBX + 0x2330]
OR EAX,dword ptr [EBX + 0x232c]
OR EAX,dword ptr [EBX + 0x2358]
OR EAX,dword ptr [EBX + 0x2364]
JNZ 0x0004a41f
LEA EAX,[ESP + 0xac]
MOV dword ptr [ESP + 0x1c],0x1
MOV dword ptr [ESP + 0x14],EAX
JMP 0x0004a8e3
MOV dword ptr [ESP + 0x2c],EDX
SUB ESP,0x4
PUSH EDI
PUSH ESI
PUSH dword ptr [EBP]
CALL 0x00067180
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JZ 0x0004a8db
CALL 0x000268f0
MOV EDX,dword ptr [ESP + 0x2c]
TEST EAX,EAX
MOV ESI,EAX
JZ 0x0004ab14
MOV EAX,dword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x14],EDX
MOV dword ptr [EBX + 0x3550],EAX
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESI],EAX
MOV EAX,ESI
CALL 0x00045c20
MOV EDX,dword ptr [ESP + 0x14]
TEST EAX,EAX
CMOVNZ EDX,dword ptr [ESP + 0x18]
MOV EAX,ESI
MOV dword ptr [ESP + 0x18],EDX
CALL 0x0001e670
SUB ESP,0xc
PUSH EDI
CALL 0x000130a0
ADD ESP,0x10
JMP 0x0004a469
LEA EAX,[ESP + 0xac]
MOV dword ptr [ESP + 0x14],EAX
MOV dword ptr [ESP + 0x1c],0x0
MOV EAX,dword ptr [ESP + 0xb0]
TEST EAX,EAX
JZ 0x0004a8fa
SUB ESP,0xc
PUSH EAX
CALL 0x000130e0
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [ESP + 0x20]
CALL 0x000675d0
POP EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x000675d0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x1c]
ADD ESP,0x19c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
MOV ESI,dword ptr [EBP]
LEA EAX,[EBX + 0xfffca049]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x00066870
ADD ESP,0x10
JMP 0x0004a8e3
LEA EAX,[ESI + 0x1]
AND EAX,0xfffffffe
JMP 0x0004a7b9
MOV ECX,EDI
MOV ESI,dword ptr [ESP + 0xc]
MOV EBP,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x18],0x1
JMP 0x0004a7a7
SUB ESP,0x4
LEA EAX,[EBX + 0xfffd2498]
MOV ESI,dword ptr [EBP]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x00066870
ADD ESP,0x10
MOV dword ptr [ESP + 0x1c],0x0
MOV EAX,dword ptr [ESP + 0x1c]
ADD ESP,0x19c
POP EBX
POP ESI
POP EDI
POP EBP
RET
TEST EAX,EAX
JNZ 0x0004ab01
MOV EAX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[ESP + 0xac]
MOV dword ptr [ESP + 0x14],EAX
JMP 0x0004a8e3
MOV ESI,dword ptr [ESP + 0x3c]
SUB ESP,0x4
LEA EAX,[EBX + 0xfffd24e8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP EDI
POP EBP
PUSH ESI
PUSH EAX
CALL 0x00066870
ADD ESP,0x10
LEA EAX,[ESP + 0xac]
MOV dword ptr [ESP + 0x14],EAX
JMP 0x0004a8e3
SUB ESP,0x4
LEA EAX,[EBX + 0xfffd22b4]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x00066870
ADD ESP,0x10
MOV dword ptr [ESP + 0x18],0x1
JMP 0x0004a7dd
SUB ESP,0xc
SUB ECX,EAX
LEA EAX,[EBX + 0xfffd2394]
MOV EDI,dword ptr [EBP]
PUSH 0x5
MOV ESI,ECX
PUSH ECX
PUSH EAX
LEA EAX,[EBX + 0xfffd23f4]
PUSH EAX
PUSH 0x0
CALL 0x00013410
ADD ESP,0x1c
PUSH ESI
PUSH EDI
PUSH EAX
CALL 0x00066870
ADD ESP,0x10
MOV dword ptr [ESP + 0x18],0x0
JMP 0x0004a7c1
SUB ESP,0x4
LEA EAX,[EBX + 0xfffd2454]
MOV ESI,dword ptr [EBP]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP EDI
POP EBP
PUSH ESI
PUSH EAX
CALL 0x00066870
ADD ESP,0x10
LEA EAX,[ESP + 0xac]
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0x14],EAX
JMP 0x0004a8e3
SUB ESP,0x4
LEA EAX,[EBX + 0xfffd2538]
MOV EDI,ESI
MOV ESI,dword ptr [EBP]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
ADD ESP,0xc
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x00066870
ADD ESP,0x10
JMP 0x0004a8e3
MOV ESI,dword ptr [ESP + 0xac]
SUB ESP,0x4
LEA EAX,[EBX + 0xfffd2560]
PUSH 0x5
JMP 0x0004a936
SUB ESP,0x4
MOV ESI,dword ptr [EBP]
LEA EAX,[EBX + 0xfffd24c4]
PUSH 0x5
JMP 0x0004a9ef
SUB ESP,0x4
LEA EAX,[EBX + 0xfffd2514]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000130f0
POP ESI
POP EBP
PUSH EDI
PUSH EAX
CALL 0x00066870
MOV dword ptr [ESP],EDI
CALL 0x000130a0
ADD ESP,0x10
JMP 0x0004a8e3
MOV ECX,dword ptr [ESP + 0x54]
XOR ESI,ESI
MOV dword ptr [ESP + 0x18],0x1
JMP 0x0004a7a7
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 __regparm3 FUN_0004a360(undefined4 *param_1,int param_2)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  size_t sVar5;\n  char *pcVar6;\n  void *pvVar7;\n  long __off;\n  void *__ptr;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  void **ppvVar12;\n  byte bVar13;\n  uint local_1a0;\n  undefined4 *local_198;\n  undefined4 local_194;\n  undefined4 local_190;\n  undefined4 local_170;\n  undefined4 local_16c;\n  uint local_168;\n  int local_164;\n  int local_160;\n  int local_15c;\n  uint local_158;\n  undefined4 local_154;\n  int local_14c;\n  int local_148;\n  int local_140;\n  undefined1 local_13c [48];\n  char local_10c [10];\n  short local_102;\n  undefined4 local_100;\n  FILE *local_fc;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined4 local_e4;\n  void *local_90;\n  FILE *local_8c;\n  undefined4 uStack_14;\n  \n  bVar13 = 0;\n  uStack_14 = 0x4a36b;\n  local_170 = 0;\n  local_16c = 0;\n  local_160 = 0;\n  local_15c = 0;\n  local_154 = 0;\n  local_100 = 0;\n  local_fc = (FILE *)0x0;\n  local_f0 = 0;\n  local_ec = 0;\n  local_e4 = 0;\n  DAT_000b6370 = 1;\n  iVar4 = FUN_000672b0(&local_170,*param_1,param_1[1],param_2,DAT_000b6328);\n  uVar3 = local_158;\n  uVar11 = local_168;\n  if (iVar4 == 0) {\n    if (DAT_000b6328 == 0) {\n      local_194 = 1;\n    }\n    else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }\n    while( true ) {\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }\n    if (sVar5 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }\n  }\n  else {\nLAB_0004a8db:\n    local_190 = 0;\n  }\nLAB_0004a8e3:\n  local_198 = &local_100;\n  if (local_fc != (FILE *)0x0) {\n    fclose(local_fc);\n  }\n  FUN_000675d0(local_198);\n  FUN_000675d0(&local_170);\n  return local_190;\n}\n\n" comment (function_definition "undefined4 __regparm3 FUN_0004a360(undefined4 *param_1,int param_2)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  size_t sVar5;\n  char *pcVar6;\n  void *pvVar7;\n  long __off;\n  void *__ptr;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  void **ppvVar12;\n  byte bVar13;\n  uint local_1a0;\n  undefined4 *local_198;\n  undefined4 local_194;\n  undefined4 local_190;\n  undefined4 local_170;\n  undefined4 local_16c;\n  uint local_168;\n  int local_164;\n  int local_160;\n  int local_15c;\n  uint local_158;\n  undefined4 local_154;\n  int local_14c;\n  int local_148;\n  int local_140;\n  undefined1 local_13c [48];\n  char local_10c [10];\n  short local_102;\n  undefined4 local_100;\n  FILE *local_fc;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined4 local_e4;\n  void *local_90;\n  FILE *local_8c;\n  undefined4 uStack_14;\n  \n  bVar13 = 0;\n  uStack_14 = 0x4a36b;\n  local_170 = 0;\n  local_16c = 0;\n  local_160 = 0;\n  local_15c = 0;\n  local_154 = 0;\n  local_100 = 0;\n  local_fc = (FILE *)0x0;\n  local_f0 = 0;\n  local_ec = 0;\n  local_e4 = 0;\n  DAT_000b6370 = 1;\n  iVar4 = FUN_000672b0(&local_170,*param_1,param_1[1],param_2,DAT_000b6328);\n  uVar3 = local_158;\n  uVar11 = local_168;\n  if (iVar4 == 0) {\n    if (DAT_000b6328 == 0) {\n      local_194 = 1;\n    }\n    else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }\n    while( true ) {\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }\n    if (sVar5 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }\n  }\n  else {\nLAB_0004a8db:\n    local_190 = 0;\n  }\nLAB_0004a8e3:\n  local_198 = &local_100;\n  if (local_fc != (FILE *)0x0) {\n    fclose(local_fc);\n  }\n  FUN_000675d0(local_198);\n  FUN_000675d0(&local_170);\n  return local_190;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_0004a360(undefined4 *param_1,int param_2)" identifier (parameter_list "(undefined4 *param_1,int param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  size_t sVar5;\n  char *pcVar6;\n  void *pvVar7;\n  long __off;\n  void *__ptr;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  void **ppvVar12;\n  byte bVar13;\n  uint local_1a0;\n  undefined4 *local_198;\n  undefined4 local_194;\n  undefined4 local_190;\n  undefined4 local_170;\n  undefined4 local_16c;\n  uint local_168;\n  int local_164;\n  int local_160;\n  int local_15c;\n  uint local_158;\n  undefined4 local_154;\n  int local_14c;\n  int local_148;\n  int local_140;\n  undefined1 local_13c [48];\n  char local_10c [10];\n  short local_102;\n  undefined4 local_100;\n  FILE *local_fc;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined4 local_e4;\n  void *local_90;\n  FILE *local_8c;\n  undefined4 uStack_14;\n  \n  bVar13 = 0;\n  uStack_14 = 0x4a36b;\n  local_170 = 0;\n  local_16c = 0;\n  local_160 = 0;\n  local_15c = 0;\n  local_154 = 0;\n  local_100 = 0;\n  local_fc = (FILE *)0x0;\n  local_f0 = 0;\n  local_ec = 0;\n  local_e4 = 0;\n  DAT_000b6370 = 1;\n  iVar4 = FUN_000672b0(&local_170,*param_1,param_1[1],param_2,DAT_000b6328);\n  uVar3 = local_158;\n  uVar11 = local_168;\n  if (iVar4 == 0) {\n    if (DAT_000b6328 == 0) {\n      local_194 = 1;\n    }\n    else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }\n    while( true ) {\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }\n    if (sVar5 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }\n  }\n  else {\nLAB_0004a8db:\n    local_190 = 0;\n  }\nLAB_0004a8e3:\n  local_198 = &local_100;\n  if (local_fc != (FILE *)0x0) {\n    fclose(local_fc);\n  }\n  FUN_000675d0(local_198);\n  FUN_000675d0(&local_170);\n  return local_190;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "void *pvVar7;" primitive_type (pointer_declarator "*pvVar7" * identifier) ;) (declaration "long __off;" (sized_type_specifier "long" long) identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "void **ppvVar12;" primitive_type (pointer_declarator "**ppvVar12" * (pointer_declarator "*ppvVar12" * identifier)) ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "uint local_1a0;" type_identifier identifier ;) (declaration "undefined4 *local_198;" type_identifier (pointer_declarator "*local_198" * identifier) ;) (declaration "undefined4 local_194;" type_identifier identifier ;) (declaration "undefined4 local_190;" type_identifier identifier ;) (declaration "undefined4 local_170;" type_identifier identifier ;) (declaration "undefined4 local_16c;" type_identifier identifier ;) (declaration "uint local_168;" type_identifier identifier ;) (declaration "int local_164;" primitive_type identifier ;) (declaration "int local_160;" primitive_type identifier ;) (declaration "int local_15c;" primitive_type identifier ;) (declaration "uint local_158;" type_identifier identifier ;) (declaration "undefined4 local_154;" type_identifier identifier ;) (declaration "int local_14c;" primitive_type identifier ;) (declaration "int local_148;" primitive_type identifier ;) (declaration "int local_140;" primitive_type identifier ;) (declaration "undefined1 local_13c [48];" type_identifier (array_declarator "local_13c [48]" identifier [ number_literal ]) ;) (declaration "char local_10c [10];" primitive_type (array_declarator "local_10c [10]" identifier [ number_literal ]) ;) (declaration "short local_102;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined4 local_100;" type_identifier identifier ;) (declaration "FILE *local_fc;" type_identifier (pointer_declarator "*local_fc" * identifier) ;) (declaration "undefined4 local_f0;" type_identifier identifier ;) (declaration "undefined4 local_ec;" type_identifier identifier ;) (declaration "undefined4 local_e4;" type_identifier identifier ;) (declaration "void *local_90;" primitive_type (pointer_declarator "*local_90" * identifier) ;) (declaration "FILE *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x4a36b;" (assignment_expression "uStack_14 = 0x4a36b" identifier = number_literal) ;) (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" identifier = number_literal) ;) (expression_statement "local_16c = 0;" (assignment_expression "local_16c = 0" identifier = number_literal) ;) (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" identifier = number_literal) ;) (expression_statement "local_15c = 0;" (assignment_expression "local_15c = 0" identifier = number_literal) ;) (expression_statement "local_154 = 0;" (assignment_expression "local_154 = 0" identifier = number_literal) ;) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (expression_statement "local_fc = (FILE *)0x0;" (assignment_expression "local_fc = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" identifier = number_literal) ;) (expression_statement "DAT_000b6370 = 1;" (assignment_expression "DAT_000b6370 = 1" identifier = number_literal) ;) (expression_statement "iVar4 = FUN_000672b0(&local_170,*param_1,param_1[1],param_2,DAT_000b6328);" (assignment_expression "iVar4 = FUN_000672b0(&local_170,*param_1,param_1[1],param_2,DAT_000b6328)" identifier = (call_expression "FUN_000672b0(&local_170,*param_1,param_1[1],param_2,DAT_000b6328)" identifier (argument_list "(&local_170,*param_1,param_1[1],param_2,DAT_000b6328)" ( (pointer_expression "&local_170" & identifier) , (pointer_expression "*param_1" * identifier) , (subscript_expression "param_1[1]" identifier [ number_literal ]) , identifier , identifier )))) ;) (expression_statement "uVar3 = local_158;" (assignment_expression "uVar3 = local_158" identifier = identifier) ;) (expression_statement "uVar11 = local_168;" (assignment_expression "uVar11 = local_168" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\n    if (DAT_000b6328 == 0) {\n      local_194 = 1;\n    }\n    else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }\n    while( true ) {\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }\n    if (sVar5 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }\n  }\n  else {\nLAB_0004a8db:\n    local_190 = 0;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    if (DAT_000b6328 == 0) {\n      local_194 = 1;\n    }\n    else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }\n    while( true ) {\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }\n    if (sVar5 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }\n  }" { (if_statement "if (DAT_000b6328 == 0) {\n      local_194 = 1;\n    }\n    else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }" if (parenthesized_expression "(DAT_000b6328 == 0)" ( (binary_expression "DAT_000b6328 == 0" identifier == number_literal) )) (compound_statement "{\n      local_194 = 1;\n    }" { (expression_statement "local_194 = 1;" (assignment_expression "local_194 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }" else (compound_statement "{\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }" { (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }" if (parenthesized_expression "(local_15c == 0)" ( (binary_expression "local_15c == 0" identifier == number_literal) )) (compound_statement "{\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }" { (expression_statement "uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5)" identifier = (call_expression "dcgettext(0,"%s: unable to dump the index as none was found\n",5)" identifier (argument_list "(0,"%s: unable to dump the index as none was found\n",5)" ( number_literal , (string_literal ""%s: unable to dump the index as none was found\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar9,uVar10);" (call_expression "error(uVar9,uVar10)" identifier (argument_list "(uVar9,uVar10)" ( identifier , identifier ))) ;) (expression_statement "local_194 = 1;" (assignment_expression "local_194 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }" else (compound_statement "{\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }" { (expression_statement "pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5)" identifier (argument_list "(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5)" ( number_literal , (string_literal ""Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar6,uVar10,uVar11,uVar3);" (call_expression "printf(pcVar6,uVar10,uVar11,uVar3)" identifier (argument_list "(pcVar6,uVar10,uVar11,uVar3)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "__off = ftell((FILE *)param_1[1]);" (assignment_expression "__off = ftell((FILE *)param_1[1])" identifier = (call_expression "ftell((FILE *)param_1[1])" identifier (argument_list "((FILE *)param_1[1])" ( (cast_expression "(FILE *)param_1[1]" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) )))) ;) (expression_statement "puVar2 = PTR_stdout_000b3fd8;" (assignment_expression "puVar2 = PTR_stdout_000b3fd8" identifier = identifier) ;) (if_statement "if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }" if (parenthesized_expression "(local_164 == 0 && local_168 == 0)" ( (binary_expression "local_164 == 0 && local_168 == 0" (binary_expression "local_164 == 0" identifier == number_literal) && (binary_expression "local_168 == 0" identifier == number_literal)) )) (compound_statement "{\n          local_1a0 = 0;\n          local_194 = 1;\n        }" { (expression_statement "local_1a0 = 0;" (assignment_expression "local_1a0 = 0" identifier = number_literal) ;) (expression_statement "local_194 = 1;" (assignment_expression "local_194 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }" else (compound_statement "{\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "local_1a0 = 0;" (assignment_expression "local_1a0 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));" do (compound_statement "{\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          }" { (expression_statement "iVar4 = uVar11 * 8;" (assignment_expression "iVar4 = uVar11 * 8" identifier = (binary_expression "uVar11 * 8" identifier * number_literal)) ;) (expression_statement "iVar1 = *(int *)(local_160 + uVar11 * 8);" (assignment_expression "iVar1 = *(int *)(local_160 + uVar11 * 8)" identifier = (pointer_expression "*(int *)(local_160 + uVar11 * 8)" * (cast_expression "(int *)(local_160 + uVar11 * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_160 + uVar11 * 8)" ( (binary_expression "local_160 + uVar11 * 8" identifier + (binary_expression "uVar11 * 8" identifier * number_literal)) ))))) ;) (if_statement "if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }" if (parenthesized_expression "((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))" ( (binary_expression "(((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0)" (parenthesized_expression "(((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0))" ( (binary_expression "((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)" (parenthesized_expression "((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4)))" ( (binary_expression "(uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))" (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))" ( (binary_expression "*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4)" (binary_expression "*(int *)(local_160 + -8 + iVar4) != iVar1" (pointer_expression "*(int *)(local_160 + -8 + iVar4)" * (cast_expression "(int *)(local_160 + -8 + iVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_160 + -8 + iVar4)" ( (binary_expression "local_160 + -8 + iVar4" (binary_expression "local_160 + -8" identifier + number_literal) + identifier) )))) != identifier) || (binary_expression "*(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4)" (pointer_expression "*(int *)(local_160 + 4 + iVar4)" * (cast_expression "(int *)(local_160 + 4 + iVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_160 + 4 + iVar4)" ( (binary_expression "local_160 + 4 + iVar4" (binary_expression "local_160 + 4" identifier + number_literal) + identifier) )))) != (pointer_expression "*(int *)(local_160 + -4 + iVar4)" * (cast_expression "(int *)(local_160 + -4 + iVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_160 + -4 + iVar4)" ( (binary_expression "local_160 + -4 + iVar4" (binary_expression "local_160 + -4" identifier + number_literal) + identifier) )))))) ))) )) && (parenthesized_expression "(iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)" ( (comma_expression "iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0" (assignment_expression "iVar4 = FUN_000676c0(&local_170,iVar1,&local_100)" identifier = (call_expression "FUN_000676c0(&local_170,iVar1,&local_100)" identifier (argument_list "(&local_170,iVar1,&local_100)" ( (pointer_expression "&local_170" & identifier) , identifier , (pointer_expression "&local_100" & identifier) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0)" ( (comma_expression "pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0" (assignment_expression "pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4)" identifier = (cast_expression "(void *)FUN_000679c0(&local_170,&local_100,iVar4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000679c0(&local_170,&local_100,iVar4)" identifier (argument_list "(&local_170,&local_100,iVar4)" ( (pointer_expression "&local_170" & identifier) , (pointer_expression "&local_100" & identifier) , identifier ))))) , (binary_expression "pvVar7 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }" { (expression_statement "pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5)" identifier = (cast_expression "(char *)dcgettext(0,"Contents of binary %s at offset ",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Contents of binary %s at offset ",5)" identifier (argument_list "(0,"Contents of binary %s at offset ",5)" ( number_literal , (string_literal ""Contents of binary %s at offset "" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar6,pvVar7);" (call_expression "printf(pcVar6,pvVar7)" identifier (argument_list "(pcVar6,pvVar7)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001e910();" (call_expression "FUN_0001e910()" identifier (argument_list "()" ( ))) ;) (expression_statement "putc(10,*(FILE **)puVar2);" (call_expression "putc(10,*(FILE **)puVar2)" identifier (argument_list "(10,*(FILE **)puVar2)" ( number_literal , (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "free(pvVar7);" (call_expression "free(pvVar7)" identifier (argument_list "(pvVar7)" ( identifier ))) ;) })) (if_statement "if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }" if (parenthesized_expression "(local_158 <= local_1a0)" ( (binary_expression "local_158 <= local_1a0" identifier <= identifier) )) (compound_statement "{\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }" { (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);" (assignment_expression "uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5)" identifier = (call_expression "dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5)" identifier (argument_list "(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5)" ( number_literal , (string_literal ""%s: end of the symbol table reached before the end of the index\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar9,uVar10);" (call_expression "error(uVar9,uVar10)" identifier (argument_list "(uVar9,uVar10)" ( identifier , identifier ))) ;) (expression_statement "local_194 = 0;" (assignment_expression "local_194 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0004a7a7;" goto statement_identifier ;) })) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);" (call_expression "printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0)" identifier (argument_list "("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0)" ( (string_literal ""\t%.*s\n"" " escape_sequence string_content escape_sequence ") , (binary_expression "local_158 - local_1a0" identifier - identifier) , (binary_expression "local_15c + local_1a0" identifier + identifier) ))) ;) (expression_statement "uVar3 = local_158;" (assignment_expression "uVar3 = local_158" identifier = identifier) ;) (expression_statement "sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);" (assignment_expression "sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0)" identifier = (call_expression "strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0)" identifier (argument_list "((char *)(local_15c + local_1a0),local_158 - local_1a0)" ( (cast_expression "(char *)(local_15c + local_1a0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_15c + local_1a0)" ( (binary_expression "local_15c + local_1a0" identifier + identifier) ))) , (binary_expression "local_158 - local_1a0" identifier - identifier) )))) ;) (expression_statement "local_1a0 = sVar5 + 1 + local_1a0;" (assignment_expression "local_1a0 = sVar5 + 1 + local_1a0" identifier = (binary_expression "sVar5 + 1 + local_1a0" (binary_expression "sVar5 + 1" identifier + number_literal) + identifier)) ;) }) while (parenthesized_expression "(local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168))" ( (binary_expression "local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168)" (binary_expression "local_164 != 0" identifier != number_literal) || (binary_expression "(uint)-local_164 < (uint)(uVar11 < local_168)" (binary_expression "(uint)-local_164" (parenthesized_expression "(uint)" ( identifier )) - identifier) < (call_expression "(uint)(uVar11 < local_168)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < local_168)" ( (binary_expression "uVar11 < local_168" identifier < identifier) ))))) )) ;) (expression_statement "local_194 = 1;" (assignment_expression "local_194 = 1" identifier = number_literal) ;) (expression_statement "local_158 = uVar3;" (assignment_expression "local_158 = uVar3" identifier = identifier) ;) }))) (labeled_statement "LAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }" statement_identifier : (if_statement "if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }" if (parenthesized_expression "(local_140 == 0)" ( (binary_expression "local_140 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }" { (expression_statement "uVar11 = local_1a0 + 1 & 0xfffffffe;" (assignment_expression "uVar11 = local_1a0 + 1 & 0xfffffffe" identifier = (binary_expression "local_1a0 + 1 & 0xfffffffe" (binary_expression "local_1a0 + 1" identifier + number_literal) & number_literal)) ;) }) (else_clause "else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }" else (compound_statement "{\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }" { (expression_statement "uVar11 = local_1a0 + 7 & 0xfffffff8;" (assignment_expression "uVar11 = local_1a0 + 7 & 0xfffffff8" identifier = (binary_expression "local_1a0 + 7 & 0xfffffff8" (binary_expression "local_1a0 + 7" identifier + number_literal) & number_literal)) ;) })))) (if_statement "if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }" if (parenthesized_expression "(uVar11 < local_158)" ( (binary_expression "uVar11 < local_158" identifier < identifier) )) (compound_statement "{\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }" { (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);" (assignment_expression "uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5)" identifier = (call_expression "dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5)" identifier (argument_list "(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5)" ( number_literal , (string_literal ""%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"" " string_content escape_sequence ") , (string_literal ""%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"" " string_content escape_sequence ") , (binary_expression "local_158 - uVar11" identifier - identifier) , number_literal )))) ;) (expression_statement "error(uVar9,uVar10,local_158 - uVar11);" (call_expression "error(uVar9,uVar10,local_158 - uVar11)" identifier (argument_list "(uVar9,uVar10,local_158 - uVar11)" ( identifier , identifier , (binary_expression "local_158 - uVar11" identifier - identifier) ))) ;) (expression_statement "local_194 = 0;" (assignment_expression "local_194 = 0" identifier = number_literal) ;) })) (expression_statement "iVar4 = fseek((FILE *)param_1[1],__off,0);" (assignment_expression "iVar4 = fseek((FILE *)param_1[1],__off,0)" identifier = (call_expression "fseek((FILE *)param_1[1],__off,0)" identifier (argument_list "((FILE *)param_1[1],__off,0)" ( (cast_expression "(FILE *)param_1[1]" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) , identifier , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }" { (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;" (assignment_expression "uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)" identifier = (call_expression "dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)" identifier (argument_list "(0,"%s: failed to seek back to start of object files in the archive\n",5)" ( number_literal , (string_literal ""%s: failed to seek back to start of object files in the archive\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar9,uVar10);" (call_expression "error(uVar9,uVar10)" identifier (argument_list "(uVar9,uVar10)" ( identifier , identifier ))) ;) (expression_statement "local_190 = 0;" (assignment_expression "local_190 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0004a8e3;" goto statement_identifier ;) })) }))) (if_statement "if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }" if (parenthesized_expression "((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0)" ( (binary_expression "(((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0" (parenthesized_expression "(((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0)" ( (binary_expression "((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0" (parenthesized_expression "((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0)" ( (binary_expression "(((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0" (parenthesized_expression "(((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0)" ( (binary_expression "((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0" (parenthesized_expression "((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0)" ( (binary_expression "(((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0" (parenthesized_expression "(((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              )" ( (binary_expression "((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0" (parenthesized_expression "((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0)" ( (binary_expression "(((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0" (parenthesized_expression "(((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0)" ( (binary_expression "((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0" (parenthesized_expression "((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0)" ( (binary_expression "(((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0" (parenthesized_expression "(((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0)" ( (binary_expression "((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0" (parenthesized_expression "((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0)" ( (binary_expression "(((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0" (parenthesized_expression "(((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0)" ( (binary_expression "((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0" (parenthesized_expression "((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0)" ( (binary_expression "(DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0" (parenthesized_expression "(DAT_000b636c == 0 && DAT_000b6368 == 0)" ( (binary_expression "DAT_000b636c == 0 && DAT_000b6368 == 0" (binary_expression "DAT_000b636c == 0" identifier == number_literal) && (binary_expression "DAT_000b6368 == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b6360 == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b634c == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b635c == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b6350 == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b6344 == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b6340 == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b633c == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b6338 == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b6334 == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b6330 == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b632c == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b6358 == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b6364 == 0" identifier == number_literal)) )) (compound_statement "{\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }" { (expression_statement "local_190 = 1;" (assignment_expression "local_190 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004a8e3;" goto statement_identifier ;) })) }))) (while_statement "while( true ) {\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }" { (expression_statement "iVar4 = fseek((FILE *)param_1[1],local_148,0);" (assignment_expression "iVar4 = fseek((FILE *)param_1[1],local_148,0)" identifier = (call_expression "fseek((FILE *)param_1[1],local_148,0)" identifier (argument_list "((FILE *)param_1[1],local_148,0)" ( (cast_expression "(FILE *)param_1[1]" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) , identifier , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }" { (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5)" identifier = (call_expression "dcgettext(0,"%s: failed to seek to next archive header\n",5)" identifier (argument_list "(0,"%s: failed to seek to next archive header\n",5)" ( number_literal , (string_literal ""%s: failed to seek to next archive header\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar9,uVar10);" (call_expression "error(uVar9,uVar10)" identifier (argument_list "(uVar9,uVar10)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);" (assignment_expression "sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1])" identifier = (call_expression "fread(local_13c,1,0x3c,(FILE *)param_1[1])" identifier (argument_list "(local_13c,1,0x3c,(FILE *)param_1[1])" ( identifier , number_literal , number_literal , (cast_expression "(FILE *)param_1[1]" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) )))) ;) (expression_statement "local_190 = 0;" (assignment_expression "local_190 = 0" identifier = number_literal) ;) (if_statement "if (sVar5 != 0x3c) break;" if (parenthesized_expression "(sVar5 != 0x3c)" ( (binary_expression "sVar5 != 0x3c" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }" if (parenthesized_expression "(local_102 != 0xa60)" ( (binary_expression "local_102 != 0xa60" identifier != number_literal) )) (compound_statement "{\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }" { (expression_statement "pcVar6 = "%s: did not find a valid archive header\n";" (assignment_expression "pcVar6 = "%s: did not find a valid archive header\n"" identifier = (string_literal ""%s: did not find a valid archive header\n"" " string_content escape_sequence ")) ;) (expression_statement "uVar10 = local_170;" (assignment_expression "uVar10 = local_170" identifier = identifier) ;) (goto_statement "goto LAB_0004a9ef;" goto statement_identifier ;) })) (expression_statement "local_148 = local_148 + 0x3c;" (assignment_expression "local_148 = local_148 + 0x3c" identifier = (binary_expression "local_148 + 0x3c" identifier + number_literal)) ;) (expression_statement "DAT_000b754c = strtoul(local_10c,(char **)0x0,10);" (assignment_expression "DAT_000b754c = strtoul(local_10c,(char **)0x0,10)" identifier = (call_expression "strtoul(local_10c,(char **)0x0,10)" identifier (argument_list "(local_10c,(char **)0x0,10)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (if_statement "if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }" if (parenthesized_expression "((DAT_000b754c & 1) != 0)" ( (binary_expression "(DAT_000b754c & 1) != 0" (parenthesized_expression "(DAT_000b754c & 1)" ( (binary_expression "DAT_000b754c & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        DAT_000b754c = DAT_000b754c + 1;\n      }" { (expression_statement "DAT_000b754c = DAT_000b754c + 1;" (assignment_expression "DAT_000b754c = DAT_000b754c + 1" identifier = (binary_expression "DAT_000b754c + 1" identifier + number_literal)) ;) })) (expression_statement "pcVar6 = (char *)FUN_00067770(&local_170,&local_100);" (assignment_expression "pcVar6 = (char *)FUN_00067770(&local_170,&local_100)" identifier = (cast_expression "(char *)FUN_00067770(&local_170,&local_100)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00067770(&local_170,&local_100)" identifier (argument_list "(&local_170,&local_100)" ( (pointer_expression "&local_170" & identifier) , (pointer_expression "&local_100" & identifier) ))))) ;) (if_statement "if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }" { (labeled_statement "LAB_0004a928:\n        uVar10 = *param_1;" statement_identifier : (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;)) (expression_statement "pcVar6 = "%s: bad archive file name\n";" (assignment_expression "pcVar6 = "%s: bad archive file name\n"" identifier = (string_literal ""%s: bad archive file name\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);" statement_identifier : (expression_statement "uVar9 = dcgettext(0,pcVar6,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar6,5)" identifier = (call_expression "dcgettext(0,pcVar6,5)" identifier (argument_list "(0,pcVar6,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "error(uVar9,uVar10);" (call_expression "error(uVar9,uVar10)" identifier (argument_list "(uVar9,uVar10)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0004a8e3;" goto statement_identifier ;) })) (expression_statement "sVar5 = strlen(pcVar6);" (assignment_expression "sVar5 = strlen(pcVar6)" identifier = (call_expression "strlen(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier )))) ;) (expression_statement "pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);" (assignment_expression "pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6)" identifier = (cast_expression "(void *)FUN_000679c0(&local_170,&local_100,pcVar6)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000679c0(&local_170,&local_100,pcVar6)" identifier (argument_list "(&local_170,&local_100,pcVar6)" ( (pointer_expression "&local_170" & identifier) , (pointer_expression "&local_100" & identifier) , identifier ))))) ;) (if_statement "if (pvVar7 == (void *)0x0) goto LAB_0004a928;" if (parenthesized_expression "(pvVar7 == (void *)0x0)" ( (binary_expression "pvVar7 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004a928;" goto statement_identifier ;)) (if_statement "if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }" { (if_statement "if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }" if (parenthesized_expression "(local_14c == 0)" ( (binary_expression "local_14c == 0" identifier == number_literal) )) (compound_statement "{\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }" { (expression_statement "__ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);" (assignment_expression "__ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5)" identifier = (cast_expression "(void *)FUN_00067180(*param_1,pcVar6,sVar5)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00067180(*param_1,pcVar6,sVar5)" identifier (argument_list "(*param_1,pcVar6,sVar5)" ( (pointer_expression "*param_1" * identifier) , identifier , identifier ))))) ;) (if_statement "if (__ptr == (void *)0x0) goto LAB_0004a8db;" if (parenthesized_expression "(__ptr == (void *)0x0)" ( (binary_expression "__ptr == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004a8db;" goto statement_identifier ;)) (expression_statement "puVar8 = (undefined4 *)FUN_000268f0();" (assignment_expression "puVar8 = (undefined4 *)FUN_000268f0()" identifier = (cast_expression "(undefined4 *)FUN_000268f0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000268f0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }" if (parenthesized_expression "(puVar8 != (undefined4 *)0x0)" ( (binary_expression "puVar8 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }" { (expression_statement "DAT_000b7550 = local_14c;" (assignment_expression "DAT_000b7550 = local_14c" identifier = identifier) ;) (expression_statement "*puVar8 = pvVar7;" (assignment_expression "*puVar8 = pvVar7" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "iVar4 = FUN_00045c20();" (assignment_expression "iVar4 = FUN_00045c20()" identifier = (call_expression "FUN_00045c20()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if (iVar4 != 0) {\n              uVar10 = local_194;\n            }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar10 = local_194;\n            }" { (expression_statement "uVar10 = local_194;" (assignment_expression "uVar10 = local_194" identifier = identifier) ;) })) (expression_statement "FUN_0001e670();" (call_expression "FUN_0001e670()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (goto_statement "goto LAB_0004a469;" goto statement_identifier ;) })) (expression_statement "uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);" (assignment_expression "uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5)" identifier = (call_expression "dcgettext(0,"Input file \'%s\' is not readable.\n",5)" identifier (argument_list "(0,"Input file \'%s\' is not readable.\n",5)" ( number_literal , (string_literal ""Input file \'%s\' is not readable.\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar10,__ptr);" (call_expression "error(uVar10,__ptr)" identifier (argument_list "(uVar10,__ptr)" ( identifier , identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) }) (else_clause "else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }" else (compound_statement "{\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }" { (expression_statement "ppvVar12 = &local_90;" (assignment_expression "ppvVar12 = &local_90" identifier = (pointer_expression "&local_90" & identifier)) ;) (for_statement "for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }" for ( (assignment_expression "iVar4 = 0x1d" identifier = number_literal) ; (binary_expression "iVar4 != 0" identifier != number_literal) ; (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ) (compound_statement "{\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }" { (expression_statement "*ppvVar12 = (void *)0x0;" (assignment_expression "*ppvVar12 = (void *)0x0" (pointer_expression "*ppvVar12" * identifier) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;" (assignment_expression "ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "ppvVar12 + (uint)bVar13 * -2 + 1" (binary_expression "ppvVar12 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (if_statement "if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }" if (parenthesized_expression "(local_fc != (FILE *)0x0)" ( (binary_expression "local_fc != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }" { (expression_statement "DAT_000b7550 = local_14c + 0x3c;" (assignment_expression "DAT_000b7550 = local_14c + 0x3c" identifier = (binary_expression "local_14c + 0x3c" identifier + number_literal)) ;) (expression_statement "iVar4 = fseek(local_fc,DAT_000b7550,0);" (assignment_expression "iVar4 = fseek(local_fc,DAT_000b7550,0)" identifier = (call_expression "fseek(local_fc,DAT_000b7550,0)" identifier (argument_list "(local_fc,DAT_000b7550,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }" { (expression_statement "local_8c = local_fc;" (assignment_expression "local_8c = local_fc" identifier = identifier) ;) (expression_statement "local_90 = pvVar7;" (assignment_expression "local_90 = pvVar7" identifier = identifier) ;) (expression_statement "iVar4 = FUN_00045c20();" (assignment_expression "iVar4 = FUN_00045c20()" identifier = (call_expression "FUN_00045c20()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if (iVar4 != 0) {\n                uVar10 = local_194;\n              }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                uVar10 = local_194;\n              }" { (expression_statement "uVar10 = local_194;" (assignment_expression "uVar10 = local_194" identifier = identifier) ;) })) (goto_statement "goto LAB_0004a469;" goto statement_identifier ;) })) (expression_statement "pcVar6 = "%s: failed to seek to archive member.\n";" (assignment_expression "pcVar6 = "%s: failed to seek to archive member.\n"" identifier = (string_literal ""%s: failed to seek to archive member.\n"" " string_content escape_sequence ")) ;) (expression_statement "uVar10 = local_100;" (assignment_expression "uVar10 = local_100" identifier = identifier) ;) (goto_statement "goto LAB_0004a936;" goto statement_identifier ;) })) (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5)" identifier = (call_expression "dcgettext(0,"%s: contains corrupt thin archive: %s\n",5)" identifier (argument_list "(0,"%s: contains corrupt thin archive: %s\n",5)" ( number_literal , (string_literal ""%s: contains corrupt thin archive: %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar9,uVar10,pcVar6);" (call_expression "error(uVar9,uVar10,pcVar6)" identifier (argument_list "(uVar9,uVar10,pcVar6)" ( identifier , identifier , identifier ))) ;) }))) (goto_statement "goto LAB_0004a8e3;" goto statement_identifier ;) })) (expression_statement "DAT_000b7550 = local_148;" (assignment_expression "DAT_000b7550 = local_148" identifier = identifier) ;) (expression_statement "local_148 = local_148 + DAT_000b754c;" (assignment_expression "local_148 = local_148 + DAT_000b754c" identifier = (binary_expression "local_148 + DAT_000b754c" identifier + identifier)) ;) (expression_statement "*param_1 = pvVar7;" (assignment_expression "*param_1 = pvVar7" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "iVar4 = FUN_00045c20();" (assignment_expression "iVar4 = FUN_00045c20()" identifier = (call_expression "FUN_00045c20()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar10 = local_194;" (assignment_expression "uVar10 = local_194" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\n        uVar10 = 0;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar10 = 0;\n      }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) })) (labeled_statement "LAB_0004a469:\n      local_194 = uVar10;" statement_identifier : (expression_statement "local_194 = uVar10;" (assignment_expression "local_194 = uVar10" identifier = identifier) ;)) (if_statement "if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }" if (parenthesized_expression "((void *)param_1[0x1b] != (void *)0x0)" ( (binary_expression "(void *)param_1[0x1b] != (void *)0x0" (cast_expression "(void *)param_1[0x1b]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1b]" identifier [ number_literal ])) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }" { (expression_statement "free((void *)param_1[0x1b]);" (call_expression "free((void *)param_1[0x1b])" identifier (argument_list "((void *)param_1[0x1b])" ( (cast_expression "(void *)param_1[0x1b]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1b]" identifier [ number_literal ])) ))) ;) (expression_statement "param_1[0x1b] = 0;" (assignment_expression "param_1[0x1b] = 0" (subscript_expression "param_1[0x1b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x1c] = 0;" (assignment_expression "param_1[0x1c] = 0" (subscript_expression "param_1[0x1c]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "free(pvVar7);" (call_expression "free(pvVar7)" identifier (argument_list "(pvVar7)" ( identifier ))) ;) })) (if_statement "if (sVar5 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }" if (parenthesized_expression "(sVar5 == 0)" ( (binary_expression "sVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      local_190 = local_194;\n    }" { (expression_statement "local_190 = local_194;" (assignment_expression "local_190 = local_194" identifier = identifier) ;) }) (else_clause "else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }" else (compound_statement "{\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }" { (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "pcVar6 = "%s: failed to read archive header\n";" (assignment_expression "pcVar6 = "%s: failed to read archive header\n"" identifier = (string_literal ""%s: failed to read archive header\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);" statement_identifier : (expression_statement "uVar9 = dcgettext(0,pcVar6,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar6,5)" identifier = (call_expression "dcgettext(0,pcVar6,5)" identifier (argument_list "(0,pcVar6,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "error(uVar9,uVar10);" (call_expression "error(uVar9,uVar10)" identifier (argument_list "(uVar9,uVar10)" ( identifier , identifier ))) ;) }))) }) (else_clause "else {\nLAB_0004a8db:\n    local_190 = 0;\n  }" else (compound_statement "{\nLAB_0004a8db:\n    local_190 = 0;\n  }" { (labeled_statement "LAB_0004a8db:\n    local_190 = 0;" statement_identifier : (expression_statement "local_190 = 0;" (assignment_expression "local_190 = 0" identifier = number_literal) ;)) }))) (labeled_statement "LAB_0004a8e3:\n  local_198 = &local_100;" statement_identifier : (expression_statement "local_198 = &local_100;" (assignment_expression "local_198 = &local_100" identifier = (pointer_expression "&local_100" & identifier)) ;)) (if_statement "if (local_fc != (FILE *)0x0) {\n    fclose(local_fc);\n  }" if (parenthesized_expression "(local_fc != (FILE *)0x0)" ( (binary_expression "local_fc != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    fclose(local_fc);\n  }" { (expression_statement "fclose(local_fc);" (call_expression "fclose(local_fc)" identifier (argument_list "(local_fc)" ( identifier ))) ;) })) (expression_statement "FUN_000675d0(local_198);" (call_expression "FUN_000675d0(local_198)" identifier (argument_list "(local_198)" ( identifier ))) ;) (expression_statement "FUN_000675d0(&local_170);" (call_expression "FUN_000675d0(&local_170)" identifier (argument_list "(&local_170)" ( (pointer_expression "&local_170" & identifier) ))) ;) (return_statement "return local_190;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbfd_boolean __regparm3 process_archive(Filedata *filedata,bfd_boolean is_thin_archive)\n\n{\n  undefined *puVar1;\n  ulong uVar2;\n  int iVar3;\n  size_t sVar4;\n  char *pcVar5;\n  char *pcVar6;\n  bfd_boolean bVar7;\n  long __off;\n  Filedata *pFVar8;\n  char *pcVar9;\n  bfd_boolean bVar10;\n  uint uVar11;\n  byte bVar12;\n  uint local_1a0;\n  archive_info *local_198;\n  bfd_boolean local_194;\n  bfd_boolean local_190;\n  archive_info arch;\n  archive_info nested_arch;\n  Filedata thin_filedata;\n  \n  bVar12 = 0;\n  arch.file_name = (char *)0x0;\n  arch.file = (FILE *)0x0;\n  arch.index_array = (elf_vma *)0x0;\n  arch.sym_table = (char *)0x0;\n  arch.longnames = (char *)0x0;\n  nested_arch.file_name = (char *)0x0;\n  nested_arch.file = (FILE *)0x0;\n  nested_arch.index_array = (elf_vma *)0x0;\n  nested_arch.sym_table = (char *)0x0;\n  nested_arch.longnames = (char *)0x0;\n  show_name = 1;\n  iVar3 = setup_archive(&arch,filedata->file_name,filedata->handle,is_thin_archive,do_archive_index)\n  ;\n  uVar2 = arch.sym_size;\n  uVar11 = (uint)arch.index_num;\n  if (iVar3 == 0) {\n    if (do_archive_index == 0) {\n      local_194 = 1;\n    }\n    else {\n      pcVar5 = filedata->file_name;\n      if (arch.sym_table == (char *)0x0) {\n        pcVar6 = (char *)dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(pcVar6,pcVar5);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,pcVar5,uVar11,uVar2);\n        __off = ftell((FILE *)filedata->handle);\n        puVar1 = PTR_stdout_000b3fd8;\n        if (arch.index_num._4_4_ == 0 && (uint)arch.index_num == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            if ((((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)) &&\n               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)) {\n              pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              pcVar6 = pcVar5;\n              printf(pcVar9);\n              print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));\n              putc(10,*(FILE **)puVar1);\n              free(pcVar5);\n            }\n            if (arch.sym_size <= local_1a0) {\n              pcVar5 = filedata->file_name;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5);\n              error(pcVar6,pcVar5);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0);\n            uVar2 = arch.sym_size;\n            sVar4 = strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0);\n            local_1a0 = sVar4 + 1 + local_1a0;\n          } while (arch.index_num._4_4_ != 0 ||\n                   (uint)-arch.index_num._4_4_ < (uint)(uVar11 < (uint)arch.index_num));\n          local_194 = 1;\n          arch.sym_size = uVar2;\n        }\nLAB_0004a7a7:\n        if (arch.uses_64bit_indicies == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < arch.sym_size) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcngettext(0,\n                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                                      ,\n                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                                      ,arch.sym_size - uVar11,5);\n          error(pcVar6,pcVar5,arch.sym_size - uVar11);\n          local_194 = 0;\n        }\n        iVar3 = fseek((FILE *)filedata->handle,__off,0);\n        if (iVar3 != 0) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcgettext(0,\n                                     "%s: failed to seek back to start of object files in the archive\n"\n                                     ,5);\n          error(pcVar6,pcVar5);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0) && do_debugging == 0) && do_arch == 0) &&\n           do_notes == 0) && do_section_groups == 0) && do_dyn_syms == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }\n    while( true ) {\n      iVar3 = fseek((FILE *)filedata->handle,arch.next_arhdr_offset,0);\n      if (iVar3 != 0) {\n        pcVar5 = filedata->file_name;\n        pcVar6 = (char *)dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(pcVar6,pcVar5);\n        return 0;\n      }\n      sVar4 = fread(&arch.arhdr,1,0x3c,(FILE *)filedata->handle);\n      local_190 = 0;\n      if (sVar4 != 0x3c) break;\n      if (arch.arhdr.ar_fmag != (char  [2])0xa60) {\n        pcVar5 = "%s: did not find a valid archive header\n";\n        pcVar6 = arch.file_name;\n        goto LAB_0004a9ef;\n      }\n      arch.next_arhdr_offset = arch.next_arhdr_offset + 0x3c;\n      archive_file_size = strtoul(arch.arhdr.ar_size,(char **)0x0,10);\n      if ((archive_file_size & 1) != 0) {\n        archive_file_size = archive_file_size + 1;\n      }\n      pcVar5 = get_archive_member_name(&arch,&nested_arch);\n      if (pcVar5 == (char *)0x0) {\nLAB_0004a928:\n        pcVar6 = filedata->file_name;\n        pcVar5 = "%s: bad archive file name\n";\nLAB_0004a936:\n        pcVar5 = (char *)dcgettext(0,pcVar5,5);\n        error(pcVar5,pcVar6);\n        goto LAB_0004a8e3;\n      }\n      sVar4 = strlen(pcVar5);\n      pcVar6 = make_qualified_name(&arch,&nested_arch,pcVar5);\n      if (pcVar6 == (char *)0x0) goto LAB_0004a928;\n      if (is_thin_archive != 0) {\n        if (arch.nested_member_origin == 0) {\n          pcVar5 = adjust_relative_path(filedata->file_name,pcVar5,sVar4);\n          if (pcVar5 == (char *)0x0) goto LAB_0004a8db;\n          pFVar8 = open_file(pcVar5);\n          if (pFVar8 != (Filedata *)0x0) {\n            archive_file_offset = arch.nested_member_origin;\n            pFVar8->file_name = pcVar6;\n            bVar7 = process_object(pFVar8);\n            bVar10 = 0;\n            if (bVar7 != 0) {\n              bVar10 = local_194;\n            }\n            close_file(pFVar8);\n            free(pcVar5);\n            goto LAB_0004a469;\n          }\n          pcVar6 = (char *)dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(pcVar6,pcVar5);\n          free(pcVar5);\n        }\n        else {\n          pFVar8 = &thin_filedata;\n          for (iVar3 = 0x1d; iVar3 != 0; iVar3 = iVar3 + -1) {\n            pFVar8->file_name = (char *)0x0;\n            pFVar8 = (Filedata *)((int)pFVar8 + (uint)bVar12 * -8 + 4);\n          }\n          if (nested_arch.file != (FILE *)0x0) {\n            archive_file_offset = arch.nested_member_origin + 0x3c;\n            iVar3 = fseek((FILE *)nested_arch.file,archive_file_offset,0);\n            if (iVar3 == 0) {\n              thin_filedata.handle = nested_arch.file;\n              thin_filedata.file_name = pcVar6;\n              bVar7 = process_object(&thin_filedata);\n              bVar10 = 0;\n              if (bVar7 != 0) {\n                bVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar5 = "%s: failed to seek to archive member.\n";\n            pcVar6 = nested_arch.file_name;\n            goto LAB_0004a936;\n          }\n          pcVar6 = filedata->file_name;\n          pcVar9 = (char *)dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(pcVar9,pcVar6,pcVar5);\n        }\n        goto LAB_0004a8e3;\n      }\n      archive_file_offset = arch.next_arhdr_offset;\n      arch.next_arhdr_offset = arch.next_arhdr_offset + archive_file_size;\n      filedata->file_name = pcVar6;\n      bVar7 = process_object(filedata);\n      bVar10 = local_194;\n      if (bVar7 == 0) {\n        bVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = bVar10;\n      if (filedata->dump_sects != (dump_type *)0x0) {\n        free(filedata->dump_sects);\n        filedata->dump_sects = (dump_type *)0x0;\n        filedata->num_dump_sects = 0;\n      }\n      free(pcVar6);\n    }\n    if (sVar4 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      pcVar6 = filedata->file_name;\n      pcVar5 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      pcVar5 = (char *)dcgettext(0,pcVar5,5);\n      error(pcVar5,pcVar6);\n    }\n  }\n  else {\nLAB_0004a8db:\n    local_190 = 0;\n  }\nLAB_0004a8e3:\n  local_198 = &nested_arch;\n  if (nested_arch.file != (FILE *)0x0) {\n    fclose((FILE *)nested_arch.file);\n  }\n  release_archive(local_198);\n  release_archive(&arch);\n  return local_190;\n}\n\n" comment (function_definition "bfd_boolean __regparm3 process_archive(Filedata *filedata,bfd_boolean is_thin_archive)\n\n{\n  undefined *puVar1;\n  ulong uVar2;\n  int iVar3;\n  size_t sVar4;\n  char *pcVar5;\n  char *pcVar6;\n  bfd_boolean bVar7;\n  long __off;\n  Filedata *pFVar8;\n  char *pcVar9;\n  bfd_boolean bVar10;\n  uint uVar11;\n  byte bVar12;\n  uint local_1a0;\n  archive_info *local_198;\n  bfd_boolean local_194;\n  bfd_boolean local_190;\n  archive_info arch;\n  archive_info nested_arch;\n  Filedata thin_filedata;\n  \n  bVar12 = 0;\n  arch.file_name = (char *)0x0;\n  arch.file = (FILE *)0x0;\n  arch.index_array = (elf_vma *)0x0;\n  arch.sym_table = (char *)0x0;\n  arch.longnames = (char *)0x0;\n  nested_arch.file_name = (char *)0x0;\n  nested_arch.file = (FILE *)0x0;\n  nested_arch.index_array = (elf_vma *)0x0;\n  nested_arch.sym_table = (char *)0x0;\n  nested_arch.longnames = (char *)0x0;\n  show_name = 1;\n  iVar3 = setup_archive(&arch,filedata->file_name,filedata->handle,is_thin_archive,do_archive_index)\n  ;\n  uVar2 = arch.sym_size;\n  uVar11 = (uint)arch.index_num;\n  if (iVar3 == 0) {\n    if (do_archive_index == 0) {\n      local_194 = 1;\n    }\n    else {\n      pcVar5 = filedata->file_name;\n      if (arch.sym_table == (char *)0x0) {\n        pcVar6 = (char *)dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(pcVar6,pcVar5);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,pcVar5,uVar11,uVar2);\n        __off = ftell((FILE *)filedata->handle);\n        puVar1 = PTR_stdout_000b3fd8;\n        if (arch.index_num._4_4_ == 0 && (uint)arch.index_num == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            if ((((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)) &&\n               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)) {\n              pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              pcVar6 = pcVar5;\n              printf(pcVar9);\n              print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));\n              putc(10,*(FILE **)puVar1);\n              free(pcVar5);\n            }\n            if (arch.sym_size <= local_1a0) {\n              pcVar5 = filedata->file_name;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5);\n              error(pcVar6,pcVar5);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0);\n            uVar2 = arch.sym_size;\n            sVar4 = strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0);\n            local_1a0 = sVar4 + 1 + local_1a0;\n          } while (arch.index_num._4_4_ != 0 ||\n                   (uint)-arch.index_num._4_4_ < (uint)(uVar11 < (uint)arch.index_num));\n          local_194 = 1;\n          arch.sym_size = uVar2;\n        }\nLAB_0004a7a7:\n        if (arch.uses_64bit_indicies == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < arch.sym_size) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcngettext(0,\n                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                                      ,\n                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                                      ,arch.sym_size - uVar11,5);\n          error(pcVar6,pcVar5,arch.sym_size - uVar11);\n          local_194 = 0;\n        }\n        iVar3 = fseek((FILE *)filedata->handle,__off,0);\n        if (iVar3 != 0) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcgettext(0,\n                                     "%s: failed to seek back to start of object files in the archive\n"\n                                     ,5);\n          error(pcVar6,pcVar5);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0) && do_debugging == 0) && do_arch == 0) &&\n           do_notes == 0) && do_section_groups == 0) && do_dyn_syms == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }\n    while( true ) {\n      iVar3 = fseek((FILE *)filedata->handle,arch.next_arhdr_offset,0);\n      if (iVar3 != 0) {\n        pcVar5 = filedata->file_name;\n        pcVar6 = (char *)dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(pcVar6,pcVar5);\n        return 0;\n      }\n      sVar4 = fread(&arch.arhdr,1,0x3c,(FILE *)filedata->handle);\n      local_190 = 0;\n      if (sVar4 != 0x3c) break;\n      if (arch.arhdr.ar_fmag != (char  [2])0xa60) {\n        pcVar5 = "%s: did not find a valid archive header\n";\n        pcVar6 = arch.file_name;\n        goto LAB_0004a9ef;\n      }\n      arch.next_arhdr_offset = arch.next_arhdr_offset + 0x3c;\n      archive_file_size = strtoul(arch.arhdr.ar_size,(char **)0x0,10);\n      if ((archive_file_size & 1) != 0) {\n        archive_file_size = archive_file_size + 1;\n      }\n      pcVar5 = get_archive_member_name(&arch,&nested_arch);\n      if (pcVar5 == (char *)0x0) {\nLAB_0004a928:\n        pcVar6 = filedata->file_name;\n        pcVar5 = "%s: bad archive file name\n";\nLAB_0004a936:\n        pcVar5 = (char *)dcgettext(0,pcVar5,5);\n        error(pcVar5,pcVar6);\n        goto LAB_0004a8e3;\n      }\n      sVar4 = strlen(pcVar5);\n      pcVar6 = make_qualified_name(&arch,&nested_arch,pcVar5);\n      if (pcVar6 == (char *)0x0) goto LAB_0004a928;\n      if (is_thin_archive != 0) {\n        if (arch.nested_member_origin == 0) {\n          pcVar5 = adjust_relative_path(filedata->file_name,pcVar5,sVar4);\n          if (pcVar5 == (char *)0x0) goto LAB_0004a8db;\n          pFVar8 = open_file(pcVar5);\n          if (pFVar8 != (Filedata *)0x0) {\n            archive_file_offset = arch.nested_member_origin;\n            pFVar8->file_name = pcVar6;\n            bVar7 = process_object(pFVar8);\n            bVar10 = 0;\n            if (bVar7 != 0) {\n              bVar10 = local_194;\n            }\n            close_file(pFVar8);\n            free(pcVar5);\n            goto LAB_0004a469;\n          }\n          pcVar6 = (char *)dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(pcVar6,pcVar5);\n          free(pcVar5);\n        }\n        else {\n          pFVar8 = &thin_filedata;\n          for (iVar3 = 0x1d; iVar3 != 0; iVar3 = iVar3 + -1) {\n            pFVar8->file_name = (char *)0x0;\n            pFVar8 = (Filedata *)((int)pFVar8 + (uint)bVar12 * -8 + 4);\n          }\n          if (nested_arch.file != (FILE *)0x0) {\n            archive_file_offset = arch.nested_member_origin + 0x3c;\n            iVar3 = fseek((FILE *)nested_arch.file,archive_file_offset,0);\n            if (iVar3 == 0) {\n              thin_filedata.handle = nested_arch.file;\n              thin_filedata.file_name = pcVar6;\n              bVar7 = process_object(&thin_filedata);\n              bVar10 = 0;\n              if (bVar7 != 0) {\n                bVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar5 = "%s: failed to seek to archive member.\n";\n            pcVar6 = nested_arch.file_name;\n            goto LAB_0004a936;\n          }\n          pcVar6 = filedata->file_name;\n          pcVar9 = (char *)dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(pcVar9,pcVar6,pcVar5);\n        }\n        goto LAB_0004a8e3;\n      }\n      archive_file_offset = arch.next_arhdr_offset;\n      arch.next_arhdr_offset = arch.next_arhdr_offset + archive_file_size;\n      filedata->file_name = pcVar6;\n      bVar7 = process_object(filedata);\n      bVar10 = local_194;\n      if (bVar7 == 0) {\n        bVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = bVar10;\n      if (filedata->dump_sects != (dump_type *)0x0) {\n        free(filedata->dump_sects);\n        filedata->dump_sects = (dump_type *)0x0;\n        filedata->num_dump_sects = 0;\n      }\n      free(pcVar6);\n    }\n    if (sVar4 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      pcVar6 = filedata->file_name;\n      pcVar5 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      pcVar5 = (char *)dcgettext(0,pcVar5,5);\n      error(pcVar5,pcVar6);\n    }\n  }\n  else {\nLAB_0004a8db:\n    local_190 = 0;\n  }\nLAB_0004a8e3:\n  local_198 = &nested_arch;\n  if (nested_arch.file != (FILE *)0x0) {\n    fclose((FILE *)nested_arch.file);\n  }\n  release_archive(local_198);\n  release_archive(&arch);\n  return local_190;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "process_archive(Filedata *filedata,bfd_boolean is_thin_archive)" identifier (parameter_list "(Filedata *filedata,bfd_boolean is_thin_archive)" ( (parameter_declaration "Filedata *filedata" type_identifier (pointer_declarator "*filedata" * identifier)) , (parameter_declaration "bfd_boolean is_thin_archive" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  ulong uVar2;\n  int iVar3;\n  size_t sVar4;\n  char *pcVar5;\n  char *pcVar6;\n  bfd_boolean bVar7;\n  long __off;\n  Filedata *pFVar8;\n  char *pcVar9;\n  bfd_boolean bVar10;\n  uint uVar11;\n  byte bVar12;\n  uint local_1a0;\n  archive_info *local_198;\n  bfd_boolean local_194;\n  bfd_boolean local_190;\n  archive_info arch;\n  archive_info nested_arch;\n  Filedata thin_filedata;\n  \n  bVar12 = 0;\n  arch.file_name = (char *)0x0;\n  arch.file = (FILE *)0x0;\n  arch.index_array = (elf_vma *)0x0;\n  arch.sym_table = (char *)0x0;\n  arch.longnames = (char *)0x0;\n  nested_arch.file_name = (char *)0x0;\n  nested_arch.file = (FILE *)0x0;\n  nested_arch.index_array = (elf_vma *)0x0;\n  nested_arch.sym_table = (char *)0x0;\n  nested_arch.longnames = (char *)0x0;\n  show_name = 1;\n  iVar3 = setup_archive(&arch,filedata->file_name,filedata->handle,is_thin_archive,do_archive_index)\n  ;\n  uVar2 = arch.sym_size;\n  uVar11 = (uint)arch.index_num;\n  if (iVar3 == 0) {\n    if (do_archive_index == 0) {\n      local_194 = 1;\n    }\n    else {\n      pcVar5 = filedata->file_name;\n      if (arch.sym_table == (char *)0x0) {\n        pcVar6 = (char *)dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(pcVar6,pcVar5);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,pcVar5,uVar11,uVar2);\n        __off = ftell((FILE *)filedata->handle);\n        puVar1 = PTR_stdout_000b3fd8;\n        if (arch.index_num._4_4_ == 0 && (uint)arch.index_num == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            if ((((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)) &&\n               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)) {\n              pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              pcVar6 = pcVar5;\n              printf(pcVar9);\n              print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));\n              putc(10,*(FILE **)puVar1);\n              free(pcVar5);\n            }\n            if (arch.sym_size <= local_1a0) {\n              pcVar5 = filedata->file_name;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5);\n              error(pcVar6,pcVar5);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0);\n            uVar2 = arch.sym_size;\n            sVar4 = strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0);\n            local_1a0 = sVar4 + 1 + local_1a0;\n          } while (arch.index_num._4_4_ != 0 ||\n                   (uint)-arch.index_num._4_4_ < (uint)(uVar11 < (uint)arch.index_num));\n          local_194 = 1;\n          arch.sym_size = uVar2;\n        }\nLAB_0004a7a7:\n        if (arch.uses_64bit_indicies == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < arch.sym_size) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcngettext(0,\n                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                                      ,\n                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                                      ,arch.sym_size - uVar11,5);\n          error(pcVar6,pcVar5,arch.sym_size - uVar11);\n          local_194 = 0;\n        }\n        iVar3 = fseek((FILE *)filedata->handle,__off,0);\n        if (iVar3 != 0) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcgettext(0,\n                                     "%s: failed to seek back to start of object files in the archive\n"\n                                     ,5);\n          error(pcVar6,pcVar5);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0) && do_debugging == 0) && do_arch == 0) &&\n           do_notes == 0) && do_section_groups == 0) && do_dyn_syms == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }\n    while( true ) {\n      iVar3 = fseek((FILE *)filedata->handle,arch.next_arhdr_offset,0);\n      if (iVar3 != 0) {\n        pcVar5 = filedata->file_name;\n        pcVar6 = (char *)dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(pcVar6,pcVar5);\n        return 0;\n      }\n      sVar4 = fread(&arch.arhdr,1,0x3c,(FILE *)filedata->handle);\n      local_190 = 0;\n      if (sVar4 != 0x3c) break;\n      if (arch.arhdr.ar_fmag != (char  [2])0xa60) {\n        pcVar5 = "%s: did not find a valid archive header\n";\n        pcVar6 = arch.file_name;\n        goto LAB_0004a9ef;\n      }\n      arch.next_arhdr_offset = arch.next_arhdr_offset + 0x3c;\n      archive_file_size = strtoul(arch.arhdr.ar_size,(char **)0x0,10);\n      if ((archive_file_size & 1) != 0) {\n        archive_file_size = archive_file_size + 1;\n      }\n      pcVar5 = get_archive_member_name(&arch,&nested_arch);\n      if (pcVar5 == (char *)0x0) {\nLAB_0004a928:\n        pcVar6 = filedata->file_name;\n        pcVar5 = "%s: bad archive file name\n";\nLAB_0004a936:\n        pcVar5 = (char *)dcgettext(0,pcVar5,5);\n        error(pcVar5,pcVar6);\n        goto LAB_0004a8e3;\n      }\n      sVar4 = strlen(pcVar5);\n      pcVar6 = make_qualified_name(&arch,&nested_arch,pcVar5);\n      if (pcVar6 == (char *)0x0) goto LAB_0004a928;\n      if (is_thin_archive != 0) {\n        if (arch.nested_member_origin == 0) {\n          pcVar5 = adjust_relative_path(filedata->file_name,pcVar5,sVar4);\n          if (pcVar5 == (char *)0x0) goto LAB_0004a8db;\n          pFVar8 = open_file(pcVar5);\n          if (pFVar8 != (Filedata *)0x0) {\n            archive_file_offset = arch.nested_member_origin;\n            pFVar8->file_name = pcVar6;\n            bVar7 = process_object(pFVar8);\n            bVar10 = 0;\n            if (bVar7 != 0) {\n              bVar10 = local_194;\n            }\n            close_file(pFVar8);\n            free(pcVar5);\n            goto LAB_0004a469;\n          }\n          pcVar6 = (char *)dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(pcVar6,pcVar5);\n          free(pcVar5);\n        }\n        else {\n          pFVar8 = &thin_filedata;\n          for (iVar3 = 0x1d; iVar3 != 0; iVar3 = iVar3 + -1) {\n            pFVar8->file_name = (char *)0x0;\n            pFVar8 = (Filedata *)((int)pFVar8 + (uint)bVar12 * -8 + 4);\n          }\n          if (nested_arch.file != (FILE *)0x0) {\n            archive_file_offset = arch.nested_member_origin + 0x3c;\n            iVar3 = fseek((FILE *)nested_arch.file,archive_file_offset,0);\n            if (iVar3 == 0) {\n              thin_filedata.handle = nested_arch.file;\n              thin_filedata.file_name = pcVar6;\n              bVar7 = process_object(&thin_filedata);\n              bVar10 = 0;\n              if (bVar7 != 0) {\n                bVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar5 = "%s: failed to seek to archive member.\n";\n            pcVar6 = nested_arch.file_name;\n            goto LAB_0004a936;\n          }\n          pcVar6 = filedata->file_name;\n          pcVar9 = (char *)dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(pcVar9,pcVar6,pcVar5);\n        }\n        goto LAB_0004a8e3;\n      }\n      archive_file_offset = arch.next_arhdr_offset;\n      arch.next_arhdr_offset = arch.next_arhdr_offset + archive_file_size;\n      filedata->file_name = pcVar6;\n      bVar7 = process_object(filedata);\n      bVar10 = local_194;\n      if (bVar7 == 0) {\n        bVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = bVar10;\n      if (filedata->dump_sects != (dump_type *)0x0) {\n        free(filedata->dump_sects);\n        filedata->dump_sects = (dump_type *)0x0;\n        filedata->num_dump_sects = 0;\n      }\n      free(pcVar6);\n    }\n    if (sVar4 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      pcVar6 = filedata->file_name;\n      pcVar5 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      pcVar5 = (char *)dcgettext(0,pcVar5,5);\n      error(pcVar5,pcVar6);\n    }\n  }\n  else {\nLAB_0004a8db:\n    local_190 = 0;\n  }\nLAB_0004a8e3:\n  local_198 = &nested_arch;\n  if (nested_arch.file != (FILE *)0x0) {\n    fclose((FILE *)nested_arch.file);\n  }\n  release_archive(local_198);\n  release_archive(&arch);\n  return local_190;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "bfd_boolean bVar7;" type_identifier identifier ;) (declaration "long __off;" (sized_type_specifier "long" long) identifier ;) (declaration "Filedata *pFVar8;" type_identifier (pointer_declarator "*pFVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "bfd_boolean bVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "uint local_1a0;" type_identifier identifier ;) (declaration "archive_info *local_198;" type_identifier (pointer_declarator "*local_198" * identifier) ;) (declaration "bfd_boolean local_194;" type_identifier identifier ;) (declaration "bfd_boolean local_190;" type_identifier identifier ;) (declaration "archive_info arch;" type_identifier identifier ;) (declaration "archive_info nested_arch;" type_identifier identifier ;) (declaration "Filedata thin_filedata;" type_identifier identifier ;) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "arch.file_name = (char *)0x0;" (assignment_expression "arch.file_name = (char *)0x0" (field_expression "arch.file_name" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "arch.file = (FILE *)0x0;" (assignment_expression "arch.file = (FILE *)0x0" (field_expression "arch.file" identifier . field_identifier) = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "arch.index_array = (elf_vma *)0x0;" (assignment_expression "arch.index_array = (elf_vma *)0x0" (field_expression "arch.index_array" identifier . field_identifier) = (cast_expression "(elf_vma *)0x0" ( (type_descriptor "elf_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "arch.sym_table = (char *)0x0;" (assignment_expression "arch.sym_table = (char *)0x0" (field_expression "arch.sym_table" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "arch.longnames = (char *)0x0;" (assignment_expression "arch.longnames = (char *)0x0" (field_expression "arch.longnames" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "nested_arch.file_name = (char *)0x0;" (assignment_expression "nested_arch.file_name = (char *)0x0" (field_expression "nested_arch.file_name" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "nested_arch.file = (FILE *)0x0;" (assignment_expression "nested_arch.file = (FILE *)0x0" (field_expression "nested_arch.file" identifier . field_identifier) = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "nested_arch.index_array = (elf_vma *)0x0;" (assignment_expression "nested_arch.index_array = (elf_vma *)0x0" (field_expression "nested_arch.index_array" identifier . field_identifier) = (cast_expression "(elf_vma *)0x0" ( (type_descriptor "elf_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "nested_arch.sym_table = (char *)0x0;" (assignment_expression "nested_arch.sym_table = (char *)0x0" (field_expression "nested_arch.sym_table" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "nested_arch.longnames = (char *)0x0;" (assignment_expression "nested_arch.longnames = (char *)0x0" (field_expression "nested_arch.longnames" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "show_name = 1;" (assignment_expression "show_name = 1" identifier = number_literal) ;) (expression_statement "iVar3 = setup_archive(&arch,filedata->file_name,filedata->handle,is_thin_archive,do_archive_index)\n  ;" (assignment_expression "iVar3 = setup_archive(&arch,filedata->file_name,filedata->handle,is_thin_archive,do_archive_index)" identifier = (call_expression "setup_archive(&arch,filedata->file_name,filedata->handle,is_thin_archive,do_archive_index)" identifier (argument_list "(&arch,filedata->file_name,filedata->handle,is_thin_archive,do_archive_index)" ( (pointer_expression "&arch" & identifier) , (field_expression "filedata->file_name" identifier -> field_identifier) , (field_expression "filedata->handle" identifier -> field_identifier) , identifier , identifier )))) ;) (expression_statement "uVar2 = arch.sym_size;" (assignment_expression "uVar2 = arch.sym_size" identifier = (field_expression "arch.sym_size" identifier . field_identifier)) ;) (expression_statement "uVar11 = (uint)arch.index_num;" (assignment_expression "uVar11 = (uint)arch.index_num" identifier = (cast_expression "(uint)arch.index_num" ( (type_descriptor "uint" type_identifier) ) (field_expression "arch.index_num" identifier . field_identifier))) ;) (if_statement "if (iVar3 == 0) {\n    if (do_archive_index == 0) {\n      local_194 = 1;\n    }\n    else {\n      pcVar5 = filedata->file_name;\n      if (arch.sym_table == (char *)0x0) {\n        pcVar6 = (char *)dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(pcVar6,pcVar5);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,pcVar5,uVar11,uVar2);\n        __off = ftell((FILE *)filedata->handle);\n        puVar1 = PTR_stdout_000b3fd8;\n        if (arch.index_num._4_4_ == 0 && (uint)arch.index_num == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            if ((((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)) &&\n               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)) {\n              pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              pcVar6 = pcVar5;\n              printf(pcVar9);\n              print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));\n              putc(10,*(FILE **)puVar1);\n              free(pcVar5);\n            }\n            if (arch.sym_size <= local_1a0) {\n              pcVar5 = filedata->file_name;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5);\n              error(pcVar6,pcVar5);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0);\n            uVar2 = arch.sym_size;\n            sVar4 = strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0);\n            local_1a0 = sVar4 + 1 + local_1a0;\n          } while (arch.index_num._4_4_ != 0 ||\n                   (uint)-arch.index_num._4_4_ < (uint)(uVar11 < (uint)arch.index_num));\n          local_194 = 1;\n          arch.sym_size = uVar2;\n        }\nLAB_0004a7a7:\n        if (arch.uses_64bit_indicies == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < arch.sym_size) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcngettext(0,\n                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                                      ,\n                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                                      ,arch.sym_size - uVar11,5);\n          error(pcVar6,pcVar5,arch.sym_size - uVar11);\n          local_194 = 0;\n        }\n        iVar3 = fseek((FILE *)filedata->handle,__off,0);\n        if (iVar3 != 0) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcgettext(0,\n                                     "%s: failed to seek back to start of object files in the archive\n"\n                                     ,5);\n          error(pcVar6,pcVar5);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0) && do_debugging == 0) && do_arch == 0) &&\n           do_notes == 0) && do_section_groups == 0) && do_dyn_syms == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }\n    while( true ) {\n      iVar3 = fseek((FILE *)filedata->handle,arch.next_arhdr_offset,0);\n      if (iVar3 != 0) {\n        pcVar5 = filedata->file_name;\n        pcVar6 = (char *)dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(pcVar6,pcVar5);\n        return 0;\n      }\n      sVar4 = fread(&arch.arhdr,1,0x3c,(FILE *)filedata->handle);\n      local_190 = 0;\n      if (sVar4 != 0x3c) break;\n      if (arch.arhdr.ar_fmag != (char  [2])0xa60) {\n        pcVar5 = "%s: did not find a valid archive header\n";\n        pcVar6 = arch.file_name;\n        goto LAB_0004a9ef;\n      }\n      arch.next_arhdr_offset = arch.next_arhdr_offset + 0x3c;\n      archive_file_size = strtoul(arch.arhdr.ar_size,(char **)0x0,10);\n      if ((archive_file_size & 1) != 0) {\n        archive_file_size = archive_file_size + 1;\n      }\n      pcVar5 = get_archive_member_name(&arch,&nested_arch);\n      if (pcVar5 == (char *)0x0) {\nLAB_0004a928:\n        pcVar6 = filedata->file_name;\n        pcVar5 = "%s: bad archive file name\n";\nLAB_0004a936:\n        pcVar5 = (char *)dcgettext(0,pcVar5,5);\n        error(pcVar5,pcVar6);\n        goto LAB_0004a8e3;\n      }\n      sVar4 = strlen(pcVar5);\n      pcVar6 = make_qualified_name(&arch,&nested_arch,pcVar5);\n      if (pcVar6 == (char *)0x0) goto LAB_0004a928;\n      if (is_thin_archive != 0) {\n        if (arch.nested_member_origin == 0) {\n          pcVar5 = adjust_relative_path(filedata->file_name,pcVar5,sVar4);\n          if (pcVar5 == (char *)0x0) goto LAB_0004a8db;\n          pFVar8 = open_file(pcVar5);\n          if (pFVar8 != (Filedata *)0x0) {\n            archive_file_offset = arch.nested_member_origin;\n            pFVar8->file_name = pcVar6;\n            bVar7 = process_object(pFVar8);\n            bVar10 = 0;\n            if (bVar7 != 0) {\n              bVar10 = local_194;\n            }\n            close_file(pFVar8);\n            free(pcVar5);\n            goto LAB_0004a469;\n          }\n          pcVar6 = (char *)dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(pcVar6,pcVar5);\n          free(pcVar5);\n        }\n        else {\n          pFVar8 = &thin_filedata;\n          for (iVar3 = 0x1d; iVar3 != 0; iVar3 = iVar3 + -1) {\n            pFVar8->file_name = (char *)0x0;\n            pFVar8 = (Filedata *)((int)pFVar8 + (uint)bVar12 * -8 + 4);\n          }\n          if (nested_arch.file != (FILE *)0x0) {\n            archive_file_offset = arch.nested_member_origin + 0x3c;\n            iVar3 = fseek((FILE *)nested_arch.file,archive_file_offset,0);\n            if (iVar3 == 0) {\n              thin_filedata.handle = nested_arch.file;\n              thin_filedata.file_name = pcVar6;\n              bVar7 = process_object(&thin_filedata);\n              bVar10 = 0;\n              if (bVar7 != 0) {\n                bVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar5 = "%s: failed to seek to archive member.\n";\n            pcVar6 = nested_arch.file_name;\n            goto LAB_0004a936;\n          }\n          pcVar6 = filedata->file_name;\n          pcVar9 = (char *)dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(pcVar9,pcVar6,pcVar5);\n        }\n        goto LAB_0004a8e3;\n      }\n      archive_file_offset = arch.next_arhdr_offset;\n      arch.next_arhdr_offset = arch.next_arhdr_offset + archive_file_size;\n      filedata->file_name = pcVar6;\n      bVar7 = process_object(filedata);\n      bVar10 = local_194;\n      if (bVar7 == 0) {\n        bVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = bVar10;\n      if (filedata->dump_sects != (dump_type *)0x0) {\n        free(filedata->dump_sects);\n        filedata->dump_sects = (dump_type *)0x0;\n        filedata->num_dump_sects = 0;\n      }\n      free(pcVar6);\n    }\n    if (sVar4 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      pcVar6 = filedata->file_name;\n      pcVar5 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      pcVar5 = (char *)dcgettext(0,pcVar5,5);\n      error(pcVar5,pcVar6);\n    }\n  }\n  else {\nLAB_0004a8db:\n    local_190 = 0;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    if (do_archive_index == 0) {\n      local_194 = 1;\n    }\n    else {\n      pcVar5 = filedata->file_name;\n      if (arch.sym_table == (char *)0x0) {\n        pcVar6 = (char *)dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(pcVar6,pcVar5);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,pcVar5,uVar11,uVar2);\n        __off = ftell((FILE *)filedata->handle);\n        puVar1 = PTR_stdout_000b3fd8;\n        if (arch.index_num._4_4_ == 0 && (uint)arch.index_num == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            if ((((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)) &&\n               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)) {\n              pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              pcVar6 = pcVar5;\n              printf(pcVar9);\n              print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));\n              putc(10,*(FILE **)puVar1);\n              free(pcVar5);\n            }\n            if (arch.sym_size <= local_1a0) {\n              pcVar5 = filedata->file_name;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5);\n              error(pcVar6,pcVar5);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0);\n            uVar2 = arch.sym_size;\n            sVar4 = strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0);\n            local_1a0 = sVar4 + 1 + local_1a0;\n          } while (arch.index_num._4_4_ != 0 ||\n                   (uint)-arch.index_num._4_4_ < (uint)(uVar11 < (uint)arch.index_num));\n          local_194 = 1;\n          arch.sym_size = uVar2;\n        }\nLAB_0004a7a7:\n        if (arch.uses_64bit_indicies == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < arch.sym_size) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcngettext(0,\n                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                                      ,\n                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                                      ,arch.sym_size - uVar11,5);\n          error(pcVar6,pcVar5,arch.sym_size - uVar11);\n          local_194 = 0;\n        }\n        iVar3 = fseek((FILE *)filedata->handle,__off,0);\n        if (iVar3 != 0) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcgettext(0,\n                                     "%s: failed to seek back to start of object files in the archive\n"\n                                     ,5);\n          error(pcVar6,pcVar5);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0) && do_debugging == 0) && do_arch == 0) &&\n           do_notes == 0) && do_section_groups == 0) && do_dyn_syms == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }\n    while( true ) {\n      iVar3 = fseek((FILE *)filedata->handle,arch.next_arhdr_offset,0);\n      if (iVar3 != 0) {\n        pcVar5 = filedata->file_name;\n        pcVar6 = (char *)dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(pcVar6,pcVar5);\n        return 0;\n      }\n      sVar4 = fread(&arch.arhdr,1,0x3c,(FILE *)filedata->handle);\n      local_190 = 0;\n      if (sVar4 != 0x3c) break;\n      if (arch.arhdr.ar_fmag != (char  [2])0xa60) {\n        pcVar5 = "%s: did not find a valid archive header\n";\n        pcVar6 = arch.file_name;\n        goto LAB_0004a9ef;\n      }\n      arch.next_arhdr_offset = arch.next_arhdr_offset + 0x3c;\n      archive_file_size = strtoul(arch.arhdr.ar_size,(char **)0x0,10);\n      if ((archive_file_size & 1) != 0) {\n        archive_file_size = archive_file_size + 1;\n      }\n      pcVar5 = get_archive_member_name(&arch,&nested_arch);\n      if (pcVar5 == (char *)0x0) {\nLAB_0004a928:\n        pcVar6 = filedata->file_name;\n        pcVar5 = "%s: bad archive file name\n";\nLAB_0004a936:\n        pcVar5 = (char *)dcgettext(0,pcVar5,5);\n        error(pcVar5,pcVar6);\n        goto LAB_0004a8e3;\n      }\n      sVar4 = strlen(pcVar5);\n      pcVar6 = make_qualified_name(&arch,&nested_arch,pcVar5);\n      if (pcVar6 == (char *)0x0) goto LAB_0004a928;\n      if (is_thin_archive != 0) {\n        if (arch.nested_member_origin == 0) {\n          pcVar5 = adjust_relative_path(filedata->file_name,pcVar5,sVar4);\n          if (pcVar5 == (char *)0x0) goto LAB_0004a8db;\n          pFVar8 = open_file(pcVar5);\n          if (pFVar8 != (Filedata *)0x0) {\n            archive_file_offset = arch.nested_member_origin;\n            pFVar8->file_name = pcVar6;\n            bVar7 = process_object(pFVar8);\n            bVar10 = 0;\n            if (bVar7 != 0) {\n              bVar10 = local_194;\n            }\n            close_file(pFVar8);\n            free(pcVar5);\n            goto LAB_0004a469;\n          }\n          pcVar6 = (char *)dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(pcVar6,pcVar5);\n          free(pcVar5);\n        }\n        else {\n          pFVar8 = &thin_filedata;\n          for (iVar3 = 0x1d; iVar3 != 0; iVar3 = iVar3 + -1) {\n            pFVar8->file_name = (char *)0x0;\n            pFVar8 = (Filedata *)((int)pFVar8 + (uint)bVar12 * -8 + 4);\n          }\n          if (nested_arch.file != (FILE *)0x0) {\n            archive_file_offset = arch.nested_member_origin + 0x3c;\n            iVar3 = fseek((FILE *)nested_arch.file,archive_file_offset,0);\n            if (iVar3 == 0) {\n              thin_filedata.handle = nested_arch.file;\n              thin_filedata.file_name = pcVar6;\n              bVar7 = process_object(&thin_filedata);\n              bVar10 = 0;\n              if (bVar7 != 0) {\n                bVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar5 = "%s: failed to seek to archive member.\n";\n            pcVar6 = nested_arch.file_name;\n            goto LAB_0004a936;\n          }\n          pcVar6 = filedata->file_name;\n          pcVar9 = (char *)dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(pcVar9,pcVar6,pcVar5);\n        }\n        goto LAB_0004a8e3;\n      }\n      archive_file_offset = arch.next_arhdr_offset;\n      arch.next_arhdr_offset = arch.next_arhdr_offset + archive_file_size;\n      filedata->file_name = pcVar6;\n      bVar7 = process_object(filedata);\n      bVar10 = local_194;\n      if (bVar7 == 0) {\n        bVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = bVar10;\n      if (filedata->dump_sects != (dump_type *)0x0) {\n        free(filedata->dump_sects);\n        filedata->dump_sects = (dump_type *)0x0;\n        filedata->num_dump_sects = 0;\n      }\n      free(pcVar6);\n    }\n    if (sVar4 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      pcVar6 = filedata->file_name;\n      pcVar5 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      pcVar5 = (char *)dcgettext(0,pcVar5,5);\n      error(pcVar5,pcVar6);\n    }\n  }" { (if_statement "if (do_archive_index == 0) {\n      local_194 = 1;\n    }\n    else {\n      pcVar5 = filedata->file_name;\n      if (arch.sym_table == (char *)0x0) {\n        pcVar6 = (char *)dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(pcVar6,pcVar5);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,pcVar5,uVar11,uVar2);\n        __off = ftell((FILE *)filedata->handle);\n        puVar1 = PTR_stdout_000b3fd8;\n        if (arch.index_num._4_4_ == 0 && (uint)arch.index_num == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            if ((((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)) &&\n               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)) {\n              pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              pcVar6 = pcVar5;\n              printf(pcVar9);\n              print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));\n              putc(10,*(FILE **)puVar1);\n              free(pcVar5);\n            }\n            if (arch.sym_size <= local_1a0) {\n              pcVar5 = filedata->file_name;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5);\n              error(pcVar6,pcVar5);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0);\n            uVar2 = arch.sym_size;\n            sVar4 = strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0);\n            local_1a0 = sVar4 + 1 + local_1a0;\n          } while (arch.index_num._4_4_ != 0 ||\n                   (uint)-arch.index_num._4_4_ < (uint)(uVar11 < (uint)arch.index_num));\n          local_194 = 1;\n          arch.sym_size = uVar2;\n        }\nLAB_0004a7a7:\n        if (arch.uses_64bit_indicies == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < arch.sym_size) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcngettext(0,\n                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                                      ,\n                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                                      ,arch.sym_size - uVar11,5);\n          error(pcVar6,pcVar5,arch.sym_size - uVar11);\n          local_194 = 0;\n        }\n        iVar3 = fseek((FILE *)filedata->handle,__off,0);\n        if (iVar3 != 0) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcgettext(0,\n                                     "%s: failed to seek back to start of object files in the archive\n"\n                                     ,5);\n          error(pcVar6,pcVar5);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0) && do_debugging == 0) && do_arch == 0) &&\n           do_notes == 0) && do_section_groups == 0) && do_dyn_syms == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }" if (parenthesized_expression "(do_archive_index == 0)" ( (binary_expression "do_archive_index == 0" identifier == number_literal) )) (compound_statement "{\n      local_194 = 1;\n    }" { (expression_statement "local_194 = 1;" (assignment_expression "local_194 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      pcVar5 = filedata->file_name;\n      if (arch.sym_table == (char *)0x0) {\n        pcVar6 = (char *)dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(pcVar6,pcVar5);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,pcVar5,uVar11,uVar2);\n        __off = ftell((FILE *)filedata->handle);\n        puVar1 = PTR_stdout_000b3fd8;\n        if (arch.index_num._4_4_ == 0 && (uint)arch.index_num == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            if ((((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)) &&\n               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)) {\n              pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              pcVar6 = pcVar5;\n              printf(pcVar9);\n              print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));\n              putc(10,*(FILE **)puVar1);\n              free(pcVar5);\n            }\n            if (arch.sym_size <= local_1a0) {\n              pcVar5 = filedata->file_name;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5);\n              error(pcVar6,pcVar5);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0);\n            uVar2 = arch.sym_size;\n            sVar4 = strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0);\n            local_1a0 = sVar4 + 1 + local_1a0;\n          } while (arch.index_num._4_4_ != 0 ||\n                   (uint)-arch.index_num._4_4_ < (uint)(uVar11 < (uint)arch.index_num));\n          local_194 = 1;\n          arch.sym_size = uVar2;\n        }\nLAB_0004a7a7:\n        if (arch.uses_64bit_indicies == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < arch.sym_size) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcngettext(0,\n                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                                      ,\n                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                                      ,arch.sym_size - uVar11,5);\n          error(pcVar6,pcVar5,arch.sym_size - uVar11);\n          local_194 = 0;\n        }\n        iVar3 = fseek((FILE *)filedata->handle,__off,0);\n        if (iVar3 != 0) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcgettext(0,\n                                     "%s: failed to seek back to start of object files in the archive\n"\n                                     ,5);\n          error(pcVar6,pcVar5);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0) && do_debugging == 0) && do_arch == 0) &&\n           do_notes == 0) && do_section_groups == 0) && do_dyn_syms == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }" else (compound_statement "{\n      pcVar5 = filedata->file_name;\n      if (arch.sym_table == (char *)0x0) {\n        pcVar6 = (char *)dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(pcVar6,pcVar5);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,pcVar5,uVar11,uVar2);\n        __off = ftell((FILE *)filedata->handle);\n        puVar1 = PTR_stdout_000b3fd8;\n        if (arch.index_num._4_4_ == 0 && (uint)arch.index_num == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            if ((((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)) &&\n               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)) {\n              pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              pcVar6 = pcVar5;\n              printf(pcVar9);\n              print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));\n              putc(10,*(FILE **)puVar1);\n              free(pcVar5);\n            }\n            if (arch.sym_size <= local_1a0) {\n              pcVar5 = filedata->file_name;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5);\n              error(pcVar6,pcVar5);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0);\n            uVar2 = arch.sym_size;\n            sVar4 = strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0);\n            local_1a0 = sVar4 + 1 + local_1a0;\n          } while (arch.index_num._4_4_ != 0 ||\n                   (uint)-arch.index_num._4_4_ < (uint)(uVar11 < (uint)arch.index_num));\n          local_194 = 1;\n          arch.sym_size = uVar2;\n        }\nLAB_0004a7a7:\n        if (arch.uses_64bit_indicies == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < arch.sym_size) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcngettext(0,\n                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                                      ,\n                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                                      ,arch.sym_size - uVar11,5);\n          error(pcVar6,pcVar5,arch.sym_size - uVar11);\n          local_194 = 0;\n        }\n        iVar3 = fseek((FILE *)filedata->handle,__off,0);\n        if (iVar3 != 0) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcgettext(0,\n                                     "%s: failed to seek back to start of object files in the archive\n"\n                                     ,5);\n          error(pcVar6,pcVar5);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0) && do_debugging == 0) && do_arch == 0) &&\n           do_notes == 0) && do_section_groups == 0) && do_dyn_syms == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }" { (expression_statement "pcVar5 = filedata->file_name;" (assignment_expression "pcVar5 = filedata->file_name" identifier = (field_expression "filedata->file_name" identifier -> field_identifier)) ;) (if_statement "if (arch.sym_table == (char *)0x0) {\n        pcVar6 = (char *)dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(pcVar6,pcVar5);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,pcVar5,uVar11,uVar2);\n        __off = ftell((FILE *)filedata->handle);\n        puVar1 = PTR_stdout_000b3fd8;\n        if (arch.index_num._4_4_ == 0 && (uint)arch.index_num == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            if ((((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)) &&\n               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)) {\n              pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              pcVar6 = pcVar5;\n              printf(pcVar9);\n              print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));\n              putc(10,*(FILE **)puVar1);\n              free(pcVar5);\n            }\n            if (arch.sym_size <= local_1a0) {\n              pcVar5 = filedata->file_name;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5);\n              error(pcVar6,pcVar5);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0);\n            uVar2 = arch.sym_size;\n            sVar4 = strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0);\n            local_1a0 = sVar4 + 1 + local_1a0;\n          } while (arch.index_num._4_4_ != 0 ||\n                   (uint)-arch.index_num._4_4_ < (uint)(uVar11 < (uint)arch.index_num));\n          local_194 = 1;\n          arch.sym_size = uVar2;\n        }\nLAB_0004a7a7:\n        if (arch.uses_64bit_indicies == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < arch.sym_size) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcngettext(0,\n                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                                      ,\n                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                                      ,arch.sym_size - uVar11,5);\n          error(pcVar6,pcVar5,arch.sym_size - uVar11);\n          local_194 = 0;\n        }\n        iVar3 = fseek((FILE *)filedata->handle,__off,0);\n        if (iVar3 != 0) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcgettext(0,\n                                     "%s: failed to seek back to start of object files in the archive\n"\n                                     ,5);\n          error(pcVar6,pcVar5);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }" if (parenthesized_expression "(arch.sym_table == (char *)0x0)" ( (binary_expression "arch.sym_table == (char *)0x0" (field_expression "arch.sym_table" identifier . field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar6 = (char *)dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(pcVar6,pcVar5);\n        local_194 = 1;\n      }" { (expression_statement "pcVar6 = (char *)dcgettext(0,"%s: unable to dump the index as none was found\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"%s: unable to dump the index as none was found\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%s: unable to dump the index as none was found\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%s: unable to dump the index as none was found\n",5)" identifier (argument_list "(0,"%s: unable to dump the index as none was found\n",5)" ( number_literal , (string_literal ""%s: unable to dump the index as none was found\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar6,pcVar5);" (call_expression "error(pcVar6,pcVar5)" identifier (argument_list "(pcVar6,pcVar5)" ( identifier , identifier ))) ;) (expression_statement "local_194 = 1;" (assignment_expression "local_194 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,pcVar5,uVar11,uVar2);\n        __off = ftell((FILE *)filedata->handle);\n        puVar1 = PTR_stdout_000b3fd8;\n        if (arch.index_num._4_4_ == 0 && (uint)arch.index_num == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            if ((((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)) &&\n               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)) {\n              pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              pcVar6 = pcVar5;\n              printf(pcVar9);\n              print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));\n              putc(10,*(FILE **)puVar1);\n              free(pcVar5);\n            }\n            if (arch.sym_size <= local_1a0) {\n              pcVar5 = filedata->file_name;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5);\n              error(pcVar6,pcVar5);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0);\n            uVar2 = arch.sym_size;\n            sVar4 = strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0);\n            local_1a0 = sVar4 + 1 + local_1a0;\n          } while (arch.index_num._4_4_ != 0 ||\n                   (uint)-arch.index_num._4_4_ < (uint)(uVar11 < (uint)arch.index_num));\n          local_194 = 1;\n          arch.sym_size = uVar2;\n        }\nLAB_0004a7a7:\n        if (arch.uses_64bit_indicies == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < arch.sym_size) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcngettext(0,\n                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                                      ,\n                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                                      ,arch.sym_size - uVar11,5);\n          error(pcVar6,pcVar5,arch.sym_size - uVar11);\n          local_194 = 0;\n        }\n        iVar3 = fseek((FILE *)filedata->handle,__off,0);\n        if (iVar3 != 0) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcgettext(0,\n                                     "%s: failed to seek back to start of object files in the archive\n"\n                                     ,5);\n          error(pcVar6,pcVar5);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }" else (compound_statement "{\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,pcVar5,uVar11,uVar2);\n        __off = ftell((FILE *)filedata->handle);\n        puVar1 = PTR_stdout_000b3fd8;\n        if (arch.index_num._4_4_ == 0 && (uint)arch.index_num == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            if ((((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)) &&\n               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)) {\n              pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              pcVar6 = pcVar5;\n              printf(pcVar9);\n              print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));\n              putc(10,*(FILE **)puVar1);\n              free(pcVar5);\n            }\n            if (arch.sym_size <= local_1a0) {\n              pcVar5 = filedata->file_name;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5);\n              error(pcVar6,pcVar5);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0);\n            uVar2 = arch.sym_size;\n            sVar4 = strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0);\n            local_1a0 = sVar4 + 1 + local_1a0;\n          } while (arch.index_num._4_4_ != 0 ||\n                   (uint)-arch.index_num._4_4_ < (uint)(uVar11 < (uint)arch.index_num));\n          local_194 = 1;\n          arch.sym_size = uVar2;\n        }\nLAB_0004a7a7:\n        if (arch.uses_64bit_indicies == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < arch.sym_size) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcngettext(0,\n                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                                      ,\n                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                                      ,arch.sym_size - uVar11,5);\n          error(pcVar6,pcVar5,arch.sym_size - uVar11);\n          local_194 = 0;\n        }\n        iVar3 = fseek((FILE *)filedata->handle,__off,0);\n        if (iVar3 != 0) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcgettext(0,\n                                     "%s: failed to seek back to start of object files in the archive\n"\n                                     ,5);\n          error(pcVar6,pcVar5);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }" { (expression_statement "pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5)" identifier (argument_list "(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5)" ( number_literal , (string_literal ""Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar6,pcVar5,uVar11,uVar2);" (call_expression "printf(pcVar6,pcVar5,uVar11,uVar2)" identifier (argument_list "(pcVar6,pcVar5,uVar11,uVar2)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "__off = ftell((FILE *)filedata->handle);" (assignment_expression "__off = ftell((FILE *)filedata->handle)" identifier = (call_expression "ftell((FILE *)filedata->handle)" identifier (argument_list "((FILE *)filedata->handle)" ( (cast_expression "(FILE *)filedata->handle" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "filedata->handle" identifier -> field_identifier)) )))) ;) (expression_statement "puVar1 = PTR_stdout_000b3fd8;" (assignment_expression "puVar1 = PTR_stdout_000b3fd8" identifier = identifier) ;) (if_statement "if (arch.index_num._4_4_ == 0 && (uint)arch.index_num == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            if ((((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)) &&\n               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)) {\n              pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              pcVar6 = pcVar5;\n              printf(pcVar9);\n              print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));\n              putc(10,*(FILE **)puVar1);\n              free(pcVar5);\n            }\n            if (arch.sym_size <= local_1a0) {\n              pcVar5 = filedata->file_name;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5);\n              error(pcVar6,pcVar5);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0);\n            uVar2 = arch.sym_size;\n            sVar4 = strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0);\n            local_1a0 = sVar4 + 1 + local_1a0;\n          } while (arch.index_num._4_4_ != 0 ||\n                   (uint)-arch.index_num._4_4_ < (uint)(uVar11 < (uint)arch.index_num));\n          local_194 = 1;\n          arch.sym_size = uVar2;\n        }" if (parenthesized_expression "(arch.index_num._4_4_ == 0 && (uint)arch.index_num == 0)" ( (binary_expression "arch.index_num._4_4_ == 0 && (uint)arch.index_num == 0" (binary_expression "arch.index_num._4_4_ == 0" (field_expression "arch.index_num._4_4_" (field_expression "arch.index_num" identifier . field_identifier) . field_identifier) == number_literal) && (binary_expression "(uint)arch.index_num == 0" (cast_expression "(uint)arch.index_num" ( (type_descriptor "uint" type_identifier) ) (field_expression "arch.index_num" identifier . field_identifier)) == number_literal)) )) (compound_statement "{\n          local_1a0 = 0;\n          local_194 = 1;\n        }" { (expression_statement "local_1a0 = 0;" (assignment_expression "local_1a0 = 0" identifier = number_literal) ;) (expression_statement "local_194 = 1;" (assignment_expression "local_194 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            if ((((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)) &&\n               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)) {\n              pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              pcVar6 = pcVar5;\n              printf(pcVar9);\n              print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));\n              putc(10,*(FILE **)puVar1);\n              free(pcVar5);\n            }\n            if (arch.sym_size <= local_1a0) {\n              pcVar5 = filedata->file_name;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5);\n              error(pcVar6,pcVar5);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0);\n            uVar2 = arch.sym_size;\n            sVar4 = strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0);\n            local_1a0 = sVar4 + 1 + local_1a0;\n          } while (arch.index_num._4_4_ != 0 ||\n                   (uint)-arch.index_num._4_4_ < (uint)(uVar11 < (uint)arch.index_num));\n          local_194 = 1;\n          arch.sym_size = uVar2;\n        }" else (compound_statement "{\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            if ((((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)) &&\n               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)) {\n              pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              pcVar6 = pcVar5;\n              printf(pcVar9);\n              print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));\n              putc(10,*(FILE **)puVar1);\n              free(pcVar5);\n            }\n            if (arch.sym_size <= local_1a0) {\n              pcVar5 = filedata->file_name;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5);\n              error(pcVar6,pcVar5);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0);\n            uVar2 = arch.sym_size;\n            sVar4 = strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0);\n            local_1a0 = sVar4 + 1 + local_1a0;\n          } while (arch.index_num._4_4_ != 0 ||\n                   (uint)-arch.index_num._4_4_ < (uint)(uVar11 < (uint)arch.index_num));\n          local_194 = 1;\n          arch.sym_size = uVar2;\n        }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "local_1a0 = 0;" (assignment_expression "local_1a0 = 0" identifier = number_literal) ;) (do_statement "do {\n            if ((((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)) &&\n               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)) {\n              pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              pcVar6 = pcVar5;\n              printf(pcVar9);\n              print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));\n              putc(10,*(FILE **)puVar1);\n              free(pcVar5);\n            }\n            if (arch.sym_size <= local_1a0) {\n              pcVar5 = filedata->file_name;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5);\n              error(pcVar6,pcVar5);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0);\n            uVar2 = arch.sym_size;\n            sVar4 = strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0);\n            local_1a0 = sVar4 + 1 + local_1a0;\n          } while (arch.index_num._4_4_ != 0 ||\n                   (uint)-arch.index_num._4_4_ < (uint)(uVar11 < (uint)arch.index_num));" do (compound_statement "{\n            if ((((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)) &&\n               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)) {\n              pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              pcVar6 = pcVar5;\n              printf(pcVar9);\n              print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));\n              putc(10,*(FILE **)puVar1);\n              free(pcVar5);\n            }\n            if (arch.sym_size <= local_1a0) {\n              pcVar5 = filedata->file_name;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5);\n              error(pcVar6,pcVar5);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0);\n            uVar2 = arch.sym_size;\n            sVar4 = strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0);\n            local_1a0 = sVar4 + 1 + local_1a0;\n          }" { (if_statement "if ((((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)) &&\n               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)) {\n              pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              pcVar6 = pcVar5;\n              printf(pcVar9);\n              print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));\n              putc(10,*(FILE **)puVar1);\n              free(pcVar5);\n            }" if (parenthesized_expression "((((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)) &&\n               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0))" ( (binary_expression "(((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)) &&\n               (pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)" (parenthesized_expression "(((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0))" ( (binary_expression "((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))) &&\n                (pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)" (parenthesized_expression "((uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4)))" ( (binary_expression "(uVar11 == 0) ||\n                 ((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))" (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) || (parenthesized_expression "((ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4))" ( (binary_expression "(ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11] ||\n                  *(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4)" (binary_expression "(ulong)arch.index_array[uVar11 - 1] != (ulong)arch.index_array[uVar11]" (cast_expression "(ulong)arch.index_array[uVar11 - 1]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "arch.index_array[uVar11 - 1]" (field_expression "arch.index_array" identifier . field_identifier) [ (binary_expression "uVar11 - 1" identifier - number_literal) ])) != (cast_expression "(ulong)arch.index_array[uVar11]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "arch.index_array[uVar11]" (field_expression "arch.index_array" identifier . field_identifier) [ identifier ]))) || (binary_expression "*(int *)((int)arch.index_array + uVar11 * 8 + 4) !=\n                  *(int *)((int)arch.index_array + uVar11 * 8 + -4)" (pointer_expression "*(int *)((int)arch.index_array + uVar11 * 8 + 4)" * (cast_expression "(int *)((int)arch.index_array + uVar11 * 8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)arch.index_array + uVar11 * 8 + 4)" ( (binary_expression "(int)arch.index_array + uVar11 * 8 + 4" (binary_expression "(int)arch.index_array + uVar11 * 8" (cast_expression "(int)arch.index_array" ( (type_descriptor "int" primitive_type) ) (field_expression "arch.index_array" identifier . field_identifier)) + (binary_expression "uVar11 * 8" identifier * number_literal)) + number_literal) )))) != (pointer_expression "*(int *)((int)arch.index_array + uVar11 * 8 + -4)" * (cast_expression "(int *)((int)arch.index_array + uVar11 * 8 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)arch.index_array + uVar11 * 8 + -4)" ( (binary_expression "(int)arch.index_array + uVar11 * 8 + -4" (binary_expression "(int)arch.index_array + uVar11 * 8" (cast_expression "(int)arch.index_array" ( (type_descriptor "int" primitive_type) ) (field_expression "arch.index_array" identifier . field_identifier)) + (binary_expression "uVar11 * 8" identifier * number_literal)) + number_literal) )))))) ))) )) && (parenthesized_expression "(pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0)" ( (comma_expression "pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch),\n                pcVar5 != (char *)0x0" (assignment_expression "pcVar5 = get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch)" identifier = (call_expression "get_archive_member_name_at\n                                    (&arch,(ulong)arch.index_array[uVar11],&nested_arch)" identifier (argument_list "(&arch,(ulong)arch.index_array[uVar11],&nested_arch)" ( (pointer_expression "&arch" & identifier) , (cast_expression "(ulong)arch.index_array[uVar11]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "arch.index_array[uVar11]" (field_expression "arch.index_array" identifier . field_identifier) [ identifier ])) , (pointer_expression "&nested_arch" & identifier) )))) , (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0)" ( (comma_expression "pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5), pcVar5 != (char *)0x0" (assignment_expression "pcVar5 = make_qualified_name(&arch,&nested_arch,pcVar5)" identifier = (call_expression "make_qualified_name(&arch,&nested_arch,pcVar5)" identifier (argument_list "(&arch,&nested_arch,pcVar5)" ( (pointer_expression "&arch" & identifier) , (pointer_expression "&nested_arch" & identifier) , identifier )))) , (binary_expression "pcVar5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              pcVar6 = pcVar5;\n              printf(pcVar9);\n              print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));\n              putc(10,*(FILE **)puVar1);\n              free(pcVar5);\n            }" { (expression_statement "pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);" (assignment_expression "pcVar9 = (char *)dcgettext(0,"Contents of binary %s at offset ",5)" identifier = (cast_expression "(char *)dcgettext(0,"Contents of binary %s at offset ",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Contents of binary %s at offset ",5)" identifier (argument_list "(0,"Contents of binary %s at offset ",5)" ( number_literal , (string_literal ""Contents of binary %s at offset "" " string_content ") , number_literal ))))) ;) (expression_statement "pcVar6 = pcVar5;" (assignment_expression "pcVar6 = pcVar5" identifier = identifier) ;) (expression_statement "printf(pcVar9);" (call_expression "printf(pcVar9)" identifier (argument_list "(pcVar9)" ( identifier ))) ;) (expression_statement "print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11));" (call_expression "print_vma(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11))" identifier (argument_list "(CONCAT44(pcVar6,pcVar9),*(print_mode *)(arch.index_array + uVar11))" ( (call_expression "CONCAT44(pcVar6,pcVar9)" identifier (argument_list "(pcVar6,pcVar9)" ( identifier , identifier ))) , (pointer_expression "*(print_mode *)(arch.index_array + uVar11)" * (cast_expression "(print_mode *)(arch.index_array + uVar11)" ( (type_descriptor "print_mode *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(arch.index_array + uVar11)" ( (binary_expression "arch.index_array + uVar11" (field_expression "arch.index_array" identifier . field_identifier) + identifier) )))) ))) ;) (expression_statement "putc(10,*(FILE **)puVar1);" (call_expression "putc(10,*(FILE **)puVar1)" identifier (argument_list "(10,*(FILE **)puVar1)" ( number_literal , (pointer_expression "*(FILE **)puVar1" * (cast_expression "(FILE **)puVar1" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "free(pcVar5);" (call_expression "free(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) })) (if_statement "if (arch.sym_size <= local_1a0) {\n              pcVar5 = filedata->file_name;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5);\n              error(pcVar6,pcVar5);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }" if (parenthesized_expression "(arch.sym_size <= local_1a0)" ( (binary_expression "arch.sym_size <= local_1a0" (field_expression "arch.sym_size" identifier . field_identifier) <= identifier) )) (compound_statement "{\n              pcVar5 = filedata->file_name;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5);\n              error(pcVar6,pcVar5);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }" { (expression_statement "pcVar5 = filedata->file_name;" (assignment_expression "pcVar5 = filedata->file_name" identifier = (field_expression "filedata->file_name" identifier -> field_identifier)) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5)" identifier (argument_list "(0,\n                                         "%s: end of the symbol table reached before the end of the index\n"\n                                         ,5)" ( number_literal , (string_literal ""%s: end of the symbol table reached before the end of the index\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar6,pcVar5);" (call_expression "error(pcVar6,pcVar5)" identifier (argument_list "(pcVar6,pcVar5)" ( identifier , identifier ))) ;) (expression_statement "local_194 = 0;" (assignment_expression "local_194 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0004a7a7;" goto statement_identifier ;) })) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "printf("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0);" (call_expression "printf("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0)" identifier (argument_list "("\t%.*s\n",arch.sym_size - local_1a0,arch.sym_table + local_1a0)" ( (string_literal ""\t%.*s\n"" " escape_sequence string_content escape_sequence ") , (binary_expression "arch.sym_size - local_1a0" (field_expression "arch.sym_size" identifier . field_identifier) - identifier) , (binary_expression "arch.sym_table + local_1a0" (field_expression "arch.sym_table" identifier . field_identifier) + identifier) ))) ;) (expression_statement "uVar2 = arch.sym_size;" (assignment_expression "uVar2 = arch.sym_size" identifier = (field_expression "arch.sym_size" identifier . field_identifier)) ;) (expression_statement "sVar4 = strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0);" (assignment_expression "sVar4 = strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0)" identifier = (call_expression "strnlen(arch.sym_table + local_1a0,arch.sym_size - local_1a0)" identifier (argument_list "(arch.sym_table + local_1a0,arch.sym_size - local_1a0)" ( (binary_expression "arch.sym_table + local_1a0" (field_expression "arch.sym_table" identifier . field_identifier) + identifier) , (binary_expression "arch.sym_size - local_1a0" (field_expression "arch.sym_size" identifier . field_identifier) - identifier) )))) ;) (expression_statement "local_1a0 = sVar4 + 1 + local_1a0;" (assignment_expression "local_1a0 = sVar4 + 1 + local_1a0" identifier = (binary_expression "sVar4 + 1 + local_1a0" (binary_expression "sVar4 + 1" identifier + number_literal) + identifier)) ;) }) while (parenthesized_expression "(arch.index_num._4_4_ != 0 ||\n                   (uint)-arch.index_num._4_4_ < (uint)(uVar11 < (uint)arch.index_num))" ( (binary_expression "arch.index_num._4_4_ != 0 ||\n                   (uint)-arch.index_num._4_4_ < (uint)(uVar11 < (uint)arch.index_num)" (binary_expression "arch.index_num._4_4_ != 0" (field_expression "arch.index_num._4_4_" (field_expression "arch.index_num" identifier . field_identifier) . field_identifier) != number_literal) || (binary_expression "(uint)-arch.index_num._4_4_ < (uint)(uVar11 < (uint)arch.index_num)" (binary_expression "(uint)-arch.index_num._4_4_" (parenthesized_expression "(uint)" ( identifier )) - (field_expression "arch.index_num._4_4_" (field_expression "arch.index_num" identifier . field_identifier) . field_identifier)) < (call_expression "(uint)(uVar11 < (uint)arch.index_num)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < (uint)arch.index_num)" ( (binary_expression "uVar11 < (uint)arch.index_num" identifier < (cast_expression "(uint)arch.index_num" ( (type_descriptor "uint" type_identifier) ) (field_expression "arch.index_num" identifier . field_identifier))) ))))) )) ;) (expression_statement "local_194 = 1;" (assignment_expression "local_194 = 1" identifier = number_literal) ;) (expression_statement "arch.sym_size = uVar2;" (assignment_expression "arch.sym_size = uVar2" (field_expression "arch.sym_size" identifier . field_identifier) = identifier) ;) }))) (labeled_statement "LAB_0004a7a7:\n        if (arch.uses_64bit_indicies == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }" statement_identifier : (if_statement "if (arch.uses_64bit_indicies == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }" if (parenthesized_expression "(arch.uses_64bit_indicies == 0)" ( (binary_expression "arch.uses_64bit_indicies == 0" (field_expression "arch.uses_64bit_indicies" identifier . field_identifier) == number_literal) )) (compound_statement "{\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }" { (expression_statement "uVar11 = local_1a0 + 1 & 0xfffffffe;" (assignment_expression "uVar11 = local_1a0 + 1 & 0xfffffffe" identifier = (binary_expression "local_1a0 + 1 & 0xfffffffe" (binary_expression "local_1a0 + 1" identifier + number_literal) & number_literal)) ;) }) (else_clause "else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }" else (compound_statement "{\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }" { (expression_statement "uVar11 = local_1a0 + 7 & 0xfffffff8;" (assignment_expression "uVar11 = local_1a0 + 7 & 0xfffffff8" identifier = (binary_expression "local_1a0 + 7 & 0xfffffff8" (binary_expression "local_1a0 + 7" identifier + number_literal) & number_literal)) ;) })))) (if_statement "if (uVar11 < arch.sym_size) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcngettext(0,\n                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                                      ,\n                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                                      ,arch.sym_size - uVar11,5);\n          error(pcVar6,pcVar5,arch.sym_size - uVar11);\n          local_194 = 0;\n        }" if (parenthesized_expression "(uVar11 < arch.sym_size)" ( (binary_expression "uVar11 < arch.sym_size" identifier < (field_expression "arch.sym_size" identifier . field_identifier)) )) (compound_statement "{\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcngettext(0,\n                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                                      ,\n                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                                      ,arch.sym_size - uVar11,5);\n          error(pcVar6,pcVar5,arch.sym_size - uVar11);\n          local_194 = 0;\n        }" { (expression_statement "pcVar5 = filedata->file_name;" (assignment_expression "pcVar5 = filedata->file_name" identifier = (field_expression "filedata->file_name" identifier -> field_identifier)) ;) (expression_statement "pcVar6 = (char *)dcngettext(0,\n                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                                      ,\n                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                                      ,arch.sym_size - uVar11,5);" (assignment_expression "pcVar6 = (char *)dcngettext(0,\n                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                                      ,\n                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                                      ,arch.sym_size - uVar11,5)" identifier = (cast_expression "(char *)dcngettext(0,\n                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                                      ,\n                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                                      ,arch.sym_size - uVar11,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcngettext(0,\n                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                                      ,\n                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                                      ,arch.sym_size - uVar11,5)" identifier (argument_list "(0,\n                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                                      ,\n                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                                      ,arch.sym_size - uVar11,5)" ( number_literal , (string_literal ""%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"" " string_content escape_sequence ") , (string_literal ""%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"" " string_content escape_sequence ") , (binary_expression "arch.sym_size - uVar11" (field_expression "arch.sym_size" identifier . field_identifier) - identifier) , number_literal ))))) ;) (expression_statement "error(pcVar6,pcVar5,arch.sym_size - uVar11);" (call_expression "error(pcVar6,pcVar5,arch.sym_size - uVar11)" identifier (argument_list "(pcVar6,pcVar5,arch.sym_size - uVar11)" ( identifier , identifier , (binary_expression "arch.sym_size - uVar11" (field_expression "arch.sym_size" identifier . field_identifier) - identifier) ))) ;) (expression_statement "local_194 = 0;" (assignment_expression "local_194 = 0" identifier = number_literal) ;) })) (expression_statement "iVar3 = fseek((FILE *)filedata->handle,__off,0);" (assignment_expression "iVar3 = fseek((FILE *)filedata->handle,__off,0)" identifier = (call_expression "fseek((FILE *)filedata->handle,__off,0)" identifier (argument_list "((FILE *)filedata->handle,__off,0)" ( (cast_expression "(FILE *)filedata->handle" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "filedata->handle" identifier -> field_identifier)) , identifier , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcgettext(0,\n                                     "%s: failed to seek back to start of object files in the archive\n"\n                                     ,5);\n          error(pcVar6,pcVar5);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          pcVar5 = filedata->file_name;\n          pcVar6 = (char *)dcgettext(0,\n                                     "%s: failed to seek back to start of object files in the archive\n"\n                                     ,5);\n          error(pcVar6,pcVar5);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }" { (expression_statement "pcVar5 = filedata->file_name;" (assignment_expression "pcVar5 = filedata->file_name" identifier = (field_expression "filedata->file_name" identifier -> field_identifier)) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,\n                                     "%s: failed to seek back to start of object files in the archive\n"\n                                     ,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,\n                                     "%s: failed to seek back to start of object files in the archive\n"\n                                     ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                     "%s: failed to seek back to start of object files in the archive\n"\n                                     ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                     "%s: failed to seek back to start of object files in the archive\n"\n                                     ,5)" identifier (argument_list "(0,\n                                     "%s: failed to seek back to start of object files in the archive\n"\n                                     ,5)" ( number_literal , (string_literal ""%s: failed to seek back to start of object files in the archive\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar6,pcVar5);" (call_expression "error(pcVar6,pcVar5)" identifier (argument_list "(pcVar6,pcVar5)" ( identifier , identifier ))) ;) (expression_statement "local_190 = 0;" (assignment_expression "local_190 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0004a8e3;" goto statement_identifier ;) })) }))) (if_statement "if ((((((((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0) && do_debugging == 0) && do_arch == 0) &&\n           do_notes == 0) && do_section_groups == 0) && do_dyn_syms == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }" if (parenthesized_expression "((((((((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0) && do_debugging == 0) && do_arch == 0) &&\n           do_notes == 0) && do_section_groups == 0) && do_dyn_syms == 0)" ( (binary_expression "(((((((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0) && do_debugging == 0) && do_arch == 0) &&\n           do_notes == 0) && do_section_groups == 0) && do_dyn_syms == 0" (parenthesized_expression "(((((((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0) && do_debugging == 0) && do_arch == 0) &&\n           do_notes == 0) && do_section_groups == 0)" ( (binary_expression "((((((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0) && do_debugging == 0) && do_arch == 0) &&\n           do_notes == 0) && do_section_groups == 0" (parenthesized_expression "((((((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0) && do_debugging == 0) && do_arch == 0) &&\n           do_notes == 0)" ( (binary_expression "(((((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0) && do_debugging == 0) && do_arch == 0) &&\n           do_notes == 0" (parenthesized_expression "(((((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0) && do_debugging == 0) && do_arch == 0)" ( (binary_expression "((((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0) && do_debugging == 0) && do_arch == 0" (parenthesized_expression "((((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0) && do_debugging == 0)" ( (binary_expression "(((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0) && do_debugging == 0" (parenthesized_expression "(((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0)" ( (binary_expression "((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0) && do_histogram == 0" (parenthesized_expression "((((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0)" ( (binary_expression "(((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0) &&\n               do_version == 0" (parenthesized_expression "(((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0)" ( (binary_expression "((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0) && do_dump == 0" (parenthesized_expression "((((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0)" ( (binary_expression "(((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0) && do_header == 0" (parenthesized_expression "(((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0)" ( (binary_expression "((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0) && do_segments == 0" (parenthesized_expression "((((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0)" ( (binary_expression "(((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0) &&\n                   do_sections == 0" (parenthesized_expression "(((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0)" ( (binary_expression "((do_dynamic == 0 && do_syms == 0) && do_reloc == 0) && do_unwind == 0" (parenthesized_expression "((do_dynamic == 0 && do_syms == 0) && do_reloc == 0)" ( (binary_expression "(do_dynamic == 0 && do_syms == 0) && do_reloc == 0" (parenthesized_expression "(do_dynamic == 0 && do_syms == 0)" ( (binary_expression "do_dynamic == 0 && do_syms == 0" (binary_expression "do_dynamic == 0" identifier == number_literal) && (binary_expression "do_syms == 0" identifier == number_literal)) )) && (binary_expression "do_reloc == 0" identifier == number_literal)) )) && (binary_expression "do_unwind == 0" identifier == number_literal)) )) && (binary_expression "do_sections == 0" identifier == number_literal)) )) && (binary_expression "do_segments == 0" identifier == number_literal)) )) && (binary_expression "do_header == 0" identifier == number_literal)) )) && (binary_expression "do_dump == 0" identifier == number_literal)) )) && (binary_expression "do_version == 0" identifier == number_literal)) )) && (binary_expression "do_histogram == 0" identifier == number_literal)) )) && (binary_expression "do_debugging == 0" identifier == number_literal)) )) && (binary_expression "do_arch == 0" identifier == number_literal)) )) && (binary_expression "do_notes == 0" identifier == number_literal)) )) && (binary_expression "do_section_groups == 0" identifier == number_literal)) )) && (binary_expression "do_dyn_syms == 0" identifier == number_literal)) )) (compound_statement "{\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }" { (expression_statement "local_190 = 1;" (assignment_expression "local_190 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004a8e3;" goto statement_identifier ;) })) }))) (while_statement "while( true ) {\n      iVar3 = fseek((FILE *)filedata->handle,arch.next_arhdr_offset,0);\n      if (iVar3 != 0) {\n        pcVar5 = filedata->file_name;\n        pcVar6 = (char *)dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(pcVar6,pcVar5);\n        return 0;\n      }\n      sVar4 = fread(&arch.arhdr,1,0x3c,(FILE *)filedata->handle);\n      local_190 = 0;\n      if (sVar4 != 0x3c) break;\n      if (arch.arhdr.ar_fmag != (char  [2])0xa60) {\n        pcVar5 = "%s: did not find a valid archive header\n";\n        pcVar6 = arch.file_name;\n        goto LAB_0004a9ef;\n      }\n      arch.next_arhdr_offset = arch.next_arhdr_offset + 0x3c;\n      archive_file_size = strtoul(arch.arhdr.ar_size,(char **)0x0,10);\n      if ((archive_file_size & 1) != 0) {\n        archive_file_size = archive_file_size + 1;\n      }\n      pcVar5 = get_archive_member_name(&arch,&nested_arch);\n      if (pcVar5 == (char *)0x0) {\nLAB_0004a928:\n        pcVar6 = filedata->file_name;\n        pcVar5 = "%s: bad archive file name\n";\nLAB_0004a936:\n        pcVar5 = (char *)dcgettext(0,pcVar5,5);\n        error(pcVar5,pcVar6);\n        goto LAB_0004a8e3;\n      }\n      sVar4 = strlen(pcVar5);\n      pcVar6 = make_qualified_name(&arch,&nested_arch,pcVar5);\n      if (pcVar6 == (char *)0x0) goto LAB_0004a928;\n      if (is_thin_archive != 0) {\n        if (arch.nested_member_origin == 0) {\n          pcVar5 = adjust_relative_path(filedata->file_name,pcVar5,sVar4);\n          if (pcVar5 == (char *)0x0) goto LAB_0004a8db;\n          pFVar8 = open_file(pcVar5);\n          if (pFVar8 != (Filedata *)0x0) {\n            archive_file_offset = arch.nested_member_origin;\n            pFVar8->file_name = pcVar6;\n            bVar7 = process_object(pFVar8);\n            bVar10 = 0;\n            if (bVar7 != 0) {\n              bVar10 = local_194;\n            }\n            close_file(pFVar8);\n            free(pcVar5);\n            goto LAB_0004a469;\n          }\n          pcVar6 = (char *)dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(pcVar6,pcVar5);\n          free(pcVar5);\n        }\n        else {\n          pFVar8 = &thin_filedata;\n          for (iVar3 = 0x1d; iVar3 != 0; iVar3 = iVar3 + -1) {\n            pFVar8->file_name = (char *)0x0;\n            pFVar8 = (Filedata *)((int)pFVar8 + (uint)bVar12 * -8 + 4);\n          }\n          if (nested_arch.file != (FILE *)0x0) {\n            archive_file_offset = arch.nested_member_origin + 0x3c;\n            iVar3 = fseek((FILE *)nested_arch.file,archive_file_offset,0);\n            if (iVar3 == 0) {\n              thin_filedata.handle = nested_arch.file;\n              thin_filedata.file_name = pcVar6;\n              bVar7 = process_object(&thin_filedata);\n              bVar10 = 0;\n              if (bVar7 != 0) {\n                bVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar5 = "%s: failed to seek to archive member.\n";\n            pcVar6 = nested_arch.file_name;\n            goto LAB_0004a936;\n          }\n          pcVar6 = filedata->file_name;\n          pcVar9 = (char *)dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(pcVar9,pcVar6,pcVar5);\n        }\n        goto LAB_0004a8e3;\n      }\n      archive_file_offset = arch.next_arhdr_offset;\n      arch.next_arhdr_offset = arch.next_arhdr_offset + archive_file_size;\n      filedata->file_name = pcVar6;\n      bVar7 = process_object(filedata);\n      bVar10 = local_194;\n      if (bVar7 == 0) {\n        bVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = bVar10;\n      if (filedata->dump_sects != (dump_type *)0x0) {\n        free(filedata->dump_sects);\n        filedata->dump_sects = (dump_type *)0x0;\n        filedata->num_dump_sects = 0;\n      }\n      free(pcVar6);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar3 = fseek((FILE *)filedata->handle,arch.next_arhdr_offset,0);\n      if (iVar3 != 0) {\n        pcVar5 = filedata->file_name;\n        pcVar6 = (char *)dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(pcVar6,pcVar5);\n        return 0;\n      }\n      sVar4 = fread(&arch.arhdr,1,0x3c,(FILE *)filedata->handle);\n      local_190 = 0;\n      if (sVar4 != 0x3c) break;\n      if (arch.arhdr.ar_fmag != (char  [2])0xa60) {\n        pcVar5 = "%s: did not find a valid archive header\n";\n        pcVar6 = arch.file_name;\n        goto LAB_0004a9ef;\n      }\n      arch.next_arhdr_offset = arch.next_arhdr_offset + 0x3c;\n      archive_file_size = strtoul(arch.arhdr.ar_size,(char **)0x0,10);\n      if ((archive_file_size & 1) != 0) {\n        archive_file_size = archive_file_size + 1;\n      }\n      pcVar5 = get_archive_member_name(&arch,&nested_arch);\n      if (pcVar5 == (char *)0x0) {\nLAB_0004a928:\n        pcVar6 = filedata->file_name;\n        pcVar5 = "%s: bad archive file name\n";\nLAB_0004a936:\n        pcVar5 = (char *)dcgettext(0,pcVar5,5);\n        error(pcVar5,pcVar6);\n        goto LAB_0004a8e3;\n      }\n      sVar4 = strlen(pcVar5);\n      pcVar6 = make_qualified_name(&arch,&nested_arch,pcVar5);\n      if (pcVar6 == (char *)0x0) goto LAB_0004a928;\n      if (is_thin_archive != 0) {\n        if (arch.nested_member_origin == 0) {\n          pcVar5 = adjust_relative_path(filedata->file_name,pcVar5,sVar4);\n          if (pcVar5 == (char *)0x0) goto LAB_0004a8db;\n          pFVar8 = open_file(pcVar5);\n          if (pFVar8 != (Filedata *)0x0) {\n            archive_file_offset = arch.nested_member_origin;\n            pFVar8->file_name = pcVar6;\n            bVar7 = process_object(pFVar8);\n            bVar10 = 0;\n            if (bVar7 != 0) {\n              bVar10 = local_194;\n            }\n            close_file(pFVar8);\n            free(pcVar5);\n            goto LAB_0004a469;\n          }\n          pcVar6 = (char *)dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(pcVar6,pcVar5);\n          free(pcVar5);\n        }\n        else {\n          pFVar8 = &thin_filedata;\n          for (iVar3 = 0x1d; iVar3 != 0; iVar3 = iVar3 + -1) {\n            pFVar8->file_name = (char *)0x0;\n            pFVar8 = (Filedata *)((int)pFVar8 + (uint)bVar12 * -8 + 4);\n          }\n          if (nested_arch.file != (FILE *)0x0) {\n            archive_file_offset = arch.nested_member_origin + 0x3c;\n            iVar3 = fseek((FILE *)nested_arch.file,archive_file_offset,0);\n            if (iVar3 == 0) {\n              thin_filedata.handle = nested_arch.file;\n              thin_filedata.file_name = pcVar6;\n              bVar7 = process_object(&thin_filedata);\n              bVar10 = 0;\n              if (bVar7 != 0) {\n                bVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar5 = "%s: failed to seek to archive member.\n";\n            pcVar6 = nested_arch.file_name;\n            goto LAB_0004a936;\n          }\n          pcVar6 = filedata->file_name;\n          pcVar9 = (char *)dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(pcVar9,pcVar6,pcVar5);\n        }\n        goto LAB_0004a8e3;\n      }\n      archive_file_offset = arch.next_arhdr_offset;\n      arch.next_arhdr_offset = arch.next_arhdr_offset + archive_file_size;\n      filedata->file_name = pcVar6;\n      bVar7 = process_object(filedata);\n      bVar10 = local_194;\n      if (bVar7 == 0) {\n        bVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = bVar10;\n      if (filedata->dump_sects != (dump_type *)0x0) {\n        free(filedata->dump_sects);\n        filedata->dump_sects = (dump_type *)0x0;\n        filedata->num_dump_sects = 0;\n      }\n      free(pcVar6);\n    }" { (expression_statement "iVar3 = fseek((FILE *)filedata->handle,arch.next_arhdr_offset,0);" (assignment_expression "iVar3 = fseek((FILE *)filedata->handle,arch.next_arhdr_offset,0)" identifier = (call_expression "fseek((FILE *)filedata->handle,arch.next_arhdr_offset,0)" identifier (argument_list "((FILE *)filedata->handle,arch.next_arhdr_offset,0)" ( (cast_expression "(FILE *)filedata->handle" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "filedata->handle" identifier -> field_identifier)) , (field_expression "arch.next_arhdr_offset" identifier . field_identifier) , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n        pcVar5 = filedata->file_name;\n        pcVar6 = (char *)dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(pcVar6,pcVar5);\n        return 0;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        pcVar5 = filedata->file_name;\n        pcVar6 = (char *)dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(pcVar6,pcVar5);\n        return 0;\n      }" { (expression_statement "pcVar5 = filedata->file_name;" (assignment_expression "pcVar5 = filedata->file_name" identifier = (field_expression "filedata->file_name" identifier -> field_identifier)) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,"%s: failed to seek to next archive header\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"%s: failed to seek to next archive header\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%s: failed to seek to next archive header\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%s: failed to seek to next archive header\n",5)" identifier (argument_list "(0,"%s: failed to seek to next archive header\n",5)" ( number_literal , (string_literal ""%s: failed to seek to next archive header\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar6,pcVar5);" (call_expression "error(pcVar6,pcVar5)" identifier (argument_list "(pcVar6,pcVar5)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "sVar4 = fread(&arch.arhdr,1,0x3c,(FILE *)filedata->handle);" (assignment_expression "sVar4 = fread(&arch.arhdr,1,0x3c,(FILE *)filedata->handle)" identifier = (call_expression "fread(&arch.arhdr,1,0x3c,(FILE *)filedata->handle)" identifier (argument_list "(&arch.arhdr,1,0x3c,(FILE *)filedata->handle)" ( (pointer_expression "&arch.arhdr" & (field_expression "arch.arhdr" identifier . field_identifier)) , number_literal , number_literal , (cast_expression "(FILE *)filedata->handle" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "filedata->handle" identifier -> field_identifier)) )))) ;) (expression_statement "local_190 = 0;" (assignment_expression "local_190 = 0" identifier = number_literal) ;) (if_statement "if (sVar4 != 0x3c) break;" if (parenthesized_expression "(sVar4 != 0x3c)" ( (binary_expression "sVar4 != 0x3c" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (arch.arhdr.ar_fmag != (char  [2])0xa60) {\n        pcVar5 = "%s: did not find a valid archive header\n";\n        pcVar6 = arch.file_name;\n        goto LAB_0004a9ef;\n      }" if (parenthesized_expression "(arch.arhdr.ar_fmag != (char  [2])0xa60)" ( (binary_expression "arch.arhdr.ar_fmag != (char  [2])0xa60" (field_expression "arch.arhdr.ar_fmag" (field_expression "arch.arhdr" identifier . field_identifier) . field_identifier) != (cast_expression "(char  [2])0xa60" ( (type_descriptor "char  [2]" primitive_type (abstract_array_declarator "[2]" [ number_literal ])) ) number_literal)) )) (compound_statement "{\n        pcVar5 = "%s: did not find a valid archive header\n";\n        pcVar6 = arch.file_name;\n        goto LAB_0004a9ef;\n      }" { (expression_statement "pcVar5 = "%s: did not find a valid archive header\n";" (assignment_expression "pcVar5 = "%s: did not find a valid archive header\n"" identifier = (string_literal ""%s: did not find a valid archive header\n"" " string_content escape_sequence ")) ;) (expression_statement "pcVar6 = arch.file_name;" (assignment_expression "pcVar6 = arch.file_name" identifier = (field_expression "arch.file_name" identifier . field_identifier)) ;) (goto_statement "goto LAB_0004a9ef;" goto statement_identifier ;) })) (expression_statement "arch.next_arhdr_offset = arch.next_arhdr_offset + 0x3c;" (assignment_expression "arch.next_arhdr_offset = arch.next_arhdr_offset + 0x3c" (field_expression "arch.next_arhdr_offset" identifier . field_identifier) = (binary_expression "arch.next_arhdr_offset + 0x3c" (field_expression "arch.next_arhdr_offset" identifier . field_identifier) + number_literal)) ;) (expression_statement "archive_file_size = strtoul(arch.arhdr.ar_size,(char **)0x0,10);" (assignment_expression "archive_file_size = strtoul(arch.arhdr.ar_size,(char **)0x0,10)" identifier = (call_expression "strtoul(arch.arhdr.ar_size,(char **)0x0,10)" identifier (argument_list "(arch.arhdr.ar_size,(char **)0x0,10)" ( (field_expression "arch.arhdr.ar_size" (field_expression "arch.arhdr" identifier . field_identifier) . field_identifier) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (if_statement "if ((archive_file_size & 1) != 0) {\n        archive_file_size = archive_file_size + 1;\n      }" if (parenthesized_expression "((archive_file_size & 1) != 0)" ( (binary_expression "(archive_file_size & 1) != 0" (parenthesized_expression "(archive_file_size & 1)" ( (binary_expression "archive_file_size & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        archive_file_size = archive_file_size + 1;\n      }" { (expression_statement "archive_file_size = archive_file_size + 1;" (assignment_expression "archive_file_size = archive_file_size + 1" identifier = (binary_expression "archive_file_size + 1" identifier + number_literal)) ;) })) (expression_statement "pcVar5 = get_archive_member_name(&arch,&nested_arch);" (assignment_expression "pcVar5 = get_archive_member_name(&arch,&nested_arch)" identifier = (call_expression "get_archive_member_name(&arch,&nested_arch)" identifier (argument_list "(&arch,&nested_arch)" ( (pointer_expression "&arch" & identifier) , (pointer_expression "&nested_arch" & identifier) )))) ;) (if_statement "if (pcVar5 == (char *)0x0) {\nLAB_0004a928:\n        pcVar6 = filedata->file_name;\n        pcVar5 = "%s: bad archive file name\n";\nLAB_0004a936:\n        pcVar5 = (char *)dcgettext(0,pcVar5,5);\n        error(pcVar5,pcVar6);\n        goto LAB_0004a8e3;\n      }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0004a928:\n        pcVar6 = filedata->file_name;\n        pcVar5 = "%s: bad archive file name\n";\nLAB_0004a936:\n        pcVar5 = (char *)dcgettext(0,pcVar5,5);\n        error(pcVar5,pcVar6);\n        goto LAB_0004a8e3;\n      }" { (labeled_statement "LAB_0004a928:\n        pcVar6 = filedata->file_name;" statement_identifier : (expression_statement "pcVar6 = filedata->file_name;" (assignment_expression "pcVar6 = filedata->file_name" identifier = (field_expression "filedata->file_name" identifier -> field_identifier)) ;)) (expression_statement "pcVar5 = "%s: bad archive file name\n";" (assignment_expression "pcVar5 = "%s: bad archive file name\n"" identifier = (string_literal ""%s: bad archive file name\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_0004a936:\n        pcVar5 = (char *)dcgettext(0,pcVar5,5);" statement_identifier : (expression_statement "pcVar5 = (char *)dcgettext(0,pcVar5,5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,pcVar5,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar5,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar5,5)" identifier (argument_list "(0,pcVar5,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "error(pcVar5,pcVar6);" (call_expression "error(pcVar5,pcVar6)" identifier (argument_list "(pcVar5,pcVar6)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0004a8e3;" goto statement_identifier ;) })) (expression_statement "sVar4 = strlen(pcVar5);" (assignment_expression "sVar4 = strlen(pcVar5)" identifier = (call_expression "strlen(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "pcVar6 = make_qualified_name(&arch,&nested_arch,pcVar5);" (assignment_expression "pcVar6 = make_qualified_name(&arch,&nested_arch,pcVar5)" identifier = (call_expression "make_qualified_name(&arch,&nested_arch,pcVar5)" identifier (argument_list "(&arch,&nested_arch,pcVar5)" ( (pointer_expression "&arch" & identifier) , (pointer_expression "&nested_arch" & identifier) , identifier )))) ;) (if_statement "if (pcVar6 == (char *)0x0) goto LAB_0004a928;" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004a928;" goto statement_identifier ;)) (if_statement "if (is_thin_archive != 0) {\n        if (arch.nested_member_origin == 0) {\n          pcVar5 = adjust_relative_path(filedata->file_name,pcVar5,sVar4);\n          if (pcVar5 == (char *)0x0) goto LAB_0004a8db;\n          pFVar8 = open_file(pcVar5);\n          if (pFVar8 != (Filedata *)0x0) {\n            archive_file_offset = arch.nested_member_origin;\n            pFVar8->file_name = pcVar6;\n            bVar7 = process_object(pFVar8);\n            bVar10 = 0;\n            if (bVar7 != 0) {\n              bVar10 = local_194;\n            }\n            close_file(pFVar8);\n            free(pcVar5);\n            goto LAB_0004a469;\n          }\n          pcVar6 = (char *)dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(pcVar6,pcVar5);\n          free(pcVar5);\n        }\n        else {\n          pFVar8 = &thin_filedata;\n          for (iVar3 = 0x1d; iVar3 != 0; iVar3 = iVar3 + -1) {\n            pFVar8->file_name = (char *)0x0;\n            pFVar8 = (Filedata *)((int)pFVar8 + (uint)bVar12 * -8 + 4);\n          }\n          if (nested_arch.file != (FILE *)0x0) {\n            archive_file_offset = arch.nested_member_origin + 0x3c;\n            iVar3 = fseek((FILE *)nested_arch.file,archive_file_offset,0);\n            if (iVar3 == 0) {\n              thin_filedata.handle = nested_arch.file;\n              thin_filedata.file_name = pcVar6;\n              bVar7 = process_object(&thin_filedata);\n              bVar10 = 0;\n              if (bVar7 != 0) {\n                bVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar5 = "%s: failed to seek to archive member.\n";\n            pcVar6 = nested_arch.file_name;\n            goto LAB_0004a936;\n          }\n          pcVar6 = filedata->file_name;\n          pcVar9 = (char *)dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(pcVar9,pcVar6,pcVar5);\n        }\n        goto LAB_0004a8e3;\n      }" if (parenthesized_expression "(is_thin_archive != 0)" ( (binary_expression "is_thin_archive != 0" identifier != number_literal) )) (compound_statement "{\n        if (arch.nested_member_origin == 0) {\n          pcVar5 = adjust_relative_path(filedata->file_name,pcVar5,sVar4);\n          if (pcVar5 == (char *)0x0) goto LAB_0004a8db;\n          pFVar8 = open_file(pcVar5);\n          if (pFVar8 != (Filedata *)0x0) {\n            archive_file_offset = arch.nested_member_origin;\n            pFVar8->file_name = pcVar6;\n            bVar7 = process_object(pFVar8);\n            bVar10 = 0;\n            if (bVar7 != 0) {\n              bVar10 = local_194;\n            }\n            close_file(pFVar8);\n            free(pcVar5);\n            goto LAB_0004a469;\n          }\n          pcVar6 = (char *)dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(pcVar6,pcVar5);\n          free(pcVar5);\n        }\n        else {\n          pFVar8 = &thin_filedata;\n          for (iVar3 = 0x1d; iVar3 != 0; iVar3 = iVar3 + -1) {\n            pFVar8->file_name = (char *)0x0;\n            pFVar8 = (Filedata *)((int)pFVar8 + (uint)bVar12 * -8 + 4);\n          }\n          if (nested_arch.file != (FILE *)0x0) {\n            archive_file_offset = arch.nested_member_origin + 0x3c;\n            iVar3 = fseek((FILE *)nested_arch.file,archive_file_offset,0);\n            if (iVar3 == 0) {\n              thin_filedata.handle = nested_arch.file;\n              thin_filedata.file_name = pcVar6;\n              bVar7 = process_object(&thin_filedata);\n              bVar10 = 0;\n              if (bVar7 != 0) {\n                bVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar5 = "%s: failed to seek to archive member.\n";\n            pcVar6 = nested_arch.file_name;\n            goto LAB_0004a936;\n          }\n          pcVar6 = filedata->file_name;\n          pcVar9 = (char *)dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(pcVar9,pcVar6,pcVar5);\n        }\n        goto LAB_0004a8e3;\n      }" { (if_statement "if (arch.nested_member_origin == 0) {\n          pcVar5 = adjust_relative_path(filedata->file_name,pcVar5,sVar4);\n          if (pcVar5 == (char *)0x0) goto LAB_0004a8db;\n          pFVar8 = open_file(pcVar5);\n          if (pFVar8 != (Filedata *)0x0) {\n            archive_file_offset = arch.nested_member_origin;\n            pFVar8->file_name = pcVar6;\n            bVar7 = process_object(pFVar8);\n            bVar10 = 0;\n            if (bVar7 != 0) {\n              bVar10 = local_194;\n            }\n            close_file(pFVar8);\n            free(pcVar5);\n            goto LAB_0004a469;\n          }\n          pcVar6 = (char *)dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(pcVar6,pcVar5);\n          free(pcVar5);\n        }\n        else {\n          pFVar8 = &thin_filedata;\n          for (iVar3 = 0x1d; iVar3 != 0; iVar3 = iVar3 + -1) {\n            pFVar8->file_name = (char *)0x0;\n            pFVar8 = (Filedata *)((int)pFVar8 + (uint)bVar12 * -8 + 4);\n          }\n          if (nested_arch.file != (FILE *)0x0) {\n            archive_file_offset = arch.nested_member_origin + 0x3c;\n            iVar3 = fseek((FILE *)nested_arch.file,archive_file_offset,0);\n            if (iVar3 == 0) {\n              thin_filedata.handle = nested_arch.file;\n              thin_filedata.file_name = pcVar6;\n              bVar7 = process_object(&thin_filedata);\n              bVar10 = 0;\n              if (bVar7 != 0) {\n                bVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar5 = "%s: failed to seek to archive member.\n";\n            pcVar6 = nested_arch.file_name;\n            goto LAB_0004a936;\n          }\n          pcVar6 = filedata->file_name;\n          pcVar9 = (char *)dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(pcVar9,pcVar6,pcVar5);\n        }" if (parenthesized_expression "(arch.nested_member_origin == 0)" ( (binary_expression "arch.nested_member_origin == 0" (field_expression "arch.nested_member_origin" identifier . field_identifier) == number_literal) )) (compound_statement "{\n          pcVar5 = adjust_relative_path(filedata->file_name,pcVar5,sVar4);\n          if (pcVar5 == (char *)0x0) goto LAB_0004a8db;\n          pFVar8 = open_file(pcVar5);\n          if (pFVar8 != (Filedata *)0x0) {\n            archive_file_offset = arch.nested_member_origin;\n            pFVar8->file_name = pcVar6;\n            bVar7 = process_object(pFVar8);\n            bVar10 = 0;\n            if (bVar7 != 0) {\n              bVar10 = local_194;\n            }\n            close_file(pFVar8);\n            free(pcVar5);\n            goto LAB_0004a469;\n          }\n          pcVar6 = (char *)dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(pcVar6,pcVar5);\n          free(pcVar5);\n        }" { (expression_statement "pcVar5 = adjust_relative_path(filedata->file_name,pcVar5,sVar4);" (assignment_expression "pcVar5 = adjust_relative_path(filedata->file_name,pcVar5,sVar4)" identifier = (call_expression "adjust_relative_path(filedata->file_name,pcVar5,sVar4)" identifier (argument_list "(filedata->file_name,pcVar5,sVar4)" ( (field_expression "filedata->file_name" identifier -> field_identifier) , identifier , identifier )))) ;) (if_statement "if (pcVar5 == (char *)0x0) goto LAB_0004a8db;" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004a8db;" goto statement_identifier ;)) (expression_statement "pFVar8 = open_file(pcVar5);" (assignment_expression "pFVar8 = open_file(pcVar5)" identifier = (call_expression "open_file(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (if_statement "if (pFVar8 != (Filedata *)0x0) {\n            archive_file_offset = arch.nested_member_origin;\n            pFVar8->file_name = pcVar6;\n            bVar7 = process_object(pFVar8);\n            bVar10 = 0;\n            if (bVar7 != 0) {\n              bVar10 = local_194;\n            }\n            close_file(pFVar8);\n            free(pcVar5);\n            goto LAB_0004a469;\n          }" if (parenthesized_expression "(pFVar8 != (Filedata *)0x0)" ( (binary_expression "pFVar8 != (Filedata *)0x0" identifier != (cast_expression "(Filedata *)0x0" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            archive_file_offset = arch.nested_member_origin;\n            pFVar8->file_name = pcVar6;\n            bVar7 = process_object(pFVar8);\n            bVar10 = 0;\n            if (bVar7 != 0) {\n              bVar10 = local_194;\n            }\n            close_file(pFVar8);\n            free(pcVar5);\n            goto LAB_0004a469;\n          }" { (expression_statement "archive_file_offset = arch.nested_member_origin;" (assignment_expression "archive_file_offset = arch.nested_member_origin" identifier = (field_expression "arch.nested_member_origin" identifier . field_identifier)) ;) (expression_statement "pFVar8->file_name = pcVar6;" (assignment_expression "pFVar8->file_name = pcVar6" (field_expression "pFVar8->file_name" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar7 = process_object(pFVar8);" (assignment_expression "bVar7 = process_object(pFVar8)" identifier = (call_expression "process_object(pFVar8)" identifier (argument_list "(pFVar8)" ( identifier )))) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (if_statement "if (bVar7 != 0) {\n              bVar10 = local_194;\n            }" if (parenthesized_expression "(bVar7 != 0)" ( (binary_expression "bVar7 != 0" identifier != number_literal) )) (compound_statement "{\n              bVar10 = local_194;\n            }" { (expression_statement "bVar10 = local_194;" (assignment_expression "bVar10 = local_194" identifier = identifier) ;) })) (expression_statement "close_file(pFVar8);" (call_expression "close_file(pFVar8)" identifier (argument_list "(pFVar8)" ( identifier ))) ;) (expression_statement "free(pcVar5);" (call_expression "free(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (goto_statement "goto LAB_0004a469;" goto statement_identifier ;) })) (expression_statement "pcVar6 = (char *)dcgettext(0,"Input file \'%s\' is not readable.\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"Input file \'%s\' is not readable.\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Input file \'%s\' is not readable.\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Input file \'%s\' is not readable.\n",5)" identifier (argument_list "(0,"Input file \'%s\' is not readable.\n",5)" ( number_literal , (string_literal ""Input file \'%s\' is not readable.\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar6,pcVar5);" (call_expression "error(pcVar6,pcVar5)" identifier (argument_list "(pcVar6,pcVar5)" ( identifier , identifier ))) ;) (expression_statement "free(pcVar5);" (call_expression "free(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) }) (else_clause "else {\n          pFVar8 = &thin_filedata;\n          for (iVar3 = 0x1d; iVar3 != 0; iVar3 = iVar3 + -1) {\n            pFVar8->file_name = (char *)0x0;\n            pFVar8 = (Filedata *)((int)pFVar8 + (uint)bVar12 * -8 + 4);\n          }\n          if (nested_arch.file != (FILE *)0x0) {\n            archive_file_offset = arch.nested_member_origin + 0x3c;\n            iVar3 = fseek((FILE *)nested_arch.file,archive_file_offset,0);\n            if (iVar3 == 0) {\n              thin_filedata.handle = nested_arch.file;\n              thin_filedata.file_name = pcVar6;\n              bVar7 = process_object(&thin_filedata);\n              bVar10 = 0;\n              if (bVar7 != 0) {\n                bVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar5 = "%s: failed to seek to archive member.\n";\n            pcVar6 = nested_arch.file_name;\n            goto LAB_0004a936;\n          }\n          pcVar6 = filedata->file_name;\n          pcVar9 = (char *)dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(pcVar9,pcVar6,pcVar5);\n        }" else (compound_statement "{\n          pFVar8 = &thin_filedata;\n          for (iVar3 = 0x1d; iVar3 != 0; iVar3 = iVar3 + -1) {\n            pFVar8->file_name = (char *)0x0;\n            pFVar8 = (Filedata *)((int)pFVar8 + (uint)bVar12 * -8 + 4);\n          }\n          if (nested_arch.file != (FILE *)0x0) {\n            archive_file_offset = arch.nested_member_origin + 0x3c;\n            iVar3 = fseek((FILE *)nested_arch.file,archive_file_offset,0);\n            if (iVar3 == 0) {\n              thin_filedata.handle = nested_arch.file;\n              thin_filedata.file_name = pcVar6;\n              bVar7 = process_object(&thin_filedata);\n              bVar10 = 0;\n              if (bVar7 != 0) {\n                bVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar5 = "%s: failed to seek to archive member.\n";\n            pcVar6 = nested_arch.file_name;\n            goto LAB_0004a936;\n          }\n          pcVar6 = filedata->file_name;\n          pcVar9 = (char *)dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(pcVar9,pcVar6,pcVar5);\n        }" { (expression_statement "pFVar8 = &thin_filedata;" (assignment_expression "pFVar8 = &thin_filedata" identifier = (pointer_expression "&thin_filedata" & identifier)) ;) (for_statement "for (iVar3 = 0x1d; iVar3 != 0; iVar3 = iVar3 + -1) {\n            pFVar8->file_name = (char *)0x0;\n            pFVar8 = (Filedata *)((int)pFVar8 + (uint)bVar12 * -8 + 4);\n          }" for ( (assignment_expression "iVar3 = 0x1d" identifier = number_literal) ; (binary_expression "iVar3 != 0" identifier != number_literal) ; (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ) (compound_statement "{\n            pFVar8->file_name = (char *)0x0;\n            pFVar8 = (Filedata *)((int)pFVar8 + (uint)bVar12 * -8 + 4);\n          }" { (expression_statement "pFVar8->file_name = (char *)0x0;" (assignment_expression "pFVar8->file_name = (char *)0x0" (field_expression "pFVar8->file_name" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pFVar8 = (Filedata *)((int)pFVar8 + (uint)bVar12 * -8 + 4);" (assignment_expression "pFVar8 = (Filedata *)((int)pFVar8 + (uint)bVar12 * -8 + 4)" identifier = (cast_expression "(Filedata *)((int)pFVar8 + (uint)bVar12 * -8 + 4)" ( (type_descriptor "Filedata *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pFVar8 + (uint)bVar12 * -8 + 4)" ( (binary_expression "(int)pFVar8 + (uint)bVar12 * -8 + 4" (binary_expression "(int)pFVar8 + (uint)bVar12 * -8" (cast_expression "(int)pFVar8" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar12 * -8" (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (if_statement "if (nested_arch.file != (FILE *)0x0) {\n            archive_file_offset = arch.nested_member_origin + 0x3c;\n            iVar3 = fseek((FILE *)nested_arch.file,archive_file_offset,0);\n            if (iVar3 == 0) {\n              thin_filedata.handle = nested_arch.file;\n              thin_filedata.file_name = pcVar6;\n              bVar7 = process_object(&thin_filedata);\n              bVar10 = 0;\n              if (bVar7 != 0) {\n                bVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar5 = "%s: failed to seek to archive member.\n";\n            pcVar6 = nested_arch.file_name;\n            goto LAB_0004a936;\n          }" if (parenthesized_expression "(nested_arch.file != (FILE *)0x0)" ( (binary_expression "nested_arch.file != (FILE *)0x0" (field_expression "nested_arch.file" identifier . field_identifier) != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            archive_file_offset = arch.nested_member_origin + 0x3c;\n            iVar3 = fseek((FILE *)nested_arch.file,archive_file_offset,0);\n            if (iVar3 == 0) {\n              thin_filedata.handle = nested_arch.file;\n              thin_filedata.file_name = pcVar6;\n              bVar7 = process_object(&thin_filedata);\n              bVar10 = 0;\n              if (bVar7 != 0) {\n                bVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar5 = "%s: failed to seek to archive member.\n";\n            pcVar6 = nested_arch.file_name;\n            goto LAB_0004a936;\n          }" { (expression_statement "archive_file_offset = arch.nested_member_origin + 0x3c;" (assignment_expression "archive_file_offset = arch.nested_member_origin + 0x3c" identifier = (binary_expression "arch.nested_member_origin + 0x3c" (field_expression "arch.nested_member_origin" identifier . field_identifier) + number_literal)) ;) (expression_statement "iVar3 = fseek((FILE *)nested_arch.file,archive_file_offset,0);" (assignment_expression "iVar3 = fseek((FILE *)nested_arch.file,archive_file_offset,0)" identifier = (call_expression "fseek((FILE *)nested_arch.file,archive_file_offset,0)" identifier (argument_list "((FILE *)nested_arch.file,archive_file_offset,0)" ( (cast_expression "(FILE *)nested_arch.file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "nested_arch.file" identifier . field_identifier)) , identifier , number_literal )))) ;) (if_statement "if (iVar3 == 0) {\n              thin_filedata.handle = nested_arch.file;\n              thin_filedata.file_name = pcVar6;\n              bVar7 = process_object(&thin_filedata);\n              bVar10 = 0;\n              if (bVar7 != 0) {\n                bVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n              thin_filedata.handle = nested_arch.file;\n              thin_filedata.file_name = pcVar6;\n              bVar7 = process_object(&thin_filedata);\n              bVar10 = 0;\n              if (bVar7 != 0) {\n                bVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }" { (expression_statement "thin_filedata.handle = nested_arch.file;" (assignment_expression "thin_filedata.handle = nested_arch.file" (field_expression "thin_filedata.handle" identifier . field_identifier) = (field_expression "nested_arch.file" identifier . field_identifier)) ;) (expression_statement "thin_filedata.file_name = pcVar6;" (assignment_expression "thin_filedata.file_name = pcVar6" (field_expression "thin_filedata.file_name" identifier . field_identifier) = identifier) ;) (expression_statement "bVar7 = process_object(&thin_filedata);" (assignment_expression "bVar7 = process_object(&thin_filedata)" identifier = (call_expression "process_object(&thin_filedata)" identifier (argument_list "(&thin_filedata)" ( (pointer_expression "&thin_filedata" & identifier) )))) ;) (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (if_statement "if (bVar7 != 0) {\n                bVar10 = local_194;\n              }" if (parenthesized_expression "(bVar7 != 0)" ( (binary_expression "bVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                bVar10 = local_194;\n              }" { (expression_statement "bVar10 = local_194;" (assignment_expression "bVar10 = local_194" identifier = identifier) ;) })) (goto_statement "goto LAB_0004a469;" goto statement_identifier ;) })) (expression_statement "pcVar5 = "%s: failed to seek to archive member.\n";" (assignment_expression "pcVar5 = "%s: failed to seek to archive member.\n"" identifier = (string_literal ""%s: failed to seek to archive member.\n"" " string_content escape_sequence ")) ;) (expression_statement "pcVar6 = nested_arch.file_name;" (assignment_expression "pcVar6 = nested_arch.file_name" identifier = (field_expression "nested_arch.file_name" identifier . field_identifier)) ;) (goto_statement "goto LAB_0004a936;" goto statement_identifier ;) })) (expression_statement "pcVar6 = filedata->file_name;" (assignment_expression "pcVar6 = filedata->file_name" identifier = (field_expression "filedata->file_name" identifier -> field_identifier)) ;) (expression_statement "pcVar9 = (char *)dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext(0,"%s: contains corrupt thin archive: %s\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%s: contains corrupt thin archive: %s\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%s: contains corrupt thin archive: %s\n",5)" identifier (argument_list "(0,"%s: contains corrupt thin archive: %s\n",5)" ( number_literal , (string_literal ""%s: contains corrupt thin archive: %s\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "error(pcVar9,pcVar6,pcVar5);" (call_expression "error(pcVar9,pcVar6,pcVar5)" identifier (argument_list "(pcVar9,pcVar6,pcVar5)" ( identifier , identifier , identifier ))) ;) }))) (goto_statement "goto LAB_0004a8e3;" goto statement_identifier ;) })) (expression_statement "archive_file_offset = arch.next_arhdr_offset;" (assignment_expression "archive_file_offset = arch.next_arhdr_offset" identifier = (field_expression "arch.next_arhdr_offset" identifier . field_identifier)) ;) (expression_statement "arch.next_arhdr_offset = arch.next_arhdr_offset + archive_file_size;" (assignment_expression "arch.next_arhdr_offset = arch.next_arhdr_offset + archive_file_size" (field_expression "arch.next_arhdr_offset" identifier . field_identifier) = (binary_expression "arch.next_arhdr_offset + archive_file_size" (field_expression "arch.next_arhdr_offset" identifier . field_identifier) + identifier)) ;) (expression_statement "filedata->file_name = pcVar6;" (assignment_expression "filedata->file_name = pcVar6" (field_expression "filedata->file_name" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar7 = process_object(filedata);" (assignment_expression "bVar7 = process_object(filedata)" identifier = (call_expression "process_object(filedata)" identifier (argument_list "(filedata)" ( identifier )))) ;) (expression_statement "bVar10 = local_194;" (assignment_expression "bVar10 = local_194" identifier = identifier) ;) (if_statement "if (bVar7 == 0) {\n        bVar10 = 0;\n      }" if (parenthesized_expression "(bVar7 == 0)" ( (binary_expression "bVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar10 = 0;\n      }" { (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) })) (labeled_statement "LAB_0004a469:\n      local_194 = bVar10;" statement_identifier : (expression_statement "local_194 = bVar10;" (assignment_expression "local_194 = bVar10" identifier = identifier) ;)) (if_statement "if (filedata->dump_sects != (dump_type *)0x0) {\n        free(filedata->dump_sects);\n        filedata->dump_sects = (dump_type *)0x0;\n        filedata->num_dump_sects = 0;\n      }" if (parenthesized_expression "(filedata->dump_sects != (dump_type *)0x0)" ( (binary_expression "filedata->dump_sects != (dump_type *)0x0" (field_expression "filedata->dump_sects" identifier -> field_identifier) != (cast_expression "(dump_type *)0x0" ( (type_descriptor "dump_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        free(filedata->dump_sects);\n        filedata->dump_sects = (dump_type *)0x0;\n        filedata->num_dump_sects = 0;\n      }" { (expression_statement "free(filedata->dump_sects);" (call_expression "free(filedata->dump_sects)" identifier (argument_list "(filedata->dump_sects)" ( (field_expression "filedata->dump_sects" identifier -> field_identifier) ))) ;) (expression_statement "filedata->dump_sects = (dump_type *)0x0;" (assignment_expression "filedata->dump_sects = (dump_type *)0x0" (field_expression "filedata->dump_sects" identifier -> field_identifier) = (cast_expression "(dump_type *)0x0" ( (type_descriptor "dump_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "filedata->num_dump_sects = 0;" (assignment_expression "filedata->num_dump_sects = 0" (field_expression "filedata->num_dump_sects" identifier -> field_identifier) = number_literal) ;) })) (expression_statement "free(pcVar6);" (call_expression "free(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) })) (if_statement "if (sVar4 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      pcVar6 = filedata->file_name;\n      pcVar5 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      pcVar5 = (char *)dcgettext(0,pcVar5,5);\n      error(pcVar5,pcVar6);\n    }" if (parenthesized_expression "(sVar4 == 0)" ( (binary_expression "sVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      local_190 = local_194;\n    }" { (expression_statement "local_190 = local_194;" (assignment_expression "local_190 = local_194" identifier = identifier) ;) }) (else_clause "else {\n      pcVar6 = filedata->file_name;\n      pcVar5 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      pcVar5 = (char *)dcgettext(0,pcVar5,5);\n      error(pcVar5,pcVar6);\n    }" else (compound_statement "{\n      pcVar6 = filedata->file_name;\n      pcVar5 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      pcVar5 = (char *)dcgettext(0,pcVar5,5);\n      error(pcVar5,pcVar6);\n    }" { (expression_statement "pcVar6 = filedata->file_name;" (assignment_expression "pcVar6 = filedata->file_name" identifier = (field_expression "filedata->file_name" identifier -> field_identifier)) ;) (expression_statement "pcVar5 = "%s: failed to read archive header\n";" (assignment_expression "pcVar5 = "%s: failed to read archive header\n"" identifier = (string_literal ""%s: failed to read archive header\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_0004a9ef:\n      pcVar5 = (char *)dcgettext(0,pcVar5,5);" statement_identifier : (expression_statement "pcVar5 = (char *)dcgettext(0,pcVar5,5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,pcVar5,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar5,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar5,5)" identifier (argument_list "(0,pcVar5,5)" ( number_literal , identifier , number_literal ))))) ;)) (expression_statement "error(pcVar5,pcVar6);" (call_expression "error(pcVar5,pcVar6)" identifier (argument_list "(pcVar5,pcVar6)" ( identifier , identifier ))) ;) }))) }) (else_clause "else {\nLAB_0004a8db:\n    local_190 = 0;\n  }" else (compound_statement "{\nLAB_0004a8db:\n    local_190 = 0;\n  }" { (labeled_statement "LAB_0004a8db:\n    local_190 = 0;" statement_identifier : (expression_statement "local_190 = 0;" (assignment_expression "local_190 = 0" identifier = number_literal) ;)) }))) (labeled_statement "LAB_0004a8e3:\n  local_198 = &nested_arch;" statement_identifier : (expression_statement "local_198 = &nested_arch;" (assignment_expression "local_198 = &nested_arch" identifier = (pointer_expression "&nested_arch" & identifier)) ;)) (if_statement "if (nested_arch.file != (FILE *)0x0) {\n    fclose((FILE *)nested_arch.file);\n  }" if (parenthesized_expression "(nested_arch.file != (FILE *)0x0)" ( (binary_expression "nested_arch.file != (FILE *)0x0" (field_expression "nested_arch.file" identifier . field_identifier) != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    fclose((FILE *)nested_arch.file);\n  }" { (expression_statement "fclose((FILE *)nested_arch.file);" (call_expression "fclose((FILE *)nested_arch.file)" identifier (argument_list "((FILE *)nested_arch.file)" ( (cast_expression "(FILE *)nested_arch.file" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "nested_arch.file" identifier . field_identifier)) ))) ;) })) (expression_statement "release_archive(local_198);" (call_expression "release_archive(local_198)" identifier (argument_list "(local_198)" ( identifier ))) ;) (expression_statement "release_archive(&arch);" (call_expression "release_archive(&arch)" identifier (argument_list "(&arch)" ( (pointer_expression "&arch" & identifier) ))) ;) (return_statement "return local_190;" return identifier ;) })))
(translation_unit "undefined4 __regparm3 FUN_0004a360(undefined4 *param_1,int param_2)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  size_t sVar5;\n  char *pcVar6;\n  void *pvVar7;\n  long __off;\n  void *__ptr;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  void **ppvVar12;\n  byte bVar13;\n  uint local_1a0;\n  undefined4 *local_198;\n  undefined4 local_194;\n  undefined4 local_190;\n  undefined4 local_170;\n  undefined4 local_16c;\n  uint local_168;\n  int local_164;\n  int local_160;\n  int local_15c;\n  uint local_158;\n  undefined4 local_154;\n  int local_14c;\n  int local_148;\n  int local_140;\n  undefined1 local_13c [48];\n  char local_10c [10];\n  short local_102;\n  undefined4 local_100;\n  FILE *local_fc;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined4 local_e4;\n  void *local_90;\n  FILE *local_8c;\n  undefined4 uStack_14;\n  \n  bVar13 = 0;\n  uStack_14 = 0x4a36b;\n  local_170 = 0;\n  local_16c = 0;\n  local_160 = 0;\n  local_15c = 0;\n  local_154 = 0;\n  local_100 = 0;\n  local_fc = (FILE *)0x0;\n  local_f0 = 0;\n  local_ec = 0;\n  local_e4 = 0;\n  DAT_000b6370 = 1;\n  iVar4 = FUN_000672b0(&local_170,*param_1,param_1[1],param_2,DAT_000b6328);\n  uVar3 = local_158;\n  uVar11 = local_168;\n  if (iVar4 == 0) {\n    if (DAT_000b6328 == 0) {\n      local_194 = 1;\n    }\n    else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }\n    while( true ) {\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }\n    if (sVar5 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }\n  }\n  else {\nLAB_0004a8db:\n    local_190 = 0;\n  }\nLAB_0004a8e3:\n  local_198 = &local_100;\n  if (local_fc != (FILE *)0x0) {\n    fclose(local_fc);\n  }\n  FUN_000675d0(local_198);\n  FUN_000675d0(&local_170);\n  return local_190;\n}\n\n" (function_definition "undefined4 __regparm3 FUN_0004a360(undefined4 *param_1,int param_2)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  size_t sVar5;\n  char *pcVar6;\n  void *pvVar7;\n  long __off;\n  void *__ptr;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  void **ppvVar12;\n  byte bVar13;\n  uint local_1a0;\n  undefined4 *local_198;\n  undefined4 local_194;\n  undefined4 local_190;\n  undefined4 local_170;\n  undefined4 local_16c;\n  uint local_168;\n  int local_164;\n  int local_160;\n  int local_15c;\n  uint local_158;\n  undefined4 local_154;\n  int local_14c;\n  int local_148;\n  int local_140;\n  undefined1 local_13c [48];\n  char local_10c [10];\n  short local_102;\n  undefined4 local_100;\n  FILE *local_fc;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined4 local_e4;\n  void *local_90;\n  FILE *local_8c;\n  undefined4 uStack_14;\n  \n  bVar13 = 0;\n  uStack_14 = 0x4a36b;\n  local_170 = 0;\n  local_16c = 0;\n  local_160 = 0;\n  local_15c = 0;\n  local_154 = 0;\n  local_100 = 0;\n  local_fc = (FILE *)0x0;\n  local_f0 = 0;\n  local_ec = 0;\n  local_e4 = 0;\n  DAT_000b6370 = 1;\n  iVar4 = FUN_000672b0(&local_170,*param_1,param_1[1],param_2,DAT_000b6328);\n  uVar3 = local_158;\n  uVar11 = local_168;\n  if (iVar4 == 0) {\n    if (DAT_000b6328 == 0) {\n      local_194 = 1;\n    }\n    else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }\n    while( true ) {\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }\n    if (sVar5 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }\n  }\n  else {\nLAB_0004a8db:\n    local_190 = 0;\n  }\nLAB_0004a8e3:\n  local_198 = &local_100;\n  if (local_fc != (FILE *)0x0) {\n    fclose(local_fc);\n  }\n  FUN_000675d0(local_198);\n  FUN_000675d0(&local_170);\n  return local_190;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_0004a360(undefined4 *param_1,int param_2)" identifier (parameter_list "(undefined4 *param_1,int param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  size_t sVar5;\n  char *pcVar6;\n  void *pvVar7;\n  long __off;\n  void *__ptr;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  void **ppvVar12;\n  byte bVar13;\n  uint local_1a0;\n  undefined4 *local_198;\n  undefined4 local_194;\n  undefined4 local_190;\n  undefined4 local_170;\n  undefined4 local_16c;\n  uint local_168;\n  int local_164;\n  int local_160;\n  int local_15c;\n  uint local_158;\n  undefined4 local_154;\n  int local_14c;\n  int local_148;\n  int local_140;\n  undefined1 local_13c [48];\n  char local_10c [10];\n  short local_102;\n  undefined4 local_100;\n  FILE *local_fc;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined4 local_e4;\n  void *local_90;\n  FILE *local_8c;\n  undefined4 uStack_14;\n  \n  bVar13 = 0;\n  uStack_14 = 0x4a36b;\n  local_170 = 0;\n  local_16c = 0;\n  local_160 = 0;\n  local_15c = 0;\n  local_154 = 0;\n  local_100 = 0;\n  local_fc = (FILE *)0x0;\n  local_f0 = 0;\n  local_ec = 0;\n  local_e4 = 0;\n  DAT_000b6370 = 1;\n  iVar4 = FUN_000672b0(&local_170,*param_1,param_1[1],param_2,DAT_000b6328);\n  uVar3 = local_158;\n  uVar11 = local_168;\n  if (iVar4 == 0) {\n    if (DAT_000b6328 == 0) {\n      local_194 = 1;\n    }\n    else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }\n    while( true ) {\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }\n    if (sVar5 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }\n  }\n  else {\nLAB_0004a8db:\n    local_190 = 0;\n  }\nLAB_0004a8e3:\n  local_198 = &local_100;\n  if (local_fc != (FILE *)0x0) {\n    fclose(local_fc);\n  }\n  FUN_000675d0(local_198);\n  FUN_000675d0(&local_170);\n  return local_190;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "void *pvVar7;" primitive_type (pointer_declarator "*pvVar7" * identifier) ;) (declaration "long __off;" (sized_type_specifier "long" long) identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "void **ppvVar12;" primitive_type (pointer_declarator "**ppvVar12" * (pointer_declarator "*ppvVar12" * identifier)) ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "uint local_1a0;" type_identifier identifier ;) (declaration "undefined4 *local_198;" type_identifier (pointer_declarator "*local_198" * identifier) ;) (declaration "undefined4 local_194;" type_identifier identifier ;) (declaration "undefined4 local_190;" type_identifier identifier ;) (declaration "undefined4 local_170;" type_identifier identifier ;) (declaration "undefined4 local_16c;" type_identifier identifier ;) (declaration "uint local_168;" type_identifier identifier ;) (declaration "int local_164;" primitive_type identifier ;) (declaration "int local_160;" primitive_type identifier ;) (declaration "int local_15c;" primitive_type identifier ;) (declaration "uint local_158;" type_identifier identifier ;) (declaration "undefined4 local_154;" type_identifier identifier ;) (declaration "int local_14c;" primitive_type identifier ;) (declaration "int local_148;" primitive_type identifier ;) (declaration "int local_140;" primitive_type identifier ;) (declaration "undefined1 local_13c [48];" type_identifier (array_declarator "local_13c [48]" identifier [ number_literal ]) ;) (declaration "char local_10c [10];" primitive_type (array_declarator "local_10c [10]" identifier [ number_literal ]) ;) (declaration "short local_102;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined4 local_100;" type_identifier identifier ;) (declaration "FILE *local_fc;" type_identifier (pointer_declarator "*local_fc" * identifier) ;) (declaration "undefined4 local_f0;" type_identifier identifier ;) (declaration "undefined4 local_ec;" type_identifier identifier ;) (declaration "undefined4 local_e4;" type_identifier identifier ;) (declaration "void *local_90;" primitive_type (pointer_declarator "*local_90" * identifier) ;) (declaration "FILE *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x4a36b;" (assignment_expression "uStack_14 = 0x4a36b" identifier = number_literal) ;) (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" identifier = number_literal) ;) (expression_statement "local_16c = 0;" (assignment_expression "local_16c = 0" identifier = number_literal) ;) (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" identifier = number_literal) ;) (expression_statement "local_15c = 0;" (assignment_expression "local_15c = 0" identifier = number_literal) ;) (expression_statement "local_154 = 0;" (assignment_expression "local_154 = 0" identifier = number_literal) ;) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (expression_statement "local_fc = (FILE *)0x0;" (assignment_expression "local_fc = (FILE *)0x0" identifier = (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" identifier = number_literal) ;) (expression_statement "DAT_000b6370 = 1;" (assignment_expression "DAT_000b6370 = 1" identifier = number_literal) ;) (expression_statement "iVar4 = FUN_000672b0(&local_170,*param_1,param_1[1],param_2,DAT_000b6328);" (assignment_expression "iVar4 = FUN_000672b0(&local_170,*param_1,param_1[1],param_2,DAT_000b6328)" identifier = (call_expression "FUN_000672b0(&local_170,*param_1,param_1[1],param_2,DAT_000b6328)" identifier (argument_list "(&local_170,*param_1,param_1[1],param_2,DAT_000b6328)" ( (pointer_expression "&local_170" & identifier) , (pointer_expression "*param_1" * identifier) , (subscript_expression "param_1[1]" identifier [ number_literal ]) , identifier , identifier )))) ;) (expression_statement "uVar3 = local_158;" (assignment_expression "uVar3 = local_158" identifier = identifier) ;) (expression_statement "uVar11 = local_168;" (assignment_expression "uVar11 = local_168" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\n    if (DAT_000b6328 == 0) {\n      local_194 = 1;\n    }\n    else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }\n    while( true ) {\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }\n    if (sVar5 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }\n  }\n  else {\nLAB_0004a8db:\n    local_190 = 0;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    if (DAT_000b6328 == 0) {\n      local_194 = 1;\n    }\n    else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }\n    while( true ) {\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }\n    if (sVar5 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }\n  }" { (if_statement "if (DAT_000b6328 == 0) {\n      local_194 = 1;\n    }\n    else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }" if (parenthesized_expression "(DAT_000b6328 == 0)" ( (binary_expression "DAT_000b6328 == 0" identifier == number_literal) )) (compound_statement "{\n      local_194 = 1;\n    }" { (expression_statement "local_194 = 1;" (assignment_expression "local_194 = 1" identifier = number_literal) ;) }) (else_clause "else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }" else (compound_statement "{\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }" { (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }" if (parenthesized_expression "(local_15c == 0)" ( (binary_expression "local_15c == 0" identifier == number_literal) )) (compound_statement "{\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }" { (expression_statement "uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5)" identifier = (call_expression "dcgettext(0,"%s: unable to dump the index as none was found\n",5)" identifier (argument_list "(0,"%s: unable to dump the index as none was found\n",5)" ( number_literal , (string_literal ""%s: unable to dump the index as none was found\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar9,uVar10);" (call_expression "error(uVar9,uVar10)" identifier (argument_list "(uVar9,uVar10)" ( identifier , identifier ))) ;) (expression_statement "local_194 = 1;" (assignment_expression "local_194 = 1" identifier = number_literal) ;) }) (else_clause "else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }" else (compound_statement "{\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }" { (expression_statement "pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5)" identifier (argument_list "(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5)" ( number_literal , (string_literal ""Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar6,uVar10,uVar11,uVar3);" (call_expression "printf(pcVar6,uVar10,uVar11,uVar3)" identifier (argument_list "(pcVar6,uVar10,uVar11,uVar3)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "__off = ftell((FILE *)param_1[1]);" (assignment_expression "__off = ftell((FILE *)param_1[1])" identifier = (call_expression "ftell((FILE *)param_1[1])" identifier (argument_list "((FILE *)param_1[1])" ( (cast_expression "(FILE *)param_1[1]" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) )))) ;) (expression_statement "puVar2 = PTR_stdout_000b3fd8;" (assignment_expression "puVar2 = PTR_stdout_000b3fd8" identifier = identifier) ;) (if_statement "if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }" if (parenthesized_expression "(local_164 == 0 && local_168 == 0)" ( (binary_expression "local_164 == 0 && local_168 == 0" (binary_expression "local_164 == 0" identifier == number_literal) && (binary_expression "local_168 == 0" identifier == number_literal)) )) (compound_statement "{\n          local_1a0 = 0;\n          local_194 = 1;\n        }" { (expression_statement "local_1a0 = 0;" (assignment_expression "local_1a0 = 0" identifier = number_literal) ;) (expression_statement "local_194 = 1;" (assignment_expression "local_194 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }" else (compound_statement "{\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "local_1a0 = 0;" (assignment_expression "local_1a0 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));" do (compound_statement "{\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          }" { (expression_statement "iVar4 = uVar11 * 8;" (assignment_expression "iVar4 = uVar11 * 8" identifier = (binary_expression "uVar11 * 8" identifier * number_literal)) ;) (expression_statement "iVar1 = *(int *)(local_160 + uVar11 * 8);" (assignment_expression "iVar1 = *(int *)(local_160 + uVar11 * 8)" identifier = (pointer_expression "*(int *)(local_160 + uVar11 * 8)" * (cast_expression "(int *)(local_160 + uVar11 * 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_160 + uVar11 * 8)" ( (binary_expression "local_160 + uVar11 * 8" identifier + (binary_expression "uVar11 * 8" identifier * number_literal)) ))))) ;) (if_statement "if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }" if (parenthesized_expression "((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))" ( (binary_expression "(((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0)" (parenthesized_expression "(((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0))" ( (binary_expression "((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)" (parenthesized_expression "((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4)))" ( (binary_expression "(uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))" (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))" ( (binary_expression "*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4)" (binary_expression "*(int *)(local_160 + -8 + iVar4) != iVar1" (pointer_expression "*(int *)(local_160 + -8 + iVar4)" * (cast_expression "(int *)(local_160 + -8 + iVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_160 + -8 + iVar4)" ( (binary_expression "local_160 + -8 + iVar4" (binary_expression "local_160 + -8" identifier + number_literal) + identifier) )))) != identifier) || (binary_expression "*(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4)" (pointer_expression "*(int *)(local_160 + 4 + iVar4)" * (cast_expression "(int *)(local_160 + 4 + iVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_160 + 4 + iVar4)" ( (binary_expression "local_160 + 4 + iVar4" (binary_expression "local_160 + 4" identifier + number_literal) + identifier) )))) != (pointer_expression "*(int *)(local_160 + -4 + iVar4)" * (cast_expression "(int *)(local_160 + -4 + iVar4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_160 + -4 + iVar4)" ( (binary_expression "local_160 + -4 + iVar4" (binary_expression "local_160 + -4" identifier + number_literal) + identifier) )))))) ))) )) && (parenthesized_expression "(iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)" ( (comma_expression "iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0" (assignment_expression "iVar4 = FUN_000676c0(&local_170,iVar1,&local_100)" identifier = (call_expression "FUN_000676c0(&local_170,iVar1,&local_100)" identifier (argument_list "(&local_170,iVar1,&local_100)" ( (pointer_expression "&local_170" & identifier) , identifier , (pointer_expression "&local_100" & identifier) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0)" ( (comma_expression "pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0" (assignment_expression "pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4)" identifier = (cast_expression "(void *)FUN_000679c0(&local_170,&local_100,iVar4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000679c0(&local_170,&local_100,iVar4)" identifier (argument_list "(&local_170,&local_100,iVar4)" ( (pointer_expression "&local_170" & identifier) , (pointer_expression "&local_100" & identifier) , identifier ))))) , (binary_expression "pvVar7 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }" { (expression_statement "pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5)" identifier = (cast_expression "(char *)dcgettext(0,"Contents of binary %s at offset ",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Contents of binary %s at offset ",5)" identifier (argument_list "(0,"Contents of binary %s at offset ",5)" ( number_literal , (string_literal ""Contents of binary %s at offset "" " string_content ") , number_literal ))))) ;) (expression_statement "printf(pcVar6,pvVar7);" (call_expression "printf(pcVar6,pvVar7)" identifier (argument_list "(pcVar6,pvVar7)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001e910();" (call_expression "FUN_0001e910()" identifier (argument_list "()" ( ))) ;) (expression_statement "putc(10,*(FILE **)puVar2);" (call_expression "putc(10,*(FILE **)puVar2)" identifier (argument_list "(10,*(FILE **)puVar2)" ( number_literal , (pointer_expression "*(FILE **)puVar2" * (cast_expression "(FILE **)puVar2" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "free(pvVar7);" (call_expression "free(pvVar7)" identifier (argument_list "(pvVar7)" ( identifier ))) ;) })) (if_statement "if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }" if (parenthesized_expression "(local_158 <= local_1a0)" ( (binary_expression "local_158 <= local_1a0" identifier <= identifier) )) (compound_statement "{\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }" { (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);" (assignment_expression "uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5)" identifier = (call_expression "dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5)" identifier (argument_list "(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5)" ( number_literal , (string_literal ""%s: end of the symbol table reached before the end of the index\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar9,uVar10);" (call_expression "error(uVar9,uVar10)" identifier (argument_list "(uVar9,uVar10)" ( identifier , identifier ))) ;) (expression_statement "local_194 = 0;" (assignment_expression "local_194 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0004a7a7;" goto statement_identifier ;) })) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);" (call_expression "printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0)" identifier (argument_list "("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0)" ( (string_literal ""\t%.*s\n"" " escape_sequence string_content escape_sequence ") , (binary_expression "local_158 - local_1a0" identifier - identifier) , (binary_expression "local_15c + local_1a0" identifier + identifier) ))) ;) (expression_statement "uVar3 = local_158;" (assignment_expression "uVar3 = local_158" identifier = identifier) ;) (expression_statement "sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);" (assignment_expression "sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0)" identifier = (call_expression "strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0)" identifier (argument_list "((char *)(local_15c + local_1a0),local_158 - local_1a0)" ( (cast_expression "(char *)(local_15c + local_1a0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_15c + local_1a0)" ( (binary_expression "local_15c + local_1a0" identifier + identifier) ))) , (binary_expression "local_158 - local_1a0" identifier - identifier) )))) ;) (expression_statement "local_1a0 = sVar5 + 1 + local_1a0;" (assignment_expression "local_1a0 = sVar5 + 1 + local_1a0" identifier = (binary_expression "sVar5 + 1 + local_1a0" (binary_expression "sVar5 + 1" identifier + number_literal) + identifier)) ;) }) while (parenthesized_expression "(local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168))" ( (binary_expression "local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168)" (binary_expression "local_164 != 0" identifier != number_literal) || (binary_expression "(uint)-local_164 < (uint)(uVar11 < local_168)" (binary_expression "(uint)-local_164" (parenthesized_expression "(uint)" ( identifier )) - identifier) < (call_expression "(uint)(uVar11 < local_168)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < local_168)" ( (binary_expression "uVar11 < local_168" identifier < identifier) ))))) )) ;) (expression_statement "local_194 = 1;" (assignment_expression "local_194 = 1" identifier = number_literal) ;) (expression_statement "local_158 = uVar3;" (assignment_expression "local_158 = uVar3" identifier = identifier) ;) }))) (labeled_statement "LAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }" statement_identifier : (if_statement "if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }" if (parenthesized_expression "(local_140 == 0)" ( (binary_expression "local_140 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }" { (expression_statement "uVar11 = local_1a0 + 1 & 0xfffffffe;" (assignment_expression "uVar11 = local_1a0 + 1 & 0xfffffffe" identifier = (binary_expression "local_1a0 + 1 & 0xfffffffe" (binary_expression "local_1a0 + 1" identifier + number_literal) & number_literal)) ;) }) (else_clause "else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }" else (compound_statement "{\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }" { (expression_statement "uVar11 = local_1a0 + 7 & 0xfffffff8;" (assignment_expression "uVar11 = local_1a0 + 7 & 0xfffffff8" identifier = (binary_expression "local_1a0 + 7 & 0xfffffff8" (binary_expression "local_1a0 + 7" identifier + number_literal) & number_literal)) ;) })))) (if_statement "if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }" if (parenthesized_expression "(uVar11 < local_158)" ( (binary_expression "uVar11 < local_158" identifier < identifier) )) (compound_statement "{\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }" { (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);" (assignment_expression "uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5)" identifier = (call_expression "dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5)" identifier (argument_list "(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5)" ( number_literal , (string_literal ""%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"" " string_content escape_sequence ") , (string_literal ""%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"" " string_content escape_sequence ") , (binary_expression "local_158 - uVar11" identifier - identifier) , number_literal )))) ;) (expression_statement "error(uVar9,uVar10,local_158 - uVar11);" (call_expression "error(uVar9,uVar10,local_158 - uVar11)" identifier (argument_list "(uVar9,uVar10,local_158 - uVar11)" ( identifier , identifier , (binary_expression "local_158 - uVar11" identifier - identifier) ))) ;) (expression_statement "local_194 = 0;" (assignment_expression "local_194 = 0" identifier = number_literal) ;) })) (expression_statement "iVar4 = fseek((FILE *)param_1[1],__off,0);" (assignment_expression "iVar4 = fseek((FILE *)param_1[1],__off,0)" identifier = (call_expression "fseek((FILE *)param_1[1],__off,0)" identifier (argument_list "((FILE *)param_1[1],__off,0)" ( (cast_expression "(FILE *)param_1[1]" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) , identifier , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }" { (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;" (assignment_expression "uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)" identifier = (call_expression "dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)" identifier (argument_list "(0,"%s: failed to seek back to start of object files in the archive\n",5)" ( number_literal , (string_literal ""%s: failed to seek back to start of object files in the archive\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar9,uVar10);" (call_expression "error(uVar9,uVar10)" identifier (argument_list "(uVar9,uVar10)" ( identifier , identifier ))) ;) (expression_statement "local_190 = 0;" (assignment_expression "local_190 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0004a8e3;" goto statement_identifier ;) })) }))) (if_statement "if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }" if (parenthesized_expression "((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0)" ( (binary_expression "(((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0" (parenthesized_expression "(((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0)" ( (binary_expression "((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0" (parenthesized_expression "((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0)" ( (binary_expression "(((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0" (parenthesized_expression "(((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0)" ( (binary_expression "((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0" (parenthesized_expression "((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0)" ( (binary_expression "(((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0" (parenthesized_expression "(((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              )" ( (binary_expression "((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0" (parenthesized_expression "((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0)" ( (binary_expression "(((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0" (parenthesized_expression "(((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0)" ( (binary_expression "((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0" (parenthesized_expression "((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0)" ( (binary_expression "(((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0" (parenthesized_expression "(((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0)" ( (binary_expression "((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0" (parenthesized_expression "((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0)" ( (binary_expression "(((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0" (parenthesized_expression "(((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0)" ( (binary_expression "((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0" (parenthesized_expression "((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0)" ( (binary_expression "(DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0" (parenthesized_expression "(DAT_000b636c == 0 && DAT_000b6368 == 0)" ( (binary_expression "DAT_000b636c == 0 && DAT_000b6368 == 0" (binary_expression "DAT_000b636c == 0" identifier == number_literal) && (binary_expression "DAT_000b6368 == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b6360 == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b634c == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b635c == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b6350 == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b6344 == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b6340 == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b633c == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b6338 == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b6334 == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b6330 == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b632c == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b6358 == 0" identifier == number_literal)) )) && (binary_expression "DAT_000b6364 == 0" identifier == number_literal)) )) (compound_statement "{\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }" { (expression_statement "local_190 = 1;" (assignment_expression "local_190 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_0004a8e3;" goto statement_identifier ;) })) }))) (while_statement "while( true ) {\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }" { (expression_statement "iVar4 = fseek((FILE *)param_1[1],local_148,0);" (assignment_expression "iVar4 = fseek((FILE *)param_1[1],local_148,0)" identifier = (call_expression "fseek((FILE *)param_1[1],local_148,0)" identifier (argument_list "((FILE *)param_1[1],local_148,0)" ( (cast_expression "(FILE *)param_1[1]" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) , identifier , number_literal )))) ;) (if_statement "if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }" { (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5)" identifier = (call_expression "dcgettext(0,"%s: failed to seek to next archive header\n",5)" identifier (argument_list "(0,"%s: failed to seek to next archive header\n",5)" ( number_literal , (string_literal ""%s: failed to seek to next archive header\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar9,uVar10);" (call_expression "error(uVar9,uVar10)" identifier (argument_list "(uVar9,uVar10)" ( identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);" (assignment_expression "sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1])" identifier = (call_expression "fread(local_13c,1,0x3c,(FILE *)param_1[1])" identifier (argument_list "(local_13c,1,0x3c,(FILE *)param_1[1])" ( identifier , number_literal , number_literal , (cast_expression "(FILE *)param_1[1]" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) )))) ;) (expression_statement "local_190 = 0;" (assignment_expression "local_190 = 0" identifier = number_literal) ;) (if_statement "if (sVar5 != 0x3c) break;" if (parenthesized_expression "(sVar5 != 0x3c)" ( (binary_expression "sVar5 != 0x3c" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }" if (parenthesized_expression "(local_102 != 0xa60)" ( (binary_expression "local_102 != 0xa60" identifier != number_literal) )) (compound_statement "{\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }" { (expression_statement "pcVar6 = "%s: did not find a valid archive header\n";" (assignment_expression "pcVar6 = "%s: did not find a valid archive header\n"" identifier = (string_literal ""%s: did not find a valid archive header\n"" " string_content escape_sequence ")) ;) (expression_statement "uVar10 = local_170;" (assignment_expression "uVar10 = local_170" identifier = identifier) ;) (goto_statement "goto LAB_0004a9ef;" goto statement_identifier ;) })) (expression_statement "local_148 = local_148 + 0x3c;" (assignment_expression "local_148 = local_148 + 0x3c" identifier = (binary_expression "local_148 + 0x3c" identifier + number_literal)) ;) (expression_statement "DAT_000b754c = strtoul(local_10c,(char **)0x0,10);" (assignment_expression "DAT_000b754c = strtoul(local_10c,(char **)0x0,10)" identifier = (call_expression "strtoul(local_10c,(char **)0x0,10)" identifier (argument_list "(local_10c,(char **)0x0,10)" ( identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (if_statement "if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }" if (parenthesized_expression "((DAT_000b754c & 1) != 0)" ( (binary_expression "(DAT_000b754c & 1) != 0" (parenthesized_expression "(DAT_000b754c & 1)" ( (binary_expression "DAT_000b754c & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        DAT_000b754c = DAT_000b754c + 1;\n      }" { (expression_statement "DAT_000b754c = DAT_000b754c + 1;" (assignment_expression "DAT_000b754c = DAT_000b754c + 1" identifier = (binary_expression "DAT_000b754c + 1" identifier + number_literal)) ;) })) (expression_statement "pcVar6 = (char *)FUN_00067770(&local_170,&local_100);" (assignment_expression "pcVar6 = (char *)FUN_00067770(&local_170,&local_100)" identifier = (cast_expression "(char *)FUN_00067770(&local_170,&local_100)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00067770(&local_170,&local_100)" identifier (argument_list "(&local_170,&local_100)" ( (pointer_expression "&local_170" & identifier) , (pointer_expression "&local_100" & identifier) ))))) ;) (if_statement "if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }" { (labeled_statement "LAB_0004a928:\n        uVar10 = *param_1;" statement_identifier : (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;)) (expression_statement "pcVar6 = "%s: bad archive file name\n";" (assignment_expression "pcVar6 = "%s: bad archive file name\n"" identifier = (string_literal ""%s: bad archive file name\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);" statement_identifier : (expression_statement "uVar9 = dcgettext(0,pcVar6,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar6,5)" identifier = (call_expression "dcgettext(0,pcVar6,5)" identifier (argument_list "(0,pcVar6,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "error(uVar9,uVar10);" (call_expression "error(uVar9,uVar10)" identifier (argument_list "(uVar9,uVar10)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0004a8e3;" goto statement_identifier ;) })) (expression_statement "sVar5 = strlen(pcVar6);" (assignment_expression "sVar5 = strlen(pcVar6)" identifier = (call_expression "strlen(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier )))) ;) (expression_statement "pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);" (assignment_expression "pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6)" identifier = (cast_expression "(void *)FUN_000679c0(&local_170,&local_100,pcVar6)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000679c0(&local_170,&local_100,pcVar6)" identifier (argument_list "(&local_170,&local_100,pcVar6)" ( (pointer_expression "&local_170" & identifier) , (pointer_expression "&local_100" & identifier) , identifier ))))) ;) (if_statement "if (pvVar7 == (void *)0x0) goto LAB_0004a928;" if (parenthesized_expression "(pvVar7 == (void *)0x0)" ( (binary_expression "pvVar7 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004a928;" goto statement_identifier ;)) (if_statement "if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }" { (if_statement "if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }" if (parenthesized_expression "(local_14c == 0)" ( (binary_expression "local_14c == 0" identifier == number_literal) )) (compound_statement "{\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }" { (expression_statement "__ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);" (assignment_expression "__ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5)" identifier = (cast_expression "(void *)FUN_00067180(*param_1,pcVar6,sVar5)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00067180(*param_1,pcVar6,sVar5)" identifier (argument_list "(*param_1,pcVar6,sVar5)" ( (pointer_expression "*param_1" * identifier) , identifier , identifier ))))) ;) (if_statement "if (__ptr == (void *)0x0) goto LAB_0004a8db;" if (parenthesized_expression "(__ptr == (void *)0x0)" ( (binary_expression "__ptr == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004a8db;" goto statement_identifier ;)) (expression_statement "puVar8 = (undefined4 *)FUN_000268f0();" (assignment_expression "puVar8 = (undefined4 *)FUN_000268f0()" identifier = (cast_expression "(undefined4 *)FUN_000268f0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000268f0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }" if (parenthesized_expression "(puVar8 != (undefined4 *)0x0)" ( (binary_expression "puVar8 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }" { (expression_statement "DAT_000b7550 = local_14c;" (assignment_expression "DAT_000b7550 = local_14c" identifier = identifier) ;) (expression_statement "*puVar8 = pvVar7;" (assignment_expression "*puVar8 = pvVar7" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "iVar4 = FUN_00045c20();" (assignment_expression "iVar4 = FUN_00045c20()" identifier = (call_expression "FUN_00045c20()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if (iVar4 != 0) {\n              uVar10 = local_194;\n            }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar10 = local_194;\n            }" { (expression_statement "uVar10 = local_194;" (assignment_expression "uVar10 = local_194" identifier = identifier) ;) })) (expression_statement "FUN_0001e670();" (call_expression "FUN_0001e670()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (goto_statement "goto LAB_0004a469;" goto statement_identifier ;) })) (expression_statement "uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);" (assignment_expression "uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5)" identifier = (call_expression "dcgettext(0,"Input file \'%s\' is not readable.\n",5)" identifier (argument_list "(0,"Input file \'%s\' is not readable.\n",5)" ( number_literal , (string_literal ""Input file \'%s\' is not readable.\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar10,__ptr);" (call_expression "error(uVar10,__ptr)" identifier (argument_list "(uVar10,__ptr)" ( identifier , identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) }) (else_clause "else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }" else (compound_statement "{\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }" { (expression_statement "ppvVar12 = &local_90;" (assignment_expression "ppvVar12 = &local_90" identifier = (pointer_expression "&local_90" & identifier)) ;) (for_statement "for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }" for ( (assignment_expression "iVar4 = 0x1d" identifier = number_literal) ; (binary_expression "iVar4 != 0" identifier != number_literal) ; (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ) (compound_statement "{\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }" { (expression_statement "*ppvVar12 = (void *)0x0;" (assignment_expression "*ppvVar12 = (void *)0x0" (pointer_expression "*ppvVar12" * identifier) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;" (assignment_expression "ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "ppvVar12 + (uint)bVar13 * -2 + 1" (binary_expression "ppvVar12 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (if_statement "if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }" if (parenthesized_expression "(local_fc != (FILE *)0x0)" ( (binary_expression "local_fc != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }" { (expression_statement "DAT_000b7550 = local_14c + 0x3c;" (assignment_expression "DAT_000b7550 = local_14c + 0x3c" identifier = (binary_expression "local_14c + 0x3c" identifier + number_literal)) ;) (expression_statement "iVar4 = fseek(local_fc,DAT_000b7550,0);" (assignment_expression "iVar4 = fseek(local_fc,DAT_000b7550,0)" identifier = (call_expression "fseek(local_fc,DAT_000b7550,0)" identifier (argument_list "(local_fc,DAT_000b7550,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }" { (expression_statement "local_8c = local_fc;" (assignment_expression "local_8c = local_fc" identifier = identifier) ;) (expression_statement "local_90 = pvVar7;" (assignment_expression "local_90 = pvVar7" identifier = identifier) ;) (expression_statement "iVar4 = FUN_00045c20();" (assignment_expression "iVar4 = FUN_00045c20()" identifier = (call_expression "FUN_00045c20()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (if_statement "if (iVar4 != 0) {\n                uVar10 = local_194;\n              }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                uVar10 = local_194;\n              }" { (expression_statement "uVar10 = local_194;" (assignment_expression "uVar10 = local_194" identifier = identifier) ;) })) (goto_statement "goto LAB_0004a469;" goto statement_identifier ;) })) (expression_statement "pcVar6 = "%s: failed to seek to archive member.\n";" (assignment_expression "pcVar6 = "%s: failed to seek to archive member.\n"" identifier = (string_literal ""%s: failed to seek to archive member.\n"" " string_content escape_sequence ")) ;) (expression_statement "uVar10 = local_100;" (assignment_expression "uVar10 = local_100" identifier = identifier) ;) (goto_statement "goto LAB_0004a936;" goto statement_identifier ;) })) (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5)" identifier = (call_expression "dcgettext(0,"%s: contains corrupt thin archive: %s\n",5)" identifier (argument_list "(0,"%s: contains corrupt thin archive: %s\n",5)" ( number_literal , (string_literal ""%s: contains corrupt thin archive: %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "error(uVar9,uVar10,pcVar6);" (call_expression "error(uVar9,uVar10,pcVar6)" identifier (argument_list "(uVar9,uVar10,pcVar6)" ( identifier , identifier , identifier ))) ;) }))) (goto_statement "goto LAB_0004a8e3;" goto statement_identifier ;) })) (expression_statement "DAT_000b7550 = local_148;" (assignment_expression "DAT_000b7550 = local_148" identifier = identifier) ;) (expression_statement "local_148 = local_148 + DAT_000b754c;" (assignment_expression "local_148 = local_148 + DAT_000b754c" identifier = (binary_expression "local_148 + DAT_000b754c" identifier + identifier)) ;) (expression_statement "*param_1 = pvVar7;" (assignment_expression "*param_1 = pvVar7" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "iVar4 = FUN_00045c20();" (assignment_expression "iVar4 = FUN_00045c20()" identifier = (call_expression "FUN_00045c20()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar10 = local_194;" (assignment_expression "uVar10 = local_194" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\n        uVar10 = 0;\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar10 = 0;\n      }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) })) (labeled_statement "LAB_0004a469:\n      local_194 = uVar10;" statement_identifier : (expression_statement "local_194 = uVar10;" (assignment_expression "local_194 = uVar10" identifier = identifier) ;)) (if_statement "if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }" if (parenthesized_expression "((void *)param_1[0x1b] != (void *)0x0)" ( (binary_expression "(void *)param_1[0x1b] != (void *)0x0" (cast_expression "(void *)param_1[0x1b]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1b]" identifier [ number_literal ])) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }" { (expression_statement "free((void *)param_1[0x1b]);" (call_expression "free((void *)param_1[0x1b])" identifier (argument_list "((void *)param_1[0x1b])" ( (cast_expression "(void *)param_1[0x1b]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1b]" identifier [ number_literal ])) ))) ;) (expression_statement "param_1[0x1b] = 0;" (assignment_expression "param_1[0x1b] = 0" (subscript_expression "param_1[0x1b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x1c] = 0;" (assignment_expression "param_1[0x1c] = 0" (subscript_expression "param_1[0x1c]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "free(pvVar7);" (call_expression "free(pvVar7)" identifier (argument_list "(pvVar7)" ( identifier ))) ;) })) (if_statement "if (sVar5 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }" if (parenthesized_expression "(sVar5 == 0)" ( (binary_expression "sVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      local_190 = local_194;\n    }" { (expression_statement "local_190 = local_194;" (assignment_expression "local_190 = local_194" identifier = identifier) ;) }) (else_clause "else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }" else (compound_statement "{\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }" { (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "pcVar6 = "%s: failed to read archive header\n";" (assignment_expression "pcVar6 = "%s: failed to read archive header\n"" identifier = (string_literal ""%s: failed to read archive header\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);" statement_identifier : (expression_statement "uVar9 = dcgettext(0,pcVar6,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar6,5)" identifier = (call_expression "dcgettext(0,pcVar6,5)" identifier (argument_list "(0,pcVar6,5)" ( number_literal , identifier , number_literal )))) ;)) (expression_statement "error(uVar9,uVar10);" (call_expression "error(uVar9,uVar10)" identifier (argument_list "(uVar9,uVar10)" ( identifier , identifier ))) ;) }))) }) (else_clause "else {\nLAB_0004a8db:\n    local_190 = 0;\n  }" else (compound_statement "{\nLAB_0004a8db:\n    local_190 = 0;\n  }" { (labeled_statement "LAB_0004a8db:\n    local_190 = 0;" statement_identifier : (expression_statement "local_190 = 0;" (assignment_expression "local_190 = 0" identifier = number_literal) ;)) }))) (labeled_statement "LAB_0004a8e3:\n  local_198 = &local_100;" statement_identifier : (expression_statement "local_198 = &local_100;" (assignment_expression "local_198 = &local_100" identifier = (pointer_expression "&local_100" & identifier)) ;)) (if_statement "if (local_fc != (FILE *)0x0) {\n    fclose(local_fc);\n  }" if (parenthesized_expression "(local_fc != (FILE *)0x0)" ( (binary_expression "local_fc != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    fclose(local_fc);\n  }" { (expression_statement "fclose(local_fc);" (call_expression "fclose(local_fc)" identifier (argument_list "(local_fc)" ( identifier ))) ;) })) (expression_statement "FUN_000675d0(local_198);" (call_expression "FUN_000675d0(local_198)" identifier (argument_list "(local_198)" ( identifier ))) ;) (expression_statement "FUN_000675d0(&local_170);" (call_expression "FUN_000675d0(&local_170)" identifier (argument_list "(&local_170)" ( (pointer_expression "&local_170" & identifier) ))) ;) (return_statement "return local_190;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) != IDENT) || (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content escape_sequence ") , (binary_expression IDENT - IDENT) , (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) , (binary_expression IDENT - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression (binary_expression (parenthesized_expression ( IDENT )) - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , (string_literal " string_content escape_sequence ") , (binary_expression IDENT - IDENT) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT - IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) && (binary_expression IDENT == LIT)) )) && (binary_expression IDENT == LIT)) )) && (binary_expression IDENT == LIT)) )) && (binary_expression IDENT == LIT)) )) && (binary_expression IDENT == LIT)) )) && (binary_expression IDENT == LIT)) )) && (binary_expression IDENT == LIT)) )) && (binary_expression IDENT == LIT)) )) && (binary_expression IDENT == LIT)) )) && (binary_expression IDENT == LIT)) )) && (binary_expression IDENT == LIT)) )) && (binary_expression IDENT == LIT)) )) && (binary_expression IDENT == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 ( (pointer_expression * IDENT) , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 , IDENT ))) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (return_statement return IDENT ;) })))
(function_definition "undefined4 __regparm3 FUN_0004a360(undefined4 *param_1,int param_2)\n\n{\n  int iVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  size_t sVar5;\n  char *pcVar6;\n  void *pvVar7;\n  long __off;\n  void *__ptr;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  void **ppvVar12;\n  byte bVar13;\n  uint local_1a0;\n  undefined4 *local_198;\n  undefined4 local_194;\n  undefined4 local_190;\n  undefined4 local_170;\n  undefined4 local_16c;\n  uint local_168;\n  int local_164;\n  int local_160;\n  int local_15c;\n  uint local_158;\n  undefined4 local_154;\n  int local_14c;\n  int local_148;\n  int local_140;\n  undefined1 local_13c [48];\n  char local_10c [10];\n  short local_102;\n  undefined4 local_100;\n  FILE *local_fc;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined4 local_e4;\n  void *local_90;\n  FILE *local_8c;\n  undefined4 uStack_14;\n  \n  bVar13 = 0;\n  uStack_14 = 0x4a36b;\n  local_170 = 0;\n  local_16c = 0;\n  local_160 = 0;\n  local_15c = 0;\n  local_154 = 0;\n  local_100 = 0;\n  local_fc = (FILE *)0x0;\n  local_f0 = 0;\n  local_ec = 0;\n  local_e4 = 0;\n  DAT_000b6370 = 1;\n  iVar4 = FUN_000672b0(&local_170,*param_1,param_1[1],param_2,DAT_000b6328);\n  uVar3 = local_158;\n  uVar11 = local_168;\n  if (iVar4 == 0) {\n    if (DAT_000b6328 == 0) {\n      local_194 = 1;\n    }\n    else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }\n    while( true ) {\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }\n    if (sVar5 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }\n  }\n  else {\nLAB_0004a8db:\n    local_190 = 0;\n  }\nLAB_0004a8e3:\n  local_198 = &local_100;\n  if (local_fc != (FILE *)0x0) {\n    fclose(local_fc);\n  }\n  FUN_000675d0(local_198);\n  FUN_000675d0(&local_170);\n  return local_190;\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0004a360(undefined4 *param_1,int param_2)" (identifier "FUN_0004a360") (parameter_list "(undefined4 *param_1,int param_2)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  size_t sVar5;\n  char *pcVar6;\n  void *pvVar7;\n  long __off;\n  void *__ptr;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  uint uVar11;\n  void **ppvVar12;\n  byte bVar13;\n  uint local_1a0;\n  undefined4 *local_198;\n  undefined4 local_194;\n  undefined4 local_190;\n  undefined4 local_170;\n  undefined4 local_16c;\n  uint local_168;\n  int local_164;\n  int local_160;\n  int local_15c;\n  uint local_158;\n  undefined4 local_154;\n  int local_14c;\n  int local_148;\n  int local_140;\n  undefined1 local_13c [48];\n  char local_10c [10];\n  short local_102;\n  undefined4 local_100;\n  FILE *local_fc;\n  undefined4 local_f0;\n  undefined4 local_ec;\n  undefined4 local_e4;\n  void *local_90;\n  FILE *local_8c;\n  undefined4 uStack_14;\n  \n  bVar13 = 0;\n  uStack_14 = 0x4a36b;\n  local_170 = 0;\n  local_16c = 0;\n  local_160 = 0;\n  local_15c = 0;\n  local_154 = 0;\n  local_100 = 0;\n  local_fc = (FILE *)0x0;\n  local_f0 = 0;\n  local_ec = 0;\n  local_e4 = 0;\n  DAT_000b6370 = 1;\n  iVar4 = FUN_000672b0(&local_170,*param_1,param_1[1],param_2,DAT_000b6328);\n  uVar3 = local_158;\n  uVar11 = local_168;\n  if (iVar4 == 0) {\n    if (DAT_000b6328 == 0) {\n      local_194 = 1;\n    }\n    else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }\n    while( true ) {\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }\n    if (sVar5 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }\n  }\n  else {\nLAB_0004a8db:\n    local_190 = 0;\n  }\nLAB_0004a8e3:\n  local_198 = &local_100;\n  if (local_fc != (FILE *)0x0) {\n    fclose(local_fc);\n  }\n  FUN_000675d0(local_198);\n  FUN_000675d0(&local_170);\n  return local_190;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "size_t sVar5;" (primitive_type "size_t") (identifier "sVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "void *pvVar7;" (primitive_type "void") (pointer_declarator "*pvVar7" (* "*") (identifier "pvVar7")) (; ";")) (declaration "long __off;" (sized_type_specifier "long" (long "long")) (identifier "__off") (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "void **ppvVar12;" (primitive_type "void") (pointer_declarator "**ppvVar12" (* "*") (pointer_declarator "*ppvVar12" (* "*") (identifier "ppvVar12"))) (; ";")) (declaration "byte bVar13;" (type_identifier "byte") (identifier "bVar13") (; ";")) (declaration "uint local_1a0;" (type_identifier "uint") (identifier "local_1a0") (; ";")) (declaration "undefined4 *local_198;" (type_identifier "undefined4") (pointer_declarator "*local_198" (* "*") (identifier "local_198")) (; ";")) (declaration "undefined4 local_194;" (type_identifier "undefined4") (identifier "local_194") (; ";")) (declaration "undefined4 local_190;" (type_identifier "undefined4") (identifier "local_190") (; ";")) (declaration "undefined4 local_170;" (type_identifier "undefined4") (identifier "local_170") (; ";")) (declaration "undefined4 local_16c;" (type_identifier "undefined4") (identifier "local_16c") (; ";")) (declaration "uint local_168;" (type_identifier "uint") (identifier "local_168") (; ";")) (declaration "int local_164;" (primitive_type "int") (identifier "local_164") (; ";")) (declaration "int local_160;" (primitive_type "int") (identifier "local_160") (; ";")) (declaration "int local_15c;" (primitive_type "int") (identifier "local_15c") (; ";")) (declaration "uint local_158;" (type_identifier "uint") (identifier "local_158") (; ";")) (declaration "undefined4 local_154;" (type_identifier "undefined4") (identifier "local_154") (; ";")) (declaration "int local_14c;" (primitive_type "int") (identifier "local_14c") (; ";")) (declaration "int local_148;" (primitive_type "int") (identifier "local_148") (; ";")) (declaration "int local_140;" (primitive_type "int") (identifier "local_140") (; ";")) (declaration "undefined1 local_13c [48];" (type_identifier "undefined1") (array_declarator "local_13c [48]" (identifier "local_13c") ([ "[") (number_literal "48") (] "]")) (; ";")) (declaration "char local_10c [10];" (primitive_type "char") (array_declarator "local_10c [10]" (identifier "local_10c") ([ "[") (number_literal "10") (] "]")) (; ";")) (declaration "short local_102;" (sized_type_specifier "short" (short "short")) (identifier "local_102") (; ";")) (declaration "undefined4 local_100;" (type_identifier "undefined4") (identifier "local_100") (; ";")) (declaration "FILE *local_fc;" (type_identifier "FILE") (pointer_declarator "*local_fc" (* "*") (identifier "local_fc")) (; ";")) (declaration "undefined4 local_f0;" (type_identifier "undefined4") (identifier "local_f0") (; ";")) (declaration "undefined4 local_ec;" (type_identifier "undefined4") (identifier "local_ec") (; ";")) (declaration "undefined4 local_e4;" (type_identifier "undefined4") (identifier "local_e4") (; ";")) (declaration "void *local_90;" (primitive_type "void") (pointer_declarator "*local_90" (* "*") (identifier "local_90")) (; ";")) (declaration "FILE *local_8c;" (type_identifier "FILE") (pointer_declarator "*local_8c" (* "*") (identifier "local_8c")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" (identifier "bVar13") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x4a36b;" (assignment_expression "uStack_14 = 0x4a36b" (identifier "uStack_14") (= "=") (number_literal "0x4a36b")) (; ";")) (expression_statement "local_170 = 0;" (assignment_expression "local_170 = 0" (identifier "local_170") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_16c = 0;" (assignment_expression "local_16c = 0" (identifier "local_16c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_160 = 0;" (assignment_expression "local_160 = 0" (identifier "local_160") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_15c = 0;" (assignment_expression "local_15c = 0" (identifier "local_15c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_154 = 0;" (assignment_expression "local_154 = 0" (identifier "local_154") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" (identifier "local_100") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_fc = (FILE *)0x0;" (assignment_expression "local_fc = (FILE *)0x0" (identifier "local_fc") (= "=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" (identifier "local_f0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" (identifier "local_ec") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" (identifier "local_e4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_000b6370 = 1;" (assignment_expression "DAT_000b6370 = 1" (identifier "DAT_000b6370") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar4 = FUN_000672b0(&local_170,*param_1,param_1[1],param_2,DAT_000b6328);" (assignment_expression "iVar4 = FUN_000672b0(&local_170,*param_1,param_1[1],param_2,DAT_000b6328)" (identifier "iVar4") (= "=") (call_expression "FUN_000672b0(&local_170,*param_1,param_1[1],param_2,DAT_000b6328)" (identifier "FUN_000672b0") (argument_list "(&local_170,*param_1,param_1[1],param_2,DAT_000b6328)" (( "(") (pointer_expression "&local_170" (& "&") (identifier "local_170")) (, ",") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "param_2") (, ",") (identifier "DAT_000b6328") () ")")))) (; ";")) (expression_statement "uVar3 = local_158;" (assignment_expression "uVar3 = local_158" (identifier "uVar3") (= "=") (identifier "local_158")) (; ";")) (expression_statement "uVar11 = local_168;" (assignment_expression "uVar11 = local_168" (identifier "uVar11") (= "=") (identifier "local_168")) (; ";")) (if_statement "if (iVar4 == 0) {\n    if (DAT_000b6328 == 0) {\n      local_194 = 1;\n    }\n    else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }\n    while( true ) {\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }\n    if (sVar5 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }\n  }\n  else {\nLAB_0004a8db:\n    local_190 = 0;\n  }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (DAT_000b6328 == 0) {\n      local_194 = 1;\n    }\n    else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }\n    while( true ) {\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }\n    if (sVar5 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }\n  }" ({ "{") (if_statement "if (DAT_000b6328 == 0) {\n      local_194 = 1;\n    }\n    else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }" (if "if") (parenthesized_expression "(DAT_000b6328 == 0)" (( "(") (binary_expression "DAT_000b6328 == 0" (identifier "DAT_000b6328") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_194 = 1;\n    }" ({ "{") (expression_statement "local_194 = 1;" (assignment_expression "local_194 = 1" (identifier "local_194") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }" (else "else") (compound_statement "{\n      uVar10 = *param_1;\n      if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }\n      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }\n    }" ({ "{") (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" (identifier "uVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (local_15c == 0) {\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }\n      else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }" (if "if") (parenthesized_expression "(local_15c == 0)" (( "(") (binary_expression "local_15c == 0" (identifier "local_15c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);\n        error(uVar9,uVar10);\n        local_194 = 1;\n      }" ({ "{") (expression_statement "uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,"%s: unable to dump the index as none was found\n",5)" (identifier "dcgettext") (argument_list "(0,"%s: unable to dump the index as none was found\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s: unable to dump the index as none was found\n"" (" """) (string_content "%s: unable to dump the index as none was found") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar9,uVar10);" (call_expression "error(uVar9,uVar10)" (identifier "error") (argument_list "(uVar9,uVar10)" (( "(") (identifier "uVar9") (, ",") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "local_194 = 1;" (assignment_expression "local_194 = 1" (identifier "local_194") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }" (else "else") (compound_statement "{\n        pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);\n        printf(pcVar6,uVar10,uVar11,uVar3);\n        __off = ftell((FILE *)param_1[1]);\n        puVar2 = PTR_stdout_000b3fd8;\n        if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }\nLAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }\n        if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }\n        iVar4 = fseek((FILE *)param_1[1],__off,0);\n        if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }\n      }" ({ "{") (expression_statement "pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5)" (identifier "pcVar6") (= "=") (cast_expression "(char *)dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5)" (identifier "dcgettext") (argument_list "(0,\n                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"\n                                   ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"" (" """) (string_content "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar6,uVar10,uVar11,uVar3);" (call_expression "printf(pcVar6,uVar10,uVar11,uVar3)" (identifier "printf") (argument_list "(pcVar6,uVar10,uVar11,uVar3)" (( "(") (identifier "pcVar6") (, ",") (identifier "uVar10") (, ",") (identifier "uVar11") (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "__off = ftell((FILE *)param_1[1]);" (assignment_expression "__off = ftell((FILE *)param_1[1])" (identifier "__off") (= "=") (call_expression "ftell((FILE *)param_1[1])" (identifier "ftell") (argument_list "((FILE *)param_1[1])" (( "(") (cast_expression "(FILE *)param_1[1]" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) () ")")))) (; ";")) (expression_statement "puVar2 = PTR_stdout_000b3fd8;" (assignment_expression "puVar2 = PTR_stdout_000b3fd8" (identifier "puVar2") (= "=") (identifier "PTR_stdout_000b3fd8")) (; ";")) (if_statement "if (local_164 == 0 && local_168 == 0) {\n          local_1a0 = 0;\n          local_194 = 1;\n        }\n        else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }" (if "if") (parenthesized_expression "(local_164 == 0 && local_168 == 0)" (( "(") (binary_expression "local_164 == 0 && local_168 == 0" (binary_expression "local_164 == 0" (identifier "local_164") (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_168 == 0" (identifier "local_168") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n          local_1a0 = 0;\n          local_194 = 1;\n        }" ({ "{") (expression_statement "local_1a0 = 0;" (assignment_expression "local_1a0 = 0" (identifier "local_1a0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_194 = 1;" (assignment_expression "local_194 = 1" (identifier "local_194") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }" (else "else") (compound_statement "{\n          uVar11 = 0;\n          local_1a0 = 0;\n          do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));\n          local_194 = 1;\n          local_158 = uVar3;\n        }" ({ "{") (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_1a0 = 0;" (assignment_expression "local_1a0 = 0" (identifier "local_1a0") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));" (do "do") (compound_statement "{\n            iVar4 = uVar11 * 8;\n            iVar1 = *(int *)(local_160 + uVar11 * 8);\n            if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }\n            if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }\n            uVar11 = uVar11 + 1;\n            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);\n            uVar3 = local_158;\n            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);\n            local_1a0 = sVar5 + 1 + local_1a0;\n          }" ({ "{") (expression_statement "iVar4 = uVar11 * 8;" (assignment_expression "iVar4 = uVar11 * 8" (identifier "iVar4") (= "=") (binary_expression "uVar11 * 8" (identifier "uVar11") (* "*") (number_literal "8"))) (; ";")) (expression_statement "iVar1 = *(int *)(local_160 + uVar11 * 8);" (assignment_expression "iVar1 = *(int *)(local_160 + uVar11 * 8)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(local_160 + uVar11 * 8)" (* "*") (cast_expression "(int *)(local_160 + uVar11 * 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_160 + uVar11 * 8)" (( "(") (binary_expression "local_160 + uVar11 * 8" (identifier "local_160") (+ "+") (binary_expression "uVar11 * 8" (identifier "uVar11") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if ((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))\n            {\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }" (if "if") (parenthesized_expression "((((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))" (( "(") (binary_expression "(((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&\n               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0)" (parenthesized_expression "(((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0))" (( "(") (binary_expression "((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&\n                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)" (parenthesized_expression "((uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4)))" (( "(") (binary_expression "(uVar11 == 0) ||\n                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))" (parenthesized_expression "(uVar11 == 0)" (( "(") (binary_expression "uVar11 == 0" (identifier "uVar11") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))" (( "(") (binary_expression "*(int *)(local_160 + -8 + iVar4) != iVar1 ||\n                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4)" (binary_expression "*(int *)(local_160 + -8 + iVar4) != iVar1" (pointer_expression "*(int *)(local_160 + -8 + iVar4)" (* "*") (cast_expression "(int *)(local_160 + -8 + iVar4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_160 + -8 + iVar4)" (( "(") (binary_expression "local_160 + -8 + iVar4" (binary_expression "local_160 + -8" (identifier "local_160") (+ "+") (number_literal "-8")) (+ "+") (identifier "iVar4")) () ")")))) (!= "!=") (identifier "iVar1")) (|| "||") (binary_expression "*(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4)" (pointer_expression "*(int *)(local_160 + 4 + iVar4)" (* "*") (cast_expression "(int *)(local_160 + 4 + iVar4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_160 + 4 + iVar4)" (( "(") (binary_expression "local_160 + 4 + iVar4" (binary_expression "local_160 + 4" (identifier "local_160") (+ "+") (number_literal "4")) (+ "+") (identifier "iVar4")) () ")")))) (!= "!=") (pointer_expression "*(int *)(local_160 + -4 + iVar4)" (* "*") (cast_expression "(int *)(local_160 + -4 + iVar4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_160 + -4 + iVar4)" (( "(") (binary_expression "local_160 + -4 + iVar4" (binary_expression "local_160 + -4" (identifier "local_160") (+ "+") (number_literal "-4")) (+ "+") (identifier "iVar4")) () ")")))))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)" (( "(") (comma_expression "iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0" (assignment_expression "iVar4 = FUN_000676c0(&local_170,iVar1,&local_100)" (identifier "iVar4") (= "=") (call_expression "FUN_000676c0(&local_170,iVar1,&local_100)" (identifier "FUN_000676c0") (argument_list "(&local_170,iVar1,&local_100)" (( "(") (pointer_expression "&local_170" (& "&") (identifier "local_170")) (, ",") (identifier "iVar1") (, ",") (pointer_expression "&local_100" (& "&") (identifier "local_100")) () ")")))) (, ",") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0)" (( "(") (comma_expression "pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0" (assignment_expression "pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4)" (identifier "pvVar7") (= "=") (cast_expression "(void *)FUN_000679c0(&local_170,&local_100,iVar4)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000679c0(&local_170,&local_100,iVar4)" (identifier "FUN_000679c0") (argument_list "(&local_170,&local_100,iVar4)" (( "(") (pointer_expression "&local_170" (& "&") (identifier "local_170")) (, ",") (pointer_expression "&local_100" (& "&") (identifier "local_100")) (, ",") (identifier "iVar4") () ")"))))) (, ",") (binary_expression "pvVar7 != (void *)0x0" (identifier "pvVar7") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);\n              printf(pcVar6,pvVar7);\n              FUN_0001e910();\n              putc(10,*(FILE **)puVar2);\n              free(pvVar7);\n            }" ({ "{") (expression_statement "pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5)" (identifier "pcVar6") (= "=") (cast_expression "(char *)dcgettext(0,"Contents of binary %s at offset ",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"Contents of binary %s at offset ",5)" (identifier "dcgettext") (argument_list "(0,"Contents of binary %s at offset ",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Contents of binary %s at offset "" (" """) (string_content "Contents of binary %s at offset ") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar6,pvVar7);" (call_expression "printf(pcVar6,pvVar7)" (identifier "printf") (argument_list "(pcVar6,pvVar7)" (( "(") (identifier "pcVar6") (, ",") (identifier "pvVar7") () ")"))) (; ";")) (expression_statement "FUN_0001e910();" (call_expression "FUN_0001e910()" (identifier "FUN_0001e910") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "putc(10,*(FILE **)puVar2);" (call_expression "putc(10,*(FILE **)puVar2)" (identifier "putc") (argument_list "(10,*(FILE **)puVar2)" (( "(") (number_literal "10") (, ",") (pointer_expression "*(FILE **)puVar2" (* "*") (cast_expression "(FILE **)puVar2" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar2"))) () ")"))) (; ";")) (expression_statement "free(pvVar7);" (call_expression "free(pvVar7)" (identifier "free") (argument_list "(pvVar7)" (( "(") (identifier "pvVar7") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_158 <= local_1a0) {\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }" (if "if") (parenthesized_expression "(local_158 <= local_1a0)" (( "(") (binary_expression "local_158 <= local_1a0" (identifier "local_158") (<= "<=") (identifier "local_1a0")) () ")")) (compound_statement "{\n              uVar10 = *param_1;\n              uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);\n              error(uVar9,uVar10);\n              local_194 = 0;\n              goto LAB_0004a7a7;\n            }" ({ "{") (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" (identifier "uVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5);" (assignment_expression "uVar9 = dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5)" (identifier "dcgettext") (argument_list "(0,\n                                "%s: end of the symbol table reached before the end of the index\n",\n                                5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s: end of the symbol table reached before the end of the index\n"" (" """) (string_content "%s: end of the symbol table reached before the end of the index") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar9,uVar10);" (call_expression "error(uVar9,uVar10)" (identifier "error") (argument_list "(uVar9,uVar10)" (( "(") (identifier "uVar9") (, ",") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "local_194 = 0;" (assignment_expression "local_194 = 0" (identifier "local_194") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0004a7a7;" (goto "goto") (statement_identifier "LAB_0004a7a7") (; ";")) (} "}"))) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" (identifier "uVar11") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);" (call_expression "printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0)" (identifier "printf") (argument_list "("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0)" (( "(") (string_literal ""\t%.*s\n"" (" """) (escape_sequence "\t") (string_content "%.*s") (escape_sequence "\n") (" """)) (, ",") (binary_expression "local_158 - local_1a0" (identifier "local_158") (- "-") (identifier "local_1a0")) (, ",") (binary_expression "local_15c + local_1a0" (identifier "local_15c") (+ "+") (identifier "local_1a0")) () ")"))) (; ";")) (expression_statement "uVar3 = local_158;" (assignment_expression "uVar3 = local_158" (identifier "uVar3") (= "=") (identifier "local_158")) (; ";")) (expression_statement "sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);" (assignment_expression "sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0)" (identifier "sVar5") (= "=") (call_expression "strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0)" (identifier "strnlen") (argument_list "((char *)(local_15c + local_1a0),local_158 - local_1a0)" (( "(") (cast_expression "(char *)(local_15c + local_1a0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_15c + local_1a0)" (( "(") (binary_expression "local_15c + local_1a0" (identifier "local_15c") (+ "+") (identifier "local_1a0")) () ")"))) (, ",") (binary_expression "local_158 - local_1a0" (identifier "local_158") (- "-") (identifier "local_1a0")) () ")")))) (; ";")) (expression_statement "local_1a0 = sVar5 + 1 + local_1a0;" (assignment_expression "local_1a0 = sVar5 + 1 + local_1a0" (identifier "local_1a0") (= "=") (binary_expression "sVar5 + 1 + local_1a0" (binary_expression "sVar5 + 1" (identifier "sVar5") (+ "+") (number_literal "1")) (+ "+") (identifier "local_1a0"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168))" (( "(") (binary_expression "local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168)" (binary_expression "local_164 != 0" (identifier "local_164") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "(uint)-local_164 < (uint)(uVar11 < local_168)" (binary_expression "(uint)-local_164" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (identifier "local_164")) (< "<") (call_expression "(uint)(uVar11 < local_168)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar11 < local_168)" (( "(") (binary_expression "uVar11 < local_168" (identifier "uVar11") (< "<") (identifier "local_168")) () ")"))))) () ")")) (; ";")) (expression_statement "local_194 = 1;" (assignment_expression "local_194 = 1" (identifier "local_194") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_158 = uVar3;" (assignment_expression "local_158 = uVar3" (identifier "local_158") (= "=") (identifier "uVar3")) (; ";")) (} "}")))) (labeled_statement "LAB_0004a7a7:\n        if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }" (statement_identifier "LAB_0004a7a7") (: ":") (if_statement "if (local_140 == 0) {\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }\n        else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }" (if "if") (parenthesized_expression "(local_140 == 0)" (( "(") (binary_expression "local_140 == 0" (identifier "local_140") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar11 = local_1a0 + 1 & 0xfffffffe;\n        }" ({ "{") (expression_statement "uVar11 = local_1a0 + 1 & 0xfffffffe;" (assignment_expression "uVar11 = local_1a0 + 1 & 0xfffffffe" (identifier "uVar11") (= "=") (binary_expression "local_1a0 + 1 & 0xfffffffe" (binary_expression "local_1a0 + 1" (identifier "local_1a0") (+ "+") (number_literal "1")) (& "&") (number_literal "0xfffffffe"))) (; ";")) (} "}")) (else_clause "else {\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }" (else "else") (compound_statement "{\n          uVar11 = local_1a0 + 7 & 0xfffffff8;\n        }" ({ "{") (expression_statement "uVar11 = local_1a0 + 7 & 0xfffffff8;" (assignment_expression "uVar11 = local_1a0 + 7 & 0xfffffff8" (identifier "uVar11") (= "=") (binary_expression "local_1a0 + 7 & 0xfffffff8" (binary_expression "local_1a0 + 7" (identifier "local_1a0") (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8"))) (; ";")) (} "}"))))) (if_statement "if (uVar11 < local_158) {\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }" (if "if") (parenthesized_expression "(uVar11 < local_158)" (( "(") (binary_expression "uVar11 < local_158" (identifier "uVar11") (< "<") (identifier "local_158")) () ")")) (compound_statement "{\n          uVar10 = *param_1;\n          uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);\n          error(uVar9,uVar10,local_158 - uVar11);\n          local_194 = 0;\n        }" ({ "{") (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" (identifier "uVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5);" (assignment_expression "uVar9 = dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5)" (identifier "uVar9") (= "=") (call_expression "dcngettext(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5)" (identifier "dcngettext") (argument_list "(0,\n                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"\n                             ,\n                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"\n                             ,local_158 - uVar11,5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"" (" """) (string_content "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table") (escape_sequence "\n") (" """)) (, ",") (string_literal ""%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"" (" """) (string_content "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table") (escape_sequence "\n") (" """)) (, ",") (binary_expression "local_158 - uVar11" (identifier "local_158") (- "-") (identifier "uVar11")) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar9,uVar10,local_158 - uVar11);" (call_expression "error(uVar9,uVar10,local_158 - uVar11)" (identifier "error") (argument_list "(uVar9,uVar10,local_158 - uVar11)" (( "(") (identifier "uVar9") (, ",") (identifier "uVar10") (, ",") (binary_expression "local_158 - uVar11" (identifier "local_158") (- "-") (identifier "uVar11")) () ")"))) (; ";")) (expression_statement "local_194 = 0;" (assignment_expression "local_194 = 0" (identifier "local_194") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar4 = fseek((FILE *)param_1[1],__off,0);" (assignment_expression "iVar4 = fseek((FILE *)param_1[1],__off,0)" (identifier "iVar4") (= "=") (call_expression "fseek((FILE *)param_1[1],__off,0)" (identifier "fseek") (argument_list "((FILE *)param_1[1],__off,0)" (( "(") (cast_expression "(FILE *)param_1[1]" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (, ",") (identifier "__off") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;\n          error(uVar9,uVar10);\n          local_190 = 0;\n          goto LAB_0004a8e3;\n        }" ({ "{") (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" (identifier "uVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)\n          ;" (assignment_expression "uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)" (identifier "dcgettext") (argument_list "(0,"%s: failed to seek back to start of object files in the archive\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s: failed to seek back to start of object files in the archive\n"" (" """) (string_content "%s: failed to seek back to start of object files in the archive") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar9,uVar10);" (call_expression "error(uVar9,uVar10)" (identifier "error") (argument_list "(uVar9,uVar10)" (( "(") (identifier "uVar9") (, ",") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "local_190 = 0;" (assignment_expression "local_190 = 0" (identifier "local_190") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0004a8e3;" (goto "goto") (statement_identifier "LAB_0004a8e3") (; ";")) (} "}"))) (} "}")))) (if_statement "if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0) {\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }" (if "if") (parenthesized_expression "((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0)" (( "(") (binary_expression "(((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0) && DAT_000b6364 == 0" (parenthesized_expression "(((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0)" (( "(") (binary_expression "((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&\n          DAT_000b6358 == 0" (parenthesized_expression "((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0)" (( "(") (binary_expression "(((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0" (parenthesized_expression "(((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0)" (( "(") (binary_expression "((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0" (parenthesized_expression "((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0)" (( "(") (binary_expression "(((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              ) && DAT_000b6334 == 0" (parenthesized_expression "(((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0\n              )" (( "(") (binary_expression "((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0" (parenthesized_expression "((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0)" (( "(") (binary_expression "(((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0" (parenthesized_expression "(((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0)" (( "(") (binary_expression "((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0) && DAT_000b6340 == 0" (parenthesized_expression "((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0)" (( "(") (binary_expression "(((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&\n                 DAT_000b6344 == 0" (parenthesized_expression "(((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0)" (( "(") (binary_expression "((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0" (parenthesized_expression "((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0)" (( "(") (binary_expression "(((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0) && DAT_000b635c == 0" (parenthesized_expression "(((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0)" (( "(") (binary_expression "((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&\n                    DAT_000b634c == 0" (parenthesized_expression "((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0)" (( "(") (binary_expression "(DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0" (parenthesized_expression "(DAT_000b636c == 0 && DAT_000b6368 == 0)" (( "(") (binary_expression "DAT_000b636c == 0 && DAT_000b6368 == 0" (binary_expression "DAT_000b636c == 0" (identifier "DAT_000b636c") (== "==") (number_literal "0")) (&& "&&") (binary_expression "DAT_000b6368 == 0" (identifier "DAT_000b6368") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "DAT_000b6360 == 0" (identifier "DAT_000b6360") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "DAT_000b634c == 0" (identifier "DAT_000b634c") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "DAT_000b635c == 0" (identifier "DAT_000b635c") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "DAT_000b6350 == 0" (identifier "DAT_000b6350") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "DAT_000b6344 == 0" (identifier "DAT_000b6344") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "DAT_000b6340 == 0" (identifier "DAT_000b6340") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "DAT_000b633c == 0" (identifier "DAT_000b633c") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "DAT_000b6338 == 0" (identifier "DAT_000b6338") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "DAT_000b6334 == 0" (identifier "DAT_000b6334") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "DAT_000b6330 == 0" (identifier "DAT_000b6330") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "DAT_000b632c == 0" (identifier "DAT_000b632c") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "DAT_000b6358 == 0" (identifier "DAT_000b6358") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "DAT_000b6364 == 0" (identifier "DAT_000b6364") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n        local_190 = 1;\n        goto LAB_0004a8e3;\n      }" ({ "{") (expression_statement "local_190 = 1;" (assignment_expression "local_190 = 1" (identifier "local_190") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0004a8e3;" (goto "goto") (statement_identifier "LAB_0004a8e3") (; ";")) (} "}"))) (} "}")))) (while_statement "while( true ) {\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      iVar4 = fseek((FILE *)param_1[1],local_148,0);\n      if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }\n      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);\n      local_190 = 0;\n      if (sVar5 != 0x3c) break;\n      if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }\n      local_148 = local_148 + 0x3c;\n      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);\n      if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }\n      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);\n      if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }\n      sVar5 = strlen(pcVar6);\n      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);\n      if (pvVar7 == (void *)0x0) goto LAB_0004a928;\n      if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }\n      DAT_000b7550 = local_148;\n      local_148 = local_148 + DAT_000b754c;\n      *param_1 = pvVar7;\n      iVar4 = FUN_00045c20();\n      uVar10 = local_194;\n      if (iVar4 == 0) {\n        uVar10 = 0;\n      }\nLAB_0004a469:\n      local_194 = uVar10;\n      if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }\n      free(pvVar7);\n    }" ({ "{") (expression_statement "iVar4 = fseek((FILE *)param_1[1],local_148,0);" (assignment_expression "iVar4 = fseek((FILE *)param_1[1],local_148,0)" (identifier "iVar4") (= "=") (call_expression "fseek((FILE *)param_1[1],local_148,0)" (identifier "fseek") (argument_list "((FILE *)param_1[1],local_148,0)" (( "(") (cast_expression "(FILE *)param_1[1]" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (, ",") (identifier "local_148") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) {\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar10 = *param_1;\n        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);\n        error(uVar9,uVar10);\n        return 0;\n      }" ({ "{") (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" (identifier "uVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,"%s: failed to seek to next archive header\n",5)" (identifier "dcgettext") (argument_list "(0,"%s: failed to seek to next archive header\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s: failed to seek to next archive header\n"" (" """) (string_content "%s: failed to seek to next archive header") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar9,uVar10);" (call_expression "error(uVar9,uVar10)" (identifier "error") (argument_list "(uVar9,uVar10)" (( "(") (identifier "uVar9") (, ",") (identifier "uVar10") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);" (assignment_expression "sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1])" (identifier "sVar5") (= "=") (call_expression "fread(local_13c,1,0x3c,(FILE *)param_1[1])" (identifier "fread") (argument_list "(local_13c,1,0x3c,(FILE *)param_1[1])" (( "(") (identifier "local_13c") (, ",") (number_literal "1") (, ",") (number_literal "0x3c") (, ",") (cast_expression "(FILE *)param_1[1]" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) () ")")))) (; ";")) (expression_statement "local_190 = 0;" (assignment_expression "local_190 = 0" (identifier "local_190") (= "=") (number_literal "0")) (; ";")) (if_statement "if (sVar5 != 0x3c) break;" (if "if") (parenthesized_expression "(sVar5 != 0x3c)" (( "(") (binary_expression "sVar5 != 0x3c" (identifier "sVar5") (!= "!=") (number_literal "0x3c")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (local_102 != 0xa60) {\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }" (if "if") (parenthesized_expression "(local_102 != 0xa60)" (( "(") (binary_expression "local_102 != 0xa60" (identifier "local_102") (!= "!=") (number_literal "0xa60")) () ")")) (compound_statement "{\n        pcVar6 = "%s: did not find a valid archive header\n";\n        uVar10 = local_170;\n        goto LAB_0004a9ef;\n      }" ({ "{") (expression_statement "pcVar6 = "%s: did not find a valid archive header\n";" (assignment_expression "pcVar6 = "%s: did not find a valid archive header\n"" (identifier "pcVar6") (= "=") (string_literal ""%s: did not find a valid archive header\n"" (" """) (string_content "%s: did not find a valid archive header") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "uVar10 = local_170;" (assignment_expression "uVar10 = local_170" (identifier "uVar10") (= "=") (identifier "local_170")) (; ";")) (goto_statement "goto LAB_0004a9ef;" (goto "goto") (statement_identifier "LAB_0004a9ef") (; ";")) (} "}"))) (expression_statement "local_148 = local_148 + 0x3c;" (assignment_expression "local_148 = local_148 + 0x3c" (identifier "local_148") (= "=") (binary_expression "local_148 + 0x3c" (identifier "local_148") (+ "+") (number_literal "0x3c"))) (; ";")) (expression_statement "DAT_000b754c = strtoul(local_10c,(char **)0x0,10);" (assignment_expression "DAT_000b754c = strtoul(local_10c,(char **)0x0,10)" (identifier "DAT_000b754c") (= "=") (call_expression "strtoul(local_10c,(char **)0x0,10)" (identifier "strtoul") (argument_list "(local_10c,(char **)0x0,10)" (( "(") (identifier "local_10c") (, ",") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")) (, ",") (number_literal "10") () ")")))) (; ";")) (if_statement "if ((DAT_000b754c & 1) != 0) {\n        DAT_000b754c = DAT_000b754c + 1;\n      }" (if "if") (parenthesized_expression "((DAT_000b754c & 1) != 0)" (( "(") (binary_expression "(DAT_000b754c & 1) != 0" (parenthesized_expression "(DAT_000b754c & 1)" (( "(") (binary_expression "DAT_000b754c & 1" (identifier "DAT_000b754c") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        DAT_000b754c = DAT_000b754c + 1;\n      }" ({ "{") (expression_statement "DAT_000b754c = DAT_000b754c + 1;" (assignment_expression "DAT_000b754c = DAT_000b754c + 1" (identifier "DAT_000b754c") (= "=") (binary_expression "DAT_000b754c + 1" (identifier "DAT_000b754c") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pcVar6 = (char *)FUN_00067770(&local_170,&local_100);" (assignment_expression "pcVar6 = (char *)FUN_00067770(&local_170,&local_100)" (identifier "pcVar6") (= "=") (cast_expression "(char *)FUN_00067770(&local_170,&local_100)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00067770(&local_170,&local_100)" (identifier "FUN_00067770") (argument_list "(&local_170,&local_100)" (( "(") (pointer_expression "&local_170" (& "&") (identifier "local_170")) (, ",") (pointer_expression "&local_100" (& "&") (identifier "local_100")) () ")"))))) (; ";")) (if_statement "if (pcVar6 == (char *)0x0) {\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }" (if "if") (parenthesized_expression "(pcVar6 == (char *)0x0)" (( "(") (binary_expression "pcVar6 == (char *)0x0" (identifier "pcVar6") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0004a928:\n        uVar10 = *param_1;\n        pcVar6 = "%s: bad archive file name\n";\nLAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);\n        error(uVar9,uVar10);\n        goto LAB_0004a8e3;\n      }" ({ "{") (labeled_statement "LAB_0004a928:\n        uVar10 = *param_1;" (statement_identifier "LAB_0004a928") (: ":") (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" (identifier "uVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";"))) (expression_statement "pcVar6 = "%s: bad archive file name\n";" (assignment_expression "pcVar6 = "%s: bad archive file name\n"" (identifier "pcVar6") (= "=") (string_literal ""%s: bad archive file name\n"" (" """) (string_content "%s: bad archive file name") (escape_sequence "\n") (" """))) (; ";")) (labeled_statement "LAB_0004a936:\n        uVar9 = dcgettext(0,pcVar6,5);" (statement_identifier "LAB_0004a936") (: ":") (expression_statement "uVar9 = dcgettext(0,pcVar6,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar6,5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,pcVar6,5)" (identifier "dcgettext") (argument_list "(0,pcVar6,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar6") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "error(uVar9,uVar10);" (call_expression "error(uVar9,uVar10)" (identifier "error") (argument_list "(uVar9,uVar10)" (( "(") (identifier "uVar9") (, ",") (identifier "uVar10") () ")"))) (; ";")) (goto_statement "goto LAB_0004a8e3;" (goto "goto") (statement_identifier "LAB_0004a8e3") (; ";")) (} "}"))) (expression_statement "sVar5 = strlen(pcVar6);" (assignment_expression "sVar5 = strlen(pcVar6)" (identifier "sVar5") (= "=") (call_expression "strlen(pcVar6)" (identifier "strlen") (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")")))) (; ";")) (expression_statement "pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);" (assignment_expression "pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6)" (identifier "pvVar7") (= "=") (cast_expression "(void *)FUN_000679c0(&local_170,&local_100,pcVar6)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000679c0(&local_170,&local_100,pcVar6)" (identifier "FUN_000679c0") (argument_list "(&local_170,&local_100,pcVar6)" (( "(") (pointer_expression "&local_170" (& "&") (identifier "local_170")) (, ",") (pointer_expression "&local_100" (& "&") (identifier "local_100")) (, ",") (identifier "pcVar6") () ")"))))) (; ";")) (if_statement "if (pvVar7 == (void *)0x0) goto LAB_0004a928;" (if "if") (parenthesized_expression "(pvVar7 == (void *)0x0)" (( "(") (binary_expression "pvVar7 == (void *)0x0" (identifier "pvVar7") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004a928;" (goto "goto") (statement_identifier "LAB_0004a928") (; ";"))) (if_statement "if (param_2 != 0) {\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }" (if "if") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }\n        goto LAB_0004a8e3;\n      }" ({ "{") (if_statement "if (local_14c == 0) {\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }\n        else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }" (if "if") (parenthesized_expression "(local_14c == 0)" (( "(") (binary_expression "local_14c == 0" (identifier "local_14c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);\n          if (__ptr == (void *)0x0) goto LAB_0004a8db;\n          puVar8 = (undefined4 *)FUN_000268f0();\n          if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }\n          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);\n          error(uVar10,__ptr);\n          free(__ptr);\n        }" ({ "{") (expression_statement "__ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);" (assignment_expression "__ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5)" (identifier "__ptr") (= "=") (cast_expression "(void *)FUN_00067180(*param_1,pcVar6,sVar5)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00067180(*param_1,pcVar6,sVar5)" (identifier "FUN_00067180") (argument_list "(*param_1,pcVar6,sVar5)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "pcVar6") (, ",") (identifier "sVar5") () ")"))))) (; ";")) (if_statement "if (__ptr == (void *)0x0) goto LAB_0004a8db;" (if "if") (parenthesized_expression "(__ptr == (void *)0x0)" (( "(") (binary_expression "__ptr == (void *)0x0" (identifier "__ptr") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004a8db;" (goto "goto") (statement_identifier "LAB_0004a8db") (; ";"))) (expression_statement "puVar8 = (undefined4 *)FUN_000268f0();" (assignment_expression "puVar8 = (undefined4 *)FUN_000268f0()" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)FUN_000268f0()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000268f0()" (identifier "FUN_000268f0") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (puVar8 != (undefined4 *)0x0) {\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }" (if "if") (parenthesized_expression "(puVar8 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar8 != (undefined4 *)0x0" (identifier "puVar8") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            DAT_000b7550 = local_14c;\n            *puVar8 = pvVar7;\n            iVar4 = FUN_00045c20();\n            uVar10 = 0;\n            if (iVar4 != 0) {\n              uVar10 = local_194;\n            }\n            FUN_0001e670();\n            free(__ptr);\n            goto LAB_0004a469;\n          }" ({ "{") (expression_statement "DAT_000b7550 = local_14c;" (assignment_expression "DAT_000b7550 = local_14c" (identifier "DAT_000b7550") (= "=") (identifier "local_14c")) (; ";")) (expression_statement "*puVar8 = pvVar7;" (assignment_expression "*puVar8 = pvVar7" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (identifier "pvVar7")) (; ";")) (expression_statement "iVar4 = FUN_00045c20();" (assignment_expression "iVar4 = FUN_00045c20()" (identifier "iVar4") (= "=") (call_expression "FUN_00045c20()" (identifier "FUN_00045c20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar4 != 0) {\n              uVar10 = local_194;\n            }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar10 = local_194;\n            }" ({ "{") (expression_statement "uVar10 = local_194;" (assignment_expression "uVar10 = local_194" (identifier "uVar10") (= "=") (identifier "local_194")) (; ";")) (} "}"))) (expression_statement "FUN_0001e670();" (call_expression "FUN_0001e670()" (identifier "FUN_0001e670") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (goto_statement "goto LAB_0004a469;" (goto "goto") (statement_identifier "LAB_0004a469") (; ";")) (} "}"))) (expression_statement "uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);" (assignment_expression "uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5)" (identifier "uVar10") (= "=") (call_expression "dcgettext(0,"Input file \'%s\' is not readable.\n",5)" (identifier "dcgettext") (argument_list "(0,"Input file \'%s\' is not readable.\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Input file \'%s\' is not readable.\n"" (" """) (string_content "Input file ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content " is not readable.") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar10,__ptr);" (call_expression "error(uVar10,__ptr)" (identifier "error") (argument_list "(uVar10,__ptr)" (( "(") (identifier "uVar10") (, ",") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }" (else "else") (compound_statement "{\n          ppvVar12 = &local_90;\n          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }\n          if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }\n          uVar10 = *param_1;\n          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);\n          error(uVar9,uVar10,pcVar6);\n        }" ({ "{") (expression_statement "ppvVar12 = &local_90;" (assignment_expression "ppvVar12 = &local_90" (identifier "ppvVar12") (= "=") (pointer_expression "&local_90" (& "&") (identifier "local_90"))) (; ";")) (for_statement "for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }" (for "for") (( "(") (assignment_expression "iVar4 = 0x1d" (identifier "iVar4") (= "=") (number_literal "0x1d")) (; ";") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar4 = iVar4 + -1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + -1" (identifier "iVar4") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n            *ppvVar12 = (void *)0x0;\n            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;\n          }" ({ "{") (expression_statement "*ppvVar12 = (void *)0x0;" (assignment_expression "*ppvVar12 = (void *)0x0" (pointer_expression "*ppvVar12" (* "*") (identifier "ppvVar12")) (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;" (assignment_expression "ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1" (identifier "ppvVar12") (= "=") (binary_expression "ppvVar12 + (uint)bVar13 * -2 + 1" (binary_expression "ppvVar12 + (uint)bVar13 * -2" (identifier "ppvVar12") (+ "+") (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar13")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (local_fc != (FILE *)0x0) {\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }" (if "if") (parenthesized_expression "(local_fc != (FILE *)0x0)" (( "(") (binary_expression "local_fc != (FILE *)0x0" (identifier "local_fc") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            DAT_000b7550 = local_14c + 0x3c;\n            iVar4 = fseek(local_fc,DAT_000b7550,0);\n            if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }\n            pcVar6 = "%s: failed to seek to archive member.\n";\n            uVar10 = local_100;\n            goto LAB_0004a936;\n          }" ({ "{") (expression_statement "DAT_000b7550 = local_14c + 0x3c;" (assignment_expression "DAT_000b7550 = local_14c + 0x3c" (identifier "DAT_000b7550") (= "=") (binary_expression "local_14c + 0x3c" (identifier "local_14c") (+ "+") (number_literal "0x3c"))) (; ";")) (expression_statement "iVar4 = fseek(local_fc,DAT_000b7550,0);" (assignment_expression "iVar4 = fseek(local_fc,DAT_000b7550,0)" (identifier "iVar4") (= "=") (call_expression "fseek(local_fc,DAT_000b7550,0)" (identifier "fseek") (argument_list "(local_fc,DAT_000b7550,0)" (( "(") (identifier "local_fc") (, ",") (identifier "DAT_000b7550") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              local_8c = local_fc;\n              local_90 = pvVar7;\n              iVar4 = FUN_00045c20();\n              uVar10 = 0;\n              if (iVar4 != 0) {\n                uVar10 = local_194;\n              }\n              goto LAB_0004a469;\n            }" ({ "{") (expression_statement "local_8c = local_fc;" (assignment_expression "local_8c = local_fc" (identifier "local_8c") (= "=") (identifier "local_fc")) (; ";")) (expression_statement "local_90 = pvVar7;" (assignment_expression "local_90 = pvVar7" (identifier "local_90") (= "=") (identifier "pvVar7")) (; ";")) (expression_statement "iVar4 = FUN_00045c20();" (assignment_expression "iVar4 = FUN_00045c20()" (identifier "iVar4") (= "=") (call_expression "FUN_00045c20()" (identifier "FUN_00045c20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar4 != 0) {\n                uVar10 = local_194;\n              }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                uVar10 = local_194;\n              }" ({ "{") (expression_statement "uVar10 = local_194;" (assignment_expression "uVar10 = local_194" (identifier "uVar10") (= "=") (identifier "local_194")) (; ";")) (} "}"))) (goto_statement "goto LAB_0004a469;" (goto "goto") (statement_identifier "LAB_0004a469") (; ";")) (} "}"))) (expression_statement "pcVar6 = "%s: failed to seek to archive member.\n";" (assignment_expression "pcVar6 = "%s: failed to seek to archive member.\n"" (identifier "pcVar6") (= "=") (string_literal ""%s: failed to seek to archive member.\n"" (" """) (string_content "%s: failed to seek to archive member.") (escape_sequence "\n") (" """))) (; ";")) (expression_statement "uVar10 = local_100;" (assignment_expression "uVar10 = local_100" (identifier "uVar10") (= "=") (identifier "local_100")) (; ";")) (goto_statement "goto LAB_0004a936;" (goto "goto") (statement_identifier "LAB_0004a936") (; ";")) (} "}"))) (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" (identifier "uVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,"%s: contains corrupt thin archive: %s\n",5)" (identifier "dcgettext") (argument_list "(0,"%s: contains corrupt thin archive: %s\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s: contains corrupt thin archive: %s\n"" (" """) (string_content "%s: contains corrupt thin archive: %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar9,uVar10,pcVar6);" (call_expression "error(uVar9,uVar10,pcVar6)" (identifier "error") (argument_list "(uVar9,uVar10,pcVar6)" (( "(") (identifier "uVar9") (, ",") (identifier "uVar10") (, ",") (identifier "pcVar6") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0004a8e3;" (goto "goto") (statement_identifier "LAB_0004a8e3") (; ";")) (} "}"))) (expression_statement "DAT_000b7550 = local_148;" (assignment_expression "DAT_000b7550 = local_148" (identifier "DAT_000b7550") (= "=") (identifier "local_148")) (; ";")) (expression_statement "local_148 = local_148 + DAT_000b754c;" (assignment_expression "local_148 = local_148 + DAT_000b754c" (identifier "local_148") (= "=") (binary_expression "local_148 + DAT_000b754c" (identifier "local_148") (+ "+") (identifier "DAT_000b754c"))) (; ";")) (expression_statement "*param_1 = pvVar7;" (assignment_expression "*param_1 = pvVar7" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "pvVar7")) (; ";")) (expression_statement "iVar4 = FUN_00045c20();" (assignment_expression "iVar4 = FUN_00045c20()" (identifier "iVar4") (= "=") (call_expression "FUN_00045c20()" (identifier "FUN_00045c20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar10 = local_194;" (assignment_expression "uVar10 = local_194" (identifier "uVar10") (= "=") (identifier "local_194")) (; ";")) (if_statement "if (iVar4 == 0) {\n        uVar10 = 0;\n      }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar10 = 0;\n      }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (} "}"))) (labeled_statement "LAB_0004a469:\n      local_194 = uVar10;" (statement_identifier "LAB_0004a469") (: ":") (expression_statement "local_194 = uVar10;" (assignment_expression "local_194 = uVar10" (identifier "local_194") (= "=") (identifier "uVar10")) (; ";"))) (if_statement "if ((void *)param_1[0x1b] != (void *)0x0) {\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }" (if "if") (parenthesized_expression "((void *)param_1[0x1b] != (void *)0x0)" (( "(") (binary_expression "(void *)param_1[0x1b] != (void *)0x0" (cast_expression "(void *)param_1[0x1b]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x1b]" (identifier "param_1") ([ "[") (number_literal "0x1b") (] "]"))) (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        free((void *)param_1[0x1b]);\n        param_1[0x1b] = 0;\n        param_1[0x1c] = 0;\n      }" ({ "{") (expression_statement "free((void *)param_1[0x1b]);" (call_expression "free((void *)param_1[0x1b])" (identifier "free") (argument_list "((void *)param_1[0x1b])" (( "(") (cast_expression "(void *)param_1[0x1b]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x1b]" (identifier "param_1") ([ "[") (number_literal "0x1b") (] "]"))) () ")"))) (; ";")) (expression_statement "param_1[0x1b] = 0;" (assignment_expression "param_1[0x1b] = 0" (subscript_expression "param_1[0x1b]" (identifier "param_1") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x1c] = 0;" (assignment_expression "param_1[0x1c] = 0" (subscript_expression "param_1[0x1c]" (identifier "param_1") ([ "[") (number_literal "0x1c") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "free(pvVar7);" (call_expression "free(pvVar7)" (identifier "free") (argument_list "(pvVar7)" (( "(") (identifier "pvVar7") () ")"))) (; ";")) (} "}"))) (if_statement "if (sVar5 == 0) {\n      local_190 = local_194;\n    }\n    else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }" (if "if") (parenthesized_expression "(sVar5 == 0)" (( "(") (binary_expression "sVar5 == 0" (identifier "sVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_190 = local_194;\n    }" ({ "{") (expression_statement "local_190 = local_194;" (assignment_expression "local_190 = local_194" (identifier "local_190") (= "=") (identifier "local_194")) (; ";")) (} "}")) (else_clause "else {\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }" (else "else") (compound_statement "{\n      uVar10 = *param_1;\n      pcVar6 = "%s: failed to read archive header\n";\nLAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);\n      error(uVar9,uVar10);\n    }" ({ "{") (expression_statement "uVar10 = *param_1;" (assignment_expression "uVar10 = *param_1" (identifier "uVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "pcVar6 = "%s: failed to read archive header\n";" (assignment_expression "pcVar6 = "%s: failed to read archive header\n"" (identifier "pcVar6") (= "=") (string_literal ""%s: failed to read archive header\n"" (" """) (string_content "%s: failed to read archive header") (escape_sequence "\n") (" """))) (; ";")) (labeled_statement "LAB_0004a9ef:\n      uVar9 = dcgettext(0,pcVar6,5);" (statement_identifier "LAB_0004a9ef") (: ":") (expression_statement "uVar9 = dcgettext(0,pcVar6,5);" (assignment_expression "uVar9 = dcgettext(0,pcVar6,5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,pcVar6,5)" (identifier "dcgettext") (argument_list "(0,pcVar6,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar6") (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "error(uVar9,uVar10);" (call_expression "error(uVar9,uVar10)" (identifier "error") (argument_list "(uVar9,uVar10)" (( "(") (identifier "uVar9") (, ",") (identifier "uVar10") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\nLAB_0004a8db:\n    local_190 = 0;\n  }" (else "else") (compound_statement "{\nLAB_0004a8db:\n    local_190 = 0;\n  }" ({ "{") (labeled_statement "LAB_0004a8db:\n    local_190 = 0;" (statement_identifier "LAB_0004a8db") (: ":") (expression_statement "local_190 = 0;" (assignment_expression "local_190 = 0" (identifier "local_190") (= "=") (number_literal "0")) (; ";"))) (} "}")))) (labeled_statement "LAB_0004a8e3:\n  local_198 = &local_100;" (statement_identifier "LAB_0004a8e3") (: ":") (expression_statement "local_198 = &local_100;" (assignment_expression "local_198 = &local_100" (identifier "local_198") (= "=") (pointer_expression "&local_100" (& "&") (identifier "local_100"))) (; ";"))) (if_statement "if (local_fc != (FILE *)0x0) {\n    fclose(local_fc);\n  }" (if "if") (parenthesized_expression "(local_fc != (FILE *)0x0)" (( "(") (binary_expression "local_fc != (FILE *)0x0" (identifier "local_fc") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    fclose(local_fc);\n  }" ({ "{") (expression_statement "fclose(local_fc);" (call_expression "fclose(local_fc)" (identifier "fclose") (argument_list "(local_fc)" (( "(") (identifier "local_fc") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000675d0(local_198);" (call_expression "FUN_000675d0(local_198)" (identifier "FUN_000675d0") (argument_list "(local_198)" (( "(") (identifier "local_198") () ")"))) (; ";")) (expression_statement "FUN_000675d0(&local_170);" (call_expression "FUN_000675d0(&local_170)" (identifier "FUN_000675d0") (argument_list "(&local_170)" (( "(") (pointer_expression "&local_170" (& "&") (identifier "local_170")) () ")"))) (; ";")) (return_statement "return local_190;" (return "return") (identifier "local_190") (; ";")) (} "}")))

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

type_1 __regparm3 function_1(type_2 *filedata,type_1 var_42)

{
  type_3 *puVar1;
  type_4 uVar2;
  int var_2;
  size_t var_18;
  char *var_10;
  char *var_41;
  type_1 var_47;
  long __off;
  type_2 *var_45;
  char *pcVar9;
  type_1 bVar10;
  type_5 var_8;
  type_6 bVar12;
  type_5 var_16;
  type_7 *local_198;
  type_1 local_194;
  type_1 local_190;
  type_7 arch;
  type_7 nested_arch;
  type_2 thin_filedata;
  
  bVar12 = 0;
  arch.file_name = (char *)0x0;
  arch.file = (type_8 *)0x0;
  arch.index_array = (type_9 *)0x0;
  arch.sym_table = (char *)0x0;
  arch.longnames = (char *)0x0;
  nested_arch.file_name = (char *)0x0;
  nested_arch.file = (type_8 *)0x0;
  nested_arch.index_array = (type_9 *)0x0;
  nested_arch.sym_table = (char *)0x0;
  nested_arch.longnames = (char *)0x0;
  show_name = 1;
  var_2 = var_1(&arch,filedata->file_name,filedata->handle,var_42,var_3)
  ;
  uVar2 = arch.sym_size;
  var_8 = (type_5)arch.index_num;
  if (var_2 == 0) {
    if (var_3 == 0) {
      local_194 = 1;
    }
    else {
      var_10 = filedata->file_name;
      if (arch.sym_table == (char *)0x0) {
        var_41 = (char *)var_4(0,"%s: unable to dump the index as none was found\n",5);
        var_5(var_41,var_10);
        local_194 = 1;
      }
      else {
        var_41 = (char *)var_4(0,
                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"
                                   ,5);
        var_6(var_41,var_10,var_8,uVar2);
        __off = var_7((type_8 *)filedata->handle);
        puVar1 = PTR_stdout_000b3fd8;
        if (arch.index_num._4_4_ == 0 && (type_5)arch.index_num == 0) {
          var_16 = 0;
          local_194 = 1;
        }
        else {
          var_8 = 0;
          var_16 = 0;
          do {
            if ((((var_8 == 0) ||
                 ((type_4)arch.index_array[var_8 - 1] != (type_4)arch.index_array[var_8] ||
                  *(int *)((int)arch.index_array + var_8 * 8 + 4) !=
                  *(int *)((int)arch.index_array + var_8 * 8 + -4))) &&
                (var_10 = var_9
                                    (&arch,(type_4)arch.index_array[var_8],&nested_arch),
                var_10 != (char *)0x0)) &&
               (var_10 = var_11(&arch,&nested_arch,var_10), var_10 != (char *)0x0)) {
              pcVar9 = (char *)var_4(0,"Contents of binary %s at offset ",5);
              var_41 = var_10;
              var_6(pcVar9);
              var_12(var_13(var_41,pcVar9),*(type_10 *)(arch.index_array + var_8));
              var_14(10,*(type_8 **)puVar1);
              var_15(var_10);
            }
            if (arch.sym_size <= var_16) {
              var_10 = filedata->file_name;
              var_41 = (char *)var_4(0,
                                         "%s: end of the symbol table reached before the end of the index\n"
                                         ,5);
              var_5(var_41,var_10);
              local_194 = 0;
              goto LAB_0004a7a7;
            }
            var_8 = var_8 + 1;
            var_6("\t%.*s\n",arch.sym_size - var_16,arch.sym_table + var_16);
            uVar2 = arch.sym_size;
            var_18 = var_17(arch.sym_table + var_16,arch.sym_size - var_16);
            var_16 = var_18 + 1 + var_16;
          } while (arch.index_num._4_4_ != 0 ||
                   (type_5)-arch.index_num._4_4_ < (type_5)(var_8 < (type_5)arch.index_num));
          local_194 = 1;
          arch.sym_size = uVar2;
        }
LAB_0004a7a7:
        if (arch.uses_64bit_indicies == 0) {
          var_8 = var_16 + 1 & 0xfffffffe;
        }
        else {
          var_8 = var_16 + 7 & 0xfffffff8;
        }
        if (var_8 < arch.sym_size) {
          var_10 = filedata->file_name;
          var_41 = (char *)var_19(0,
                                      "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"
                                      ,
                                      "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"
                                      ,arch.sym_size - var_8,5);
          var_5(var_41,var_10,arch.sym_size - var_8);
          local_194 = 0;
        }
        var_2 = var_20((type_8 *)filedata->handle,__off,0);
        if (var_2 != 0) {
          var_10 = filedata->file_name;
          var_41 = (char *)var_4(0,
                                     "%s: failed to seek back to start of object files in the archive\n"
                                     ,5);
          var_5(var_41,var_10);
          local_190 = 0;
          goto LAB_0004a8e3;
        }
      }
      if ((((((((((((((var_21 == 0 && var_22 == 0) && var_23 == 0) && var_24 == 0) &&
                   var_25 == 0) && var_26 == 0) && var_27 == 0) && var_28 == 0) &&
               var_29 == 0) && var_30 == 0) && var_31 == 0) && var_32 == 0) &&
           var_33 == 0) && var_34 == 0) && var_35 == 0) {
        local_190 = 1;
        goto LAB_0004a8e3;
      }
    }
    while( true ) {
      var_2 = var_20((type_8 *)filedata->handle,arch.next_arhdr_offset,0);
      if (var_2 != 0) {
        var_10 = filedata->file_name;
        var_41 = (char *)var_4(0,"%s: failed to seek to next archive header\n",5);
        var_5(var_41,var_10);
        return 0;
      }
      var_18 = var_36(&arch.arhdr,1,0x3c,(type_8 *)filedata->handle);
      local_190 = 0;
      if (var_18 != 0x3c) break;
      if (arch.arhdr.ar_fmag != (char  [2])0xa60) {
        var_10 = "%s: did not find a valid archive header\n";
        var_41 = arch.file_name;
        goto LAB_0004a9ef;
      }
      arch.next_arhdr_offset = arch.next_arhdr_offset + 0x3c;
      var_38 = var_37(arch.arhdr.ar_size,(char **)0x0,10);
      if ((var_38 & 1) != 0) {
        var_38 = var_38 + 1;
      }
      var_10 = var_39(&arch,&nested_arch);
      if (var_10 == (char *)0x0) {
LAB_0004a928:
        var_41 = filedata->file_name;
        var_10 = "%s: bad archive file name\n";
LAB_0004a936:
        var_10 = (char *)var_4(0,var_10,5);
        var_5(var_10,var_41);
        goto LAB_0004a8e3;
      }
      var_18 = var_40(var_10);
      var_41 = var_11(&arch,&nested_arch,var_10);
      if (var_41 == (char *)0x0) goto LAB_0004a928;
      if (var_42 != 0) {
        if (arch.nested_member_origin == 0) {
          var_10 = var_43(filedata->file_name,var_10,var_18);
          if (var_10 == (char *)0x0) goto LAB_0004a8db;
          var_45 = var_44(var_10);
          if (var_45 != (type_2 *)0x0) {
            archive_file_offset = arch.nested_member_origin;
            var_45->file_name = var_41;
            var_47 = var_46(var_45);
            bVar10 = 0;
            if (var_47 != 0) {
              bVar10 = local_194;
            }
            var_48(var_45);
            var_15(var_10);
            goto LAB_0004a469;
          }
          var_41 = (char *)var_4(0,"Input file \'%s\' is not readable.\n",5);
          var_5(var_41,var_10);
          var_15(var_10);
        }
        else {
          var_45 = &thin_filedata;
          for (var_2 = 0x1d; var_2 != 0; var_2 = var_2 + -1) {
            var_45->file_name = (char *)0x0;
            var_45 = (type_2 *)((int)var_45 + (type_5)bVar12 * -8 + 4);
          }
          if (nested_arch.file != (type_8 *)0x0) {
            archive_file_offset = arch.nested_member_origin + 0x3c;
            var_2 = var_20((type_8 *)nested_arch.file,archive_file_offset,0);
            if (var_2 == 0) {
              thin_filedata.handle = nested_arch.file;
              thin_filedata.file_name = var_41;
              var_47 = var_46(&thin_filedata);
              bVar10 = 0;
              if (var_47 != 0) {
                bVar10 = local_194;
              }
              goto LAB_0004a469;
            }
            var_10 = "%s: failed to seek to archive member.\n";
            var_41 = nested_arch.file_name;
            goto LAB_0004a936;
          }
          var_41 = filedata->file_name;
          pcVar9 = (char *)var_4(0,"%s: contains corrupt thin archive: %s\n",5);
          var_5(pcVar9,var_41,var_10);
        }
        goto LAB_0004a8e3;
      }
      archive_file_offset = arch.next_arhdr_offset;
      arch.next_arhdr_offset = arch.next_arhdr_offset + var_38;
      filedata->file_name = var_41;
      var_47 = var_46(filedata);
      bVar10 = local_194;
      if (var_47 == 0) {
        bVar10 = 0;
      }
LAB_0004a469:
      local_194 = bVar10;
      if (filedata->dump_sects != (type_11 *)0x0) {
        var_15(filedata->dump_sects);
        filedata->dump_sects = (type_11 *)0x0;
        filedata->num_dump_sects = 0;
      }
      var_15(var_41);
    }
    if (var_18 == 0) {
      local_190 = local_194;
    }
    else {
      var_41 = filedata->file_name;
      var_10 = "%s: failed to read archive header\n";
LAB_0004a9ef:
      var_10 = (char *)var_4(0,var_10,5);
      var_5(var_10,var_41);
    }
  }
  else {
LAB_0004a8db:
    local_190 = 0;
  }
LAB_0004a8e3:
  local_198 = &nested_arch;
  if (nested_arch.file != (type_8 *)0x0) {
    var_49((type_8 *)nested_arch.file);
  }
  var_50(local_198);
  var_50(&arch);
  return local_190;
}


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

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

undefined4 __regparm3 MASKED(undefined4 *param_1,int param_2)

{
  int iVar1;
  undefined *puVar2;
  uint uVar3;
  int iVar4;
  size_t sVar5;
  char *pcVar6;
  void *pvVar7;
  long __off;
  void *__ptr;
  undefined4 *puVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  uint uVar11;
  void **ppvVar12;
  byte bVar13;
  uint local_1a0;
  undefined4 *local_198;
  undefined4 local_194;
  undefined4 local_190;
  undefined4 local_170;
  undefined4 local_16c;
  uint local_168;
  int local_164;
  int local_160;
  int local_15c;
  uint local_158;
  undefined4 local_154;
  int local_14c;
  int local_148;
  int local_140;
  undefined1 local_13c [48];
  char local_10c [10];
  short local_102;
  undefined4 local_100;
  FILE *local_fc;
  undefined4 local_f0;
  undefined4 local_ec;
  undefined4 local_e4;
  void *local_90;
  FILE *local_8c;
  undefined4 uStack_14;
  
  bVar13 = 0;
  uStack_14 = 0x4a36b;
  local_170 = 0;
  local_16c = 0;
  local_160 = 0;
  local_15c = 0;
  local_154 = 0;
  local_100 = 0;
  local_fc = (FILE *)0x0;
  local_f0 = 0;
  local_ec = 0;
  local_e4 = 0;
  DAT_000b6370 = 1;
  iVar4 = FUN_000672b0(&local_170,*param_1,param_1[1],param_2,DAT_000b6328);
  uVar3 = local_158;
  uVar11 = local_168;
  if (iVar4 == 0) {
    if (DAT_000b6328 == 0) {
      local_194 = 1;
    }
    else {
      uVar10 = *param_1;
      if (local_15c == 0) {
        uVar9 = dcgettext(0,"%s: unable to dump the index as none was found\n",5);
        error(uVar9,uVar10);
        local_194 = 1;
      }
      else {
        pcVar6 = (char *)dcgettext(0,
                                   "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"
                                   ,5);
        printf(pcVar6,uVar10,uVar11,uVar3);
        __off = ftell((FILE *)param_1[1]);
        puVar2 = PTR_stdout_000b3fd8;
        if (local_164 == 0 && local_168 == 0) {
          local_1a0 = 0;
          local_194 = 1;
        }
        else {
          uVar11 = 0;
          local_1a0 = 0;
          do {
            iVar4 = uVar11 * 8;
            iVar1 = *(int *)(local_160 + uVar11 * 8);
            if ((((uVar11 == 0) ||
                 (*(int *)(local_160 + -8 + iVar4) != iVar1 ||
                  *(int *)(local_160 + 4 + iVar4) != *(int *)(local_160 + -4 + iVar4))) &&
                (iVar4 = FUN_000676c0(&local_170,iVar1,&local_100), iVar4 != 0)) &&
               (pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,iVar4), pvVar7 != (void *)0x0))
            {
              pcVar6 = (char *)dcgettext(0,"Contents of binary %s at offset ",5);
              printf(pcVar6,pvVar7);
              FUN_0001e910();
              putc(10,*(FILE **)puVar2);
              free(pvVar7);
            }
            if (local_158 <= local_1a0) {
              uVar10 = *param_1;
              uVar9 = dcgettext(0,
                                "%s: end of the symbol table reached before the end of the index\n",
                                5);
              error(uVar9,uVar10);
              local_194 = 0;
              goto LAB_0004a7a7;
            }
            uVar11 = uVar11 + 1;
            printf("\t%.*s\n",local_158 - local_1a0,local_15c + local_1a0);
            uVar3 = local_158;
            sVar5 = strnlen((char *)(local_15c + local_1a0),local_158 - local_1a0);
            local_1a0 = sVar5 + 1 + local_1a0;
          } while (local_164 != 0 || (uint)-local_164 < (uint)(uVar11 < local_168));
          local_194 = 1;
          local_158 = uVar3;
        }
LAB_0004a7a7:
        if (local_140 == 0) {
          uVar11 = local_1a0 + 1 & 0xfffffffe;
        }
        else {
          uVar11 = local_1a0 + 7 & 0xfffffff8;
        }
        if (uVar11 < local_158) {
          uVar10 = *param_1;
          uVar9 = dcngettext(0,
                             "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"
                             ,
                             "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"
                             ,local_158 - uVar11,5);
          error(uVar9,uVar10,local_158 - uVar11);
          local_194 = 0;
        }
        iVar4 = fseek((FILE *)param_1[1],__off,0);
        if (iVar4 != 0) {
          uVar10 = *param_1;
          uVar9 = dcgettext(0,"%s: failed to seek back to start of object files in the archive\n",5)
          ;
          error(uVar9,uVar10);
          local_190 = 0;
          goto LAB_0004a8e3;
        }
      }
      if ((((((((((((((DAT_000b636c == 0 && DAT_000b6368 == 0) && DAT_000b6360 == 0) &&
                    DAT_000b634c == 0) && DAT_000b635c == 0) && DAT_000b6350 == 0) &&
                 DAT_000b6344 == 0) && DAT_000b6340 == 0) && DAT_000b633c == 0) && DAT_000b6338 == 0
              ) && DAT_000b6334 == 0) && DAT_000b6330 == 0) && DAT_000b632c == 0) &&
          DAT_000b6358 == 0) && DAT_000b6364 == 0) {
        local_190 = 1;
        goto LAB_0004a8e3;
      }
    }
    while( true ) {
      iVar4 = fseek((FILE *)param_1[1],local_148,0);
      if (iVar4 != 0) {
        uVar10 = *param_1;
        uVar9 = dcgettext(0,"%s: failed to seek to next archive header\n",5);
        error(uVar9,uVar10);
        return 0;
      }
      sVar5 = fread(local_13c,1,0x3c,(FILE *)param_1[1]);
      local_190 = 0;
      if (sVar5 != 0x3c) break;
      if (local_102 != 0xa60) {
        pcVar6 = "%s: did not find a valid archive header\n";
        uVar10 = local_170;
        goto LAB_0004a9ef;
      }
      local_148 = local_148 + 0x3c;
      DAT_000b754c = strtoul(local_10c,(char **)0x0,10);
      if ((DAT_000b754c & 1) != 0) {
        DAT_000b754c = DAT_000b754c + 1;
      }
      pcVar6 = (char *)FUN_00067770(&local_170,&local_100);
      if (pcVar6 == (char *)0x0) {
LAB_0004a928:
        uVar10 = *param_1;
        pcVar6 = "%s: bad archive file name\n";
LAB_0004a936:
        uVar9 = dcgettext(0,pcVar6,5);
        error(uVar9,uVar10);
        goto LAB_0004a8e3;
      }
      sVar5 = strlen(pcVar6);
      pvVar7 = (void *)FUN_000679c0(&local_170,&local_100,pcVar6);
      if (pvVar7 == (void *)0x0) goto LAB_0004a928;
      if (param_2 != 0) {
        if (local_14c == 0) {
          __ptr = (void *)FUN_00067180(*param_1,pcVar6,sVar5);
          if (__ptr == (void *)0x0) goto LAB_0004a8db;
          puVar8 = (undefined4 *)FUN_000268f0();
          if (puVar8 != (undefined4 *)0x0) {
            DAT_000b7550 = local_14c;
            *puVar8 = pvVar7;
            iVar4 = FUN_00045c20();
            uVar10 = 0;
            if (iVar4 != 0) {
              uVar10 = local_194;
            }
            FUN_0001e670();
            free(__ptr);
            goto LAB_0004a469;
          }
          uVar10 = dcgettext(0,"Input file \'%s\' is not readable.\n",5);
          error(uVar10,__ptr);
          free(__ptr);
        }
        else {
          ppvVar12 = &local_90;
          for (iVar4 = 0x1d; iVar4 != 0; iVar4 = iVar4 + -1) {
            *ppvVar12 = (void *)0x0;
            ppvVar12 = ppvVar12 + (uint)bVar13 * -2 + 1;
          }
          if (local_fc != (FILE *)0x0) {
            DAT_000b7550 = local_14c + 0x3c;
            iVar4 = fseek(local_fc,DAT_000b7550,0);
            if (iVar4 == 0) {
              local_8c = local_fc;
              local_90 = pvVar7;
              iVar4 = FUN_00045c20();
              uVar10 = 0;
              if (iVar4 != 0) {
                uVar10 = local_194;
              }
              goto LAB_0004a469;
            }
            pcVar6 = "%s: failed to seek to archive member.\n";
            uVar10 = local_100;
            goto LAB_0004a936;
          }
          uVar10 = *param_1;
          uVar9 = dcgettext(0,"%s: contains corrupt thin archive: %s\n",5);
          error(uVar9,uVar10,pcVar6);
        }
        goto LAB_0004a8e3;
      }
      DAT_000b7550 = local_148;
      local_148 = local_148 + DAT_000b754c;
      *param_1 = pvVar7;
      iVar4 = FUN_00045c20();
      uVar10 = local_194;
      if (iVar4 == 0) {
        uVar10 = 0;
      }
LAB_0004a469:
      local_194 = uVar10;
      if ((void *)param_1[0x1b] != (void *)0x0) {
        free((void *)param_1[0x1b]);
        param_1[0x1b] = 0;
        param_1[0x1c] = 0;
      }
      free(pvVar7);
    }
    if (sVar5 == 0) {
      local_190 = local_194;
    }
    else {
      uVar10 = *param_1;
      pcVar6 = "%s: failed to read archive header\n";
LAB_0004a9ef:
      uVar9 = dcgettext(0,pcVar6,5);
      error(uVar9,uVar10);
    }
  }
  else {
LAB_0004a8db:
    local_190 = 0;
  }
LAB_0004a8e3:
  local_198 = &local_100;
  if (local_fc != (FILE *)0x0) {
    fclose(local_fc);
  }
  FUN_000675d0(local_198);
  FUN_000675d0(&local_170);
  return local_190;
}

