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

void __regparm3 map_over_members(bfd *arch,_func_void_bfd_ptr *function,char **files,int count)

{
  char **ppcVar1;
  bfd *pbVar2;
  undefined4 *puVar3;
  char *pcVar4;
  int iVar5;
  char *pcVar6;
  bfd *pbVar7;
  int local_94;
  stat buf;
  
  pbVar7 = arch->archive_next;
  pbVar2 = pbVar7;
  puVar3 = (undefined4 *)PTR_stderr_00020fd4;
  if (count == 0) {
    for (; pbVar7 != (bfd *)0x0; pbVar7 = pbVar7->archive_next) {
      (*function)(pbVar7);
    }
    return;
  }
  for (; PTR_stderr_00020fd4 = (undefined *)puVar3, pbVar2 != (bfd *)0x0;
      pbVar2 = pbVar2->archive_next) {
    pbVar2->archive_pass = 0;
    puVar3 = (undefined4 *)PTR_stderr_00020fd4;
  }
  ppcVar1 = files + count;
  do {
    local_94 = 0;
    for (; pbVar7 != (bfd *)0x0; pbVar7 = pbVar7->archive_next) {
      while (pbVar7->archive_pass == 0) {
        pcVar4 = pbVar7->filename;
        if (pcVar4 != (char *)0x0) {
          if ((arch->field_0x2c & 1) == 0) {
LAB_0001630f:
            pcVar6 = *files;
            if (full_pathname == 0) {
              pcVar6 = normalize(pcVar6,arch);
            }
          }
          else {
            if (full_pathname == 0) {
              pcVar4 = normalize(pcVar4,arch);
              if (pcVar4 != (char *)0x0) goto LAB_0001630f;
              break;
            }
            pcVar6 = *files;
          }
          iVar5 = filename_cmp(pcVar6,pcVar4);
          if ((iVar5 == 0) &&
             ((local_94 = local_94 + 1, counted_name_mode == 0 || (local_94 == counted_name_counter)
              ))) {
            (*function)(pbVar7);
            pbVar7->archive_pass = 1;
            goto joined_r0x0001636b;
          }
          break;
        }
        (*pbVar7->xvec->_bfd_stat_arch_elt)(pbVar7,&buf);
        pbVar7 = pbVar7->archive_next;
        if (pbVar7 == (bfd *)0x0) goto LAB_00016395;
      }
    }
LAB_00016395:
    pcVar4 = *files;
    pcVar6 = (char *)dcgettext(0,"no entry %s in archive\n",5);
    fprintf((FILE *)*puVar3,pcVar6,pcVar4);
joined_r0x0001636b:
    if (ppcVar1 == files + 1) {
      return;
    }
    files = files + 1;
    pbVar7 = arch->archive_next;
  } while( true );
}



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

void __regparm3 FUN_00016260(int param_1,code *param_2,undefined4 *param_3,int param_4)

{
  undefined4 *puVar1;
  int *piVar2;
  undefined4 *puVar3;
  int iVar4;
  undefined4 uVar5;
  char *__format;
  int *piVar6;
  int local_94;
  undefined1 local_7c [104];
  undefined4 uStack_14;
  
  uStack_14 = 0x1626b;
  piVar6 = *(int **)(param_1 + 0x90);
  piVar2 = piVar6;
  puVar3 = (undefined4 *)PTR_stderr_00020fd4;
  if (param_4 == 0) {
    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {
      (*param_2)(piVar6);
    }
    return;
  }
  for (; PTR_stderr_00020fd4 = (undefined *)puVar3, piVar2 != (int *)0x0;
      piVar2 = (int *)piVar2[0x24]) {
    piVar2[0x1b] = 0;
    puVar3 = (undefined4 *)PTR_stderr_00020fd4;
  }
  puVar1 = param_3 + param_4;
  do {
    local_94 = 0;
    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {
      while (piVar6[0x1b] == 0) {
        iVar4 = *piVar6;
        if (iVar4 != 0) {
          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {
LAB_0001630f:
            uVar5 = *param_3;
            if (DAT_000212c4 == 0) {
              uVar5 = FUN_00016190();
            }
          }
          else {
            if (DAT_000212c4 == 0) {
              iVar4 = FUN_00016190();
              if (iVar4 != 0) goto LAB_0001630f;
              break;
            }
            uVar5 = *param_3;
          }
          iVar4 = filename_cmp(uVar5,iVar4);
          if ((iVar4 == 0) &&
             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {
            (*param_2)(piVar6);
            piVar6[0x1b] = 1;
            goto joined_r0x0001636b;
          }
          break;
        }
        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);
        piVar6 = (int *)piVar6[0x24];
        if (piVar6 == (int *)0x0) goto LAB_00016395;
      }
    }
LAB_00016395:
    uVar5 = *param_3;
    __format = (char *)dcgettext(0,"no entry %s in archive\n",5);
    fprintf((FILE *)*puVar3,__format,uVar5);
joined_r0x0001636b:
    if (puVar1 == param_3 + 1) {
      return;
    }
    param_3 = param_3 + 1;
    piVar6 = *(int **)(param_1 + 0x90);
  } while( true );
}


PUSH EBP
PUSH EDI
PUSH ESI
MOV ESI,EAX
PUSH EBX
CALL 0x00013710
ADD EBX,0xad95
SUB ESP,0x8c
MOV EBP,dword ptr [ESI + 0x90]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0xa0]
MOV dword ptr [ESP + 0x18],EDX
TEST EAX,EAX
JZ 0x00016407
MOV EDI,ECX
MOV ESI,EBP
TEST EBP,EBP
JZ 0x000162b1
LEA ESI,[ESI]
MOV dword ptr [EBP + 0x6c],0x0
MOV EBP,dword ptr [EBP + 0x90]
TEST EBP,EBP
JNZ 0x000162a0
LEA EAX,[EDI + EAX*0x4]
MOV EBP,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x14],EAX
LEA EAX,[ESP + 0x20]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [EBX + 0xffffffd4]
MOV dword ptr [ESP + 0x1c],EAX
JMP 0x00016373
MOV ECX,dword ptr [ESI]
TEST ECX,ECX
JZ 0x000163d8
MOV EDX,dword ptr [EBX + 0x2c4]
TEST byte ptr [EBP + 0x2c],0x1
JZ 0x0001630f
TEST EDX,EDX
JNZ 0x00016400
MOV EAX,ECX
MOV EDX,EBP
CALL 0x00016190
MOV ECX,EAX
TEST EAX,EAX
JZ 0x0001638b
MOV EDX,dword ptr [EBX + 0x2c4]
MOV EAX,dword ptr [EDI]
TEST EDX,EDX
JNZ 0x00016324
MOV EDX,EBP
MOV dword ptr [ESP + 0xc],ECX
CALL 0x00016190
MOV ECX,dword ptr [ESP + 0xc]
SUB ESP,0x8
PUSH ECX
PUSH EAX
CALL 0x00012130
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0001638b
MOV EDX,dword ptr [EBX + 0x2d0]
ADD dword ptr [ESP + 0x8],0x1
MOV EAX,dword ptr [ESP + 0x8]
TEST EDX,EDX
JZ 0x00016350
CMP EAX,dword ptr [EBX + 0x2cc]
JNZ 0x0001638b
SUB ESP,0xc
ADD EDI,0x4
PUSH ESI
MOV EAX,dword ptr [ESP + 0x28]
CALL EAX
MOV dword ptr [ESI + 0x6c],0x1
ADD ESP,0x10
CMP dword ptr [ESP + 0x14],EDI
JZ 0x000163c6
MOV ESI,dword ptr [EBP + 0x90]
MOV dword ptr [ESP + 0x8],0x0
TEST ESI,ESI
JZ 0x00016395
NOP
MOV ECX,dword ptr [ESI + 0x6c]
TEST ECX,ECX
JZ 0x000162d8
MOV ESI,dword ptr [ESI + 0x90]
TEST ESI,ESI
JNZ 0x00016380
SUB ESP,0x4
LEA EAX,[EBX + 0xffffa0ee]
MOV ESI,dword ptr [EDI]
ADD EDI,0x4
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00012180
ADD ESP,0xc
PUSH ESI
PUSH EAX
MOV EAX,dword ptr [ESP + 0x28]
PUSH dword ptr [EAX]
CALL 0x00012390
ADD ESP,0x10
CMP dword ptr [ESP + 0x14],EDI
JNZ 0x0001636d
ADD ESP,0x8c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
MOV EAX,dword ptr [ESI + 0x4]
PUSH dword ptr [ESP + 0x18]
PUSH ESI
CALL dword ptr [EAX + 0xfc]
MOV ESI,dword ptr [ESI + 0x90]
ADD ESP,0x10
TEST ESI,ESI
JNZ 0x00016380
JMP 0x00016395
MOV EAX,dword ptr [EDI]
JMP 0x00016324
TEST EBP,EBP
JZ 0x000163c6
MOV EBX,dword ptr [ESP + 0x18]
NOP
SUB ESP,0xc
PUSH EBP
CALL EBX
MOV EBP,dword ptr [EBP + 0x90]
ADD ESP,0x10
TEST EBP,EBP
JNZ 0x00016410
JMP 0x000163c6
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n\nvoid __regparm3 FUN_00016260(int param_1,code *param_2,undefined4 *param_3,int param_4)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  undefined4 uVar5;\n  char *__format;\n  int *piVar6;\n  int local_94;\n  undefined1 local_7c [104];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1626b;\n  piVar6 = *(int **)(param_1 + 0x90);\n  piVar2 = piVar6;\n  puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  if (param_4 == 0) {\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      (*param_2)(piVar6);\n    }\n    return;\n  }\n  for (; PTR_stderr_00020fd4 = (undefined *)puVar3, piVar2 != (int *)0x0;\n      piVar2 = (int *)piVar2[0x24]) {\n    piVar2[0x1b] = 0;\n    puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  }\n  puVar1 = param_3 + param_4;\n  do {\n    local_94 = 0;\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }\nLAB_00016395:\n    uVar5 = *param_3;\n    __format = (char *)dcgettext(0,"no entry %s in archive\n",5);\n    fprintf((FILE *)*puVar3,__format,uVar5);\njoined_r0x0001636b:\n    if (puVar1 == param_3 + 1) {\n      return;\n    }\n    param_3 = param_3 + 1;\n    piVar6 = *(int **)(param_1 + 0x90);\n  } while( true );\n}\n\n" comment comment (function_definition "void __regparm3 FUN_00016260(int param_1,code *param_2,undefined4 *param_3,int param_4)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  undefined4 uVar5;\n  char *__format;\n  int *piVar6;\n  int local_94;\n  undefined1 local_7c [104];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1626b;\n  piVar6 = *(int **)(param_1 + 0x90);\n  piVar2 = piVar6;\n  puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  if (param_4 == 0) {\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      (*param_2)(piVar6);\n    }\n    return;\n  }\n  for (; PTR_stderr_00020fd4 = (undefined *)puVar3, piVar2 != (int *)0x0;\n      piVar2 = (int *)piVar2[0x24]) {\n    piVar2[0x1b] = 0;\n    puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  }\n  puVar1 = param_3 + param_4;\n  do {\n    local_94 = 0;\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }\nLAB_00016395:\n    uVar5 = *param_3;\n    __format = (char *)dcgettext(0,"no entry %s in archive\n",5);\n    fprintf((FILE *)*puVar3,__format,uVar5);\njoined_r0x0001636b:\n    if (puVar1 == param_3 + 1) {\n      return;\n    }\n    param_3 = param_3 + 1;\n    piVar6 = *(int **)(param_1 + 0x90);\n  } while( true );\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00016260(int param_1,code *param_2,undefined4 *param_3,int param_4)" identifier (parameter_list "(int param_1,code *param_2,undefined4 *param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "code *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  undefined4 uVar5;\n  char *__format;\n  int *piVar6;\n  int local_94;\n  undefined1 local_7c [104];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1626b;\n  piVar6 = *(int **)(param_1 + 0x90);\n  piVar2 = piVar6;\n  puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  if (param_4 == 0) {\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      (*param_2)(piVar6);\n    }\n    return;\n  }\n  for (; PTR_stderr_00020fd4 = (undefined *)puVar3, piVar2 != (int *)0x0;\n      piVar2 = (int *)piVar2[0x24]) {\n    piVar2[0x1b] = 0;\n    puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  }\n  puVar1 = param_3 + param_4;\n  do {\n    local_94 = 0;\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }\nLAB_00016395:\n    uVar5 = *param_3;\n    __format = (char *)dcgettext(0,"no entry %s in archive\n",5);\n    fprintf((FILE *)*puVar3,__format,uVar5);\njoined_r0x0001636b:\n    if (puVar1 == param_3 + 1) {\n      return;\n    }\n    param_3 = param_3 + 1;\n    piVar6 = *(int **)(param_1 + 0x90);\n  } while( true );\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "undefined1 local_7c [104];" type_identifier (array_declarator "local_7c [104]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1626b;" (assignment_expression "uStack_14 = 0x1626b" identifier = number_literal) ;) (expression_statement "piVar6 = *(int **)(param_1 + 0x90);" (assignment_expression "piVar6 = *(int **)(param_1 + 0x90)" identifier = (pointer_expression "*(int **)(param_1 + 0x90)" * (cast_expression "(int **)(param_1 + 0x90)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "piVar2 = piVar6;" (assignment_expression "piVar2 = piVar6" identifier = identifier) ;) (expression_statement "puVar3 = (undefined4 *)PTR_stderr_00020fd4;" (assignment_expression "puVar3 = (undefined4 *)PTR_stderr_00020fd4" identifier = (cast_expression "(undefined4 *)PTR_stderr_00020fd4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (param_4 == 0) {\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      (*param_2)(piVar6);\n    }\n    return;\n  }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      (*param_2)(piVar6);\n    }\n    return;\n  }" { (for_statement "for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      (*param_2)(piVar6);\n    }" for ( ; (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar6 = (int *)piVar6[0x24]" identifier = (cast_expression "(int *)piVar6[0x24]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar6[0x24]" identifier [ number_literal ]))) ) (compound_statement "{\n      (*param_2)(piVar6);\n    }" { (expression_statement "(*param_2)(piVar6);" (call_expression "(*param_2)(piVar6)" (parenthesized_expression "(*param_2)" ( (pointer_expression "*param_2" * identifier) )) (argument_list "(piVar6)" ( identifier ))) ;) })) (return_statement "return;" return ;) })) (for_statement "for (; PTR_stderr_00020fd4 = (undefined *)puVar3, piVar2 != (int *)0x0;\n      piVar2 = (int *)piVar2[0x24]) {\n    piVar2[0x1b] = 0;\n    puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  }" for ( ; (comma_expression "PTR_stderr_00020fd4 = (undefined *)puVar3, piVar2 != (int *)0x0" (assignment_expression "PTR_stderr_00020fd4 = (undefined *)puVar3" identifier = (cast_expression "(undefined *)puVar3" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "piVar2 = (int *)piVar2[0x24]" identifier = (cast_expression "(int *)piVar2[0x24]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[0x24]" identifier [ number_literal ]))) ) (compound_statement "{\n    piVar2[0x1b] = 0;\n    puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  }" { (expression_statement "piVar2[0x1b] = 0;" (assignment_expression "piVar2[0x1b] = 0" (subscript_expression "piVar2[0x1b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3 = (undefined4 *)PTR_stderr_00020fd4;" (assignment_expression "puVar3 = (undefined4 *)PTR_stderr_00020fd4" identifier = (cast_expression "(undefined4 *)PTR_stderr_00020fd4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "puVar1 = param_3 + param_4;" (assignment_expression "puVar1 = param_3 + param_4" identifier = (binary_expression "param_3 + param_4" identifier + identifier)) ;) (do_statement "do {\n    local_94 = 0;\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }\nLAB_00016395:\n    uVar5 = *param_3;\n    __format = (char *)dcgettext(0,"no entry %s in archive\n",5);\n    fprintf((FILE *)*puVar3,__format,uVar5);\njoined_r0x0001636b:\n    if (puVar1 == param_3 + 1) {\n      return;\n    }\n    param_3 = param_3 + 1;\n    piVar6 = *(int **)(param_1 + 0x90);\n  } while( true );" do (compound_statement "{\n    local_94 = 0;\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }\nLAB_00016395:\n    uVar5 = *param_3;\n    __format = (char *)dcgettext(0,"no entry %s in archive\n",5);\n    fprintf((FILE *)*puVar3,__format,uVar5);\njoined_r0x0001636b:\n    if (puVar1 == param_3 + 1) {\n      return;\n    }\n    param_3 = param_3 + 1;\n    piVar6 = *(int **)(param_1 + 0x90);\n  }" { (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (for_statement "for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }" for ( ; (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar6 = (int *)piVar6[0x24]" identifier = (cast_expression "(int *)piVar6[0x24]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar6[0x24]" identifier [ number_literal ]))) ) (compound_statement "{\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }" { (while_statement "while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }" while (parenthesized_expression "(piVar6[0x1b] == 0)" ( (binary_expression "piVar6[0x1b] == 0" (subscript_expression "piVar6[0x1b]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }" { (expression_statement "iVar4 = *piVar6;" (assignment_expression "iVar4 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (if_statement "if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }" { (if_statement "if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }" if (parenthesized_expression "((*(byte *)(param_1 + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2c) & 1)" ( (binary_expression "*(byte *)(param_1 + 0x2c) & 1" (pointer_expression "*(byte *)(param_1 + 0x2c)" * (cast_expression "(byte *)(param_1 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }" { (labeled_statement "LAB_0001630f:\n            uVar5 = *param_3;" statement_identifier : (expression_statement "uVar5 = *param_3;" (assignment_expression "uVar5 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;)) (if_statement "if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }" if (parenthesized_expression "(DAT_000212c4 == 0)" ( (binary_expression "DAT_000212c4 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar5 = FUN_00016190();\n            }" { (expression_statement "uVar5 = FUN_00016190();" (assignment_expression "uVar5 = FUN_00016190()" identifier = (call_expression "FUN_00016190()" identifier (argument_list "()" ( )))) ;) })) }) (else_clause "else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }" else (compound_statement "{\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }" { (if_statement "if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }" if (parenthesized_expression "(DAT_000212c4 == 0)" ( (binary_expression "DAT_000212c4 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }" { (expression_statement "iVar4 = FUN_00016190();" (assignment_expression "iVar4 = FUN_00016190()" identifier = (call_expression "FUN_00016190()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 0) goto LAB_0001630f;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001630f;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "uVar5 = *param_3;" (assignment_expression "uVar5 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) }))) (expression_statement "iVar4 = filename_cmp(uVar5,iVar4);" (assignment_expression "iVar4 = filename_cmp(uVar5,iVar4)" identifier = (call_expression "filename_cmp(uVar5,iVar4)" identifier (argument_list "(uVar5,iVar4)" ( identifier , identifier )))) ;) (if_statement "if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }" if (parenthesized_expression "((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc))))" ( (binary_expression "(iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) && (parenthesized_expression "((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))" ( (parenthesized_expression "(local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc))" ( (comma_expression "local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)" (assignment_expression "local_94 = local_94 + 1" identifier = (binary_expression "local_94 + 1" identifier + number_literal)) , (binary_expression "DAT_000212d0 == 0 || (local_94 == DAT_000212cc)" (binary_expression "DAT_000212d0 == 0" identifier == number_literal) || (parenthesized_expression "(local_94 == DAT_000212cc)" ( (binary_expression "local_94 == DAT_000212cc" identifier == identifier) )))) )) ))) )) (compound_statement "{\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }" { (expression_statement "(*param_2)(piVar6);" (call_expression "(*param_2)(piVar6)" (parenthesized_expression "(*param_2)" ( (pointer_expression "*param_2" * identifier) )) (argument_list "(piVar6)" ( identifier ))) ;) (expression_statement "piVar6[0x1b] = 1;" (assignment_expression "piVar6[0x1b] = 1" (subscript_expression "piVar6[0x1b]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto joined_r0x0001636b;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "(**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);" (call_expression "(**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c)" (parenthesized_expression "(**(code **)(piVar6[1] + 0xfc))" ( (pointer_expression "**(code **)(piVar6[1] + 0xfc)" * (pointer_expression "*(code **)(piVar6[1] + 0xfc)" * (cast_expression "(code **)(piVar6[1] + 0xfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar6[1] + 0xfc)" ( (binary_expression "piVar6[1] + 0xfc" (subscript_expression "piVar6[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar6,local_7c)" ( identifier , identifier ))) ;) (expression_statement "piVar6 = (int *)piVar6[0x24];" (assignment_expression "piVar6 = (int *)piVar6[0x24]" identifier = (cast_expression "(int *)piVar6[0x24]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar6[0x24]" identifier [ number_literal ]))) ;) (if_statement "if (piVar6 == (int *)0x0) goto LAB_00016395;" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00016395;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_00016395:\n    uVar5 = *param_3;" statement_identifier : (expression_statement "uVar5 = *param_3;" (assignment_expression "uVar5 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;)) (expression_statement "__format = (char *)dcgettext(0,"no entry %s in archive\n",5);" (assignment_expression "__format = (char *)dcgettext(0,"no entry %s in archive\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"no entry %s in archive\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"no entry %s in archive\n",5)" identifier (argument_list "(0,"no entry %s in archive\n",5)" ( number_literal , (string_literal ""no entry %s in archive\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf((FILE *)*puVar3,__format,uVar5);" (call_expression "fprintf((FILE *)*puVar3,__format,uVar5)" identifier (argument_list "((FILE *)*puVar3,__format,uVar5)" ( (cast_expression "(FILE *)*puVar3" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier)) , identifier , identifier ))) ;) (labeled_statement "joined_r0x0001636b:\n    if (puVar1 == param_3 + 1) {\n      return;\n    }" statement_identifier : (if_statement "if (puVar1 == param_3 + 1) {\n      return;\n    }" if (parenthesized_expression "(puVar1 == param_3 + 1)" ( (binary_expression "puVar1 == param_3 + 1" identifier == (binary_expression "param_3 + 1" identifier + number_literal)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) }))) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "piVar6 = *(int **)(param_1 + 0x90);" (assignment_expression "piVar6 = *(int **)(param_1 + 0x90)" identifier = (pointer_expression "*(int **)(param_1 + 0x90)" * (cast_expression "(int **)(param_1 + 0x90)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 map_over_members(bfd *arch,_func_void_bfd_ptr *function,char **files,int count)\n\n{\n  char **ppcVar1;\n  bfd *pbVar2;\n  undefined4 *puVar3;\n  char *pcVar4;\n  int iVar5;\n  char *pcVar6;\n  bfd *pbVar7;\n  int local_94;\n  stat buf;\n  \n  pbVar7 = arch->archive_next;\n  pbVar2 = pbVar7;\n  puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  if (count == 0) {\n    for (; pbVar7 != (bfd *)0x0; pbVar7 = pbVar7->archive_next) {\n      (*function)(pbVar7);\n    }\n    return;\n  }\n  for (; PTR_stderr_00020fd4 = (undefined *)puVar3, pbVar2 != (bfd *)0x0;\n      pbVar2 = pbVar2->archive_next) {\n    pbVar2->archive_pass = 0;\n    puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  }\n  ppcVar1 = files + count;\n  do {\n    local_94 = 0;\n    for (; pbVar7 != (bfd *)0x0; pbVar7 = pbVar7->archive_next) {\n      while (pbVar7->archive_pass == 0) {\n        pcVar4 = pbVar7->filename;\n        if (pcVar4 != (char *)0x0) {\n          if ((arch->field_0x2c & 1) == 0) {\nLAB_0001630f:\n            pcVar6 = *files;\n            if (full_pathname == 0) {\n              pcVar6 = normalize(pcVar6,arch);\n            }\n          }\n          else {\n            if (full_pathname == 0) {\n              pcVar4 = normalize(pcVar4,arch);\n              if (pcVar4 != (char *)0x0) goto LAB_0001630f;\n              break;\n            }\n            pcVar6 = *files;\n          }\n          iVar5 = filename_cmp(pcVar6,pcVar4);\n          if ((iVar5 == 0) &&\n             ((local_94 = local_94 + 1, counted_name_mode == 0 || (local_94 == counted_name_counter)\n              ))) {\n            (*function)(pbVar7);\n            pbVar7->archive_pass = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (*pbVar7->xvec->_bfd_stat_arch_elt)(pbVar7,&buf);\n        pbVar7 = pbVar7->archive_next;\n        if (pbVar7 == (bfd *)0x0) goto LAB_00016395;\n      }\n    }\nLAB_00016395:\n    pcVar4 = *files;\n    pcVar6 = (char *)dcgettext(0,"no entry %s in archive\n",5);\n    fprintf((FILE *)*puVar3,pcVar6,pcVar4);\njoined_r0x0001636b:\n    if (ppcVar1 == files + 1) {\n      return;\n    }\n    files = files + 1;\n    pbVar7 = arch->archive_next;\n  } while( true );\n}\n\n" comment (function_definition "void __regparm3 map_over_members(bfd *arch,_func_void_bfd_ptr *function,char **files,int count)\n\n{\n  char **ppcVar1;\n  bfd *pbVar2;\n  undefined4 *puVar3;\n  char *pcVar4;\n  int iVar5;\n  char *pcVar6;\n  bfd *pbVar7;\n  int local_94;\n  stat buf;\n  \n  pbVar7 = arch->archive_next;\n  pbVar2 = pbVar7;\n  puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  if (count == 0) {\n    for (; pbVar7 != (bfd *)0x0; pbVar7 = pbVar7->archive_next) {\n      (*function)(pbVar7);\n    }\n    return;\n  }\n  for (; PTR_stderr_00020fd4 = (undefined *)puVar3, pbVar2 != (bfd *)0x0;\n      pbVar2 = pbVar2->archive_next) {\n    pbVar2->archive_pass = 0;\n    puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  }\n  ppcVar1 = files + count;\n  do {\n    local_94 = 0;\n    for (; pbVar7 != (bfd *)0x0; pbVar7 = pbVar7->archive_next) {\n      while (pbVar7->archive_pass == 0) {\n        pcVar4 = pbVar7->filename;\n        if (pcVar4 != (char *)0x0) {\n          if ((arch->field_0x2c & 1) == 0) {\nLAB_0001630f:\n            pcVar6 = *files;\n            if (full_pathname == 0) {\n              pcVar6 = normalize(pcVar6,arch);\n            }\n          }\n          else {\n            if (full_pathname == 0) {\n              pcVar4 = normalize(pcVar4,arch);\n              if (pcVar4 != (char *)0x0) goto LAB_0001630f;\n              break;\n            }\n            pcVar6 = *files;\n          }\n          iVar5 = filename_cmp(pcVar6,pcVar4);\n          if ((iVar5 == 0) &&\n             ((local_94 = local_94 + 1, counted_name_mode == 0 || (local_94 == counted_name_counter)\n              ))) {\n            (*function)(pbVar7);\n            pbVar7->archive_pass = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (*pbVar7->xvec->_bfd_stat_arch_elt)(pbVar7,&buf);\n        pbVar7 = pbVar7->archive_next;\n        if (pbVar7 == (bfd *)0x0) goto LAB_00016395;\n      }\n    }\nLAB_00016395:\n    pcVar4 = *files;\n    pcVar6 = (char *)dcgettext(0,"no entry %s in archive\n",5);\n    fprintf((FILE *)*puVar3,pcVar6,pcVar4);\njoined_r0x0001636b:\n    if (ppcVar1 == files + 1) {\n      return;\n    }\n    files = files + 1;\n    pbVar7 = arch->archive_next;\n  } while( true );\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "map_over_members(bfd *arch,_func_void_bfd_ptr *function,char **files,int count)" identifier (parameter_list "(bfd *arch,_func_void_bfd_ptr *function,char **files,int count)" ( (parameter_declaration "bfd *arch" type_identifier (pointer_declarator "*arch" * identifier)) , (parameter_declaration "_func_void_bfd_ptr *function" type_identifier (pointer_declarator "*function" * identifier)) , (parameter_declaration "char **files" primitive_type (pointer_declarator "**files" * (pointer_declarator "*files" * identifier))) , (parameter_declaration "int count" primitive_type identifier) ))) (compound_statement "{\n  char **ppcVar1;\n  bfd *pbVar2;\n  undefined4 *puVar3;\n  char *pcVar4;\n  int iVar5;\n  char *pcVar6;\n  bfd *pbVar7;\n  int local_94;\n  stat buf;\n  \n  pbVar7 = arch->archive_next;\n  pbVar2 = pbVar7;\n  puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  if (count == 0) {\n    for (; pbVar7 != (bfd *)0x0; pbVar7 = pbVar7->archive_next) {\n      (*function)(pbVar7);\n    }\n    return;\n  }\n  for (; PTR_stderr_00020fd4 = (undefined *)puVar3, pbVar2 != (bfd *)0x0;\n      pbVar2 = pbVar2->archive_next) {\n    pbVar2->archive_pass = 0;\n    puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  }\n  ppcVar1 = files + count;\n  do {\n    local_94 = 0;\n    for (; pbVar7 != (bfd *)0x0; pbVar7 = pbVar7->archive_next) {\n      while (pbVar7->archive_pass == 0) {\n        pcVar4 = pbVar7->filename;\n        if (pcVar4 != (char *)0x0) {\n          if ((arch->field_0x2c & 1) == 0) {\nLAB_0001630f:\n            pcVar6 = *files;\n            if (full_pathname == 0) {\n              pcVar6 = normalize(pcVar6,arch);\n            }\n          }\n          else {\n            if (full_pathname == 0) {\n              pcVar4 = normalize(pcVar4,arch);\n              if (pcVar4 != (char *)0x0) goto LAB_0001630f;\n              break;\n            }\n            pcVar6 = *files;\n          }\n          iVar5 = filename_cmp(pcVar6,pcVar4);\n          if ((iVar5 == 0) &&\n             ((local_94 = local_94 + 1, counted_name_mode == 0 || (local_94 == counted_name_counter)\n              ))) {\n            (*function)(pbVar7);\n            pbVar7->archive_pass = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (*pbVar7->xvec->_bfd_stat_arch_elt)(pbVar7,&buf);\n        pbVar7 = pbVar7->archive_next;\n        if (pbVar7 == (bfd *)0x0) goto LAB_00016395;\n      }\n    }\nLAB_00016395:\n    pcVar4 = *files;\n    pcVar6 = (char *)dcgettext(0,"no entry %s in archive\n",5);\n    fprintf((FILE *)*puVar3,pcVar6,pcVar4);\njoined_r0x0001636b:\n    if (ppcVar1 == files + 1) {\n      return;\n    }\n    files = files + 1;\n    pbVar7 = arch->archive_next;\n  } while( true );\n}" { (declaration "char **ppcVar1;" primitive_type (pointer_declarator "**ppcVar1" * (pointer_declarator "*ppcVar1" * identifier)) ;) (declaration "bfd *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "bfd *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "stat buf;" type_identifier identifier ;) (expression_statement "pbVar7 = arch->archive_next;" (assignment_expression "pbVar7 = arch->archive_next" identifier = (field_expression "arch->archive_next" identifier -> field_identifier)) ;) (expression_statement "pbVar2 = pbVar7;" (assignment_expression "pbVar2 = pbVar7" identifier = identifier) ;) (expression_statement "puVar3 = (undefined4 *)PTR_stderr_00020fd4;" (assignment_expression "puVar3 = (undefined4 *)PTR_stderr_00020fd4" identifier = (cast_expression "(undefined4 *)PTR_stderr_00020fd4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (count == 0) {\n    for (; pbVar7 != (bfd *)0x0; pbVar7 = pbVar7->archive_next) {\n      (*function)(pbVar7);\n    }\n    return;\n  }" if (parenthesized_expression "(count == 0)" ( (binary_expression "count == 0" identifier == number_literal) )) (compound_statement "{\n    for (; pbVar7 != (bfd *)0x0; pbVar7 = pbVar7->archive_next) {\n      (*function)(pbVar7);\n    }\n    return;\n  }" { (for_statement "for (; pbVar7 != (bfd *)0x0; pbVar7 = pbVar7->archive_next) {\n      (*function)(pbVar7);\n    }" for ( ; (binary_expression "pbVar7 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pbVar7 = pbVar7->archive_next" identifier = (field_expression "pbVar7->archive_next" identifier -> field_identifier)) ) (compound_statement "{\n      (*function)(pbVar7);\n    }" { (expression_statement "(*function)(pbVar7);" (call_expression "(*function)(pbVar7)" (parenthesized_expression "(*function)" ( (pointer_expression "*function" * identifier) )) (argument_list "(pbVar7)" ( identifier ))) ;) })) (return_statement "return;" return ;) })) (for_statement "for (; PTR_stderr_00020fd4 = (undefined *)puVar3, pbVar2 != (bfd *)0x0;\n      pbVar2 = pbVar2->archive_next) {\n    pbVar2->archive_pass = 0;\n    puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  }" for ( ; (comma_expression "PTR_stderr_00020fd4 = (undefined *)puVar3, pbVar2 != (bfd *)0x0" (assignment_expression "PTR_stderr_00020fd4 = (undefined *)puVar3" identifier = (cast_expression "(undefined *)puVar3" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "pbVar2 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "pbVar2 = pbVar2->archive_next" identifier = (field_expression "pbVar2->archive_next" identifier -> field_identifier)) ) (compound_statement "{\n    pbVar2->archive_pass = 0;\n    puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  }" { (expression_statement "pbVar2->archive_pass = 0;" (assignment_expression "pbVar2->archive_pass = 0" (field_expression "pbVar2->archive_pass" identifier -> field_identifier) = number_literal) ;) (expression_statement "puVar3 = (undefined4 *)PTR_stderr_00020fd4;" (assignment_expression "puVar3 = (undefined4 *)PTR_stderr_00020fd4" identifier = (cast_expression "(undefined4 *)PTR_stderr_00020fd4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "ppcVar1 = files + count;" (assignment_expression "ppcVar1 = files + count" identifier = (binary_expression "files + count" identifier + identifier)) ;) (do_statement "do {\n    local_94 = 0;\n    for (; pbVar7 != (bfd *)0x0; pbVar7 = pbVar7->archive_next) {\n      while (pbVar7->archive_pass == 0) {\n        pcVar4 = pbVar7->filename;\n        if (pcVar4 != (char *)0x0) {\n          if ((arch->field_0x2c & 1) == 0) {\nLAB_0001630f:\n            pcVar6 = *files;\n            if (full_pathname == 0) {\n              pcVar6 = normalize(pcVar6,arch);\n            }\n          }\n          else {\n            if (full_pathname == 0) {\n              pcVar4 = normalize(pcVar4,arch);\n              if (pcVar4 != (char *)0x0) goto LAB_0001630f;\n              break;\n            }\n            pcVar6 = *files;\n          }\n          iVar5 = filename_cmp(pcVar6,pcVar4);\n          if ((iVar5 == 0) &&\n             ((local_94 = local_94 + 1, counted_name_mode == 0 || (local_94 == counted_name_counter)\n              ))) {\n            (*function)(pbVar7);\n            pbVar7->archive_pass = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (*pbVar7->xvec->_bfd_stat_arch_elt)(pbVar7,&buf);\n        pbVar7 = pbVar7->archive_next;\n        if (pbVar7 == (bfd *)0x0) goto LAB_00016395;\n      }\n    }\nLAB_00016395:\n    pcVar4 = *files;\n    pcVar6 = (char *)dcgettext(0,"no entry %s in archive\n",5);\n    fprintf((FILE *)*puVar3,pcVar6,pcVar4);\njoined_r0x0001636b:\n    if (ppcVar1 == files + 1) {\n      return;\n    }\n    files = files + 1;\n    pbVar7 = arch->archive_next;\n  } while( true );" do (compound_statement "{\n    local_94 = 0;\n    for (; pbVar7 != (bfd *)0x0; pbVar7 = pbVar7->archive_next) {\n      while (pbVar7->archive_pass == 0) {\n        pcVar4 = pbVar7->filename;\n        if (pcVar4 != (char *)0x0) {\n          if ((arch->field_0x2c & 1) == 0) {\nLAB_0001630f:\n            pcVar6 = *files;\n            if (full_pathname == 0) {\n              pcVar6 = normalize(pcVar6,arch);\n            }\n          }\n          else {\n            if (full_pathname == 0) {\n              pcVar4 = normalize(pcVar4,arch);\n              if (pcVar4 != (char *)0x0) goto LAB_0001630f;\n              break;\n            }\n            pcVar6 = *files;\n          }\n          iVar5 = filename_cmp(pcVar6,pcVar4);\n          if ((iVar5 == 0) &&\n             ((local_94 = local_94 + 1, counted_name_mode == 0 || (local_94 == counted_name_counter)\n              ))) {\n            (*function)(pbVar7);\n            pbVar7->archive_pass = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (*pbVar7->xvec->_bfd_stat_arch_elt)(pbVar7,&buf);\n        pbVar7 = pbVar7->archive_next;\n        if (pbVar7 == (bfd *)0x0) goto LAB_00016395;\n      }\n    }\nLAB_00016395:\n    pcVar4 = *files;\n    pcVar6 = (char *)dcgettext(0,"no entry %s in archive\n",5);\n    fprintf((FILE *)*puVar3,pcVar6,pcVar4);\njoined_r0x0001636b:\n    if (ppcVar1 == files + 1) {\n      return;\n    }\n    files = files + 1;\n    pbVar7 = arch->archive_next;\n  }" { (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (for_statement "for (; pbVar7 != (bfd *)0x0; pbVar7 = pbVar7->archive_next) {\n      while (pbVar7->archive_pass == 0) {\n        pcVar4 = pbVar7->filename;\n        if (pcVar4 != (char *)0x0) {\n          if ((arch->field_0x2c & 1) == 0) {\nLAB_0001630f:\n            pcVar6 = *files;\n            if (full_pathname == 0) {\n              pcVar6 = normalize(pcVar6,arch);\n            }\n          }\n          else {\n            if (full_pathname == 0) {\n              pcVar4 = normalize(pcVar4,arch);\n              if (pcVar4 != (char *)0x0) goto LAB_0001630f;\n              break;\n            }\n            pcVar6 = *files;\n          }\n          iVar5 = filename_cmp(pcVar6,pcVar4);\n          if ((iVar5 == 0) &&\n             ((local_94 = local_94 + 1, counted_name_mode == 0 || (local_94 == counted_name_counter)\n              ))) {\n            (*function)(pbVar7);\n            pbVar7->archive_pass = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (*pbVar7->xvec->_bfd_stat_arch_elt)(pbVar7,&buf);\n        pbVar7 = pbVar7->archive_next;\n        if (pbVar7 == (bfd *)0x0) goto LAB_00016395;\n      }\n    }" for ( ; (binary_expression "pbVar7 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pbVar7 = pbVar7->archive_next" identifier = (field_expression "pbVar7->archive_next" identifier -> field_identifier)) ) (compound_statement "{\n      while (pbVar7->archive_pass == 0) {\n        pcVar4 = pbVar7->filename;\n        if (pcVar4 != (char *)0x0) {\n          if ((arch->field_0x2c & 1) == 0) {\nLAB_0001630f:\n            pcVar6 = *files;\n            if (full_pathname == 0) {\n              pcVar6 = normalize(pcVar6,arch);\n            }\n          }\n          else {\n            if (full_pathname == 0) {\n              pcVar4 = normalize(pcVar4,arch);\n              if (pcVar4 != (char *)0x0) goto LAB_0001630f;\n              break;\n            }\n            pcVar6 = *files;\n          }\n          iVar5 = filename_cmp(pcVar6,pcVar4);\n          if ((iVar5 == 0) &&\n             ((local_94 = local_94 + 1, counted_name_mode == 0 || (local_94 == counted_name_counter)\n              ))) {\n            (*function)(pbVar7);\n            pbVar7->archive_pass = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (*pbVar7->xvec->_bfd_stat_arch_elt)(pbVar7,&buf);\n        pbVar7 = pbVar7->archive_next;\n        if (pbVar7 == (bfd *)0x0) goto LAB_00016395;\n      }\n    }" { (while_statement "while (pbVar7->archive_pass == 0) {\n        pcVar4 = pbVar7->filename;\n        if (pcVar4 != (char *)0x0) {\n          if ((arch->field_0x2c & 1) == 0) {\nLAB_0001630f:\n            pcVar6 = *files;\n            if (full_pathname == 0) {\n              pcVar6 = normalize(pcVar6,arch);\n            }\n          }\n          else {\n            if (full_pathname == 0) {\n              pcVar4 = normalize(pcVar4,arch);\n              if (pcVar4 != (char *)0x0) goto LAB_0001630f;\n              break;\n            }\n            pcVar6 = *files;\n          }\n          iVar5 = filename_cmp(pcVar6,pcVar4);\n          if ((iVar5 == 0) &&\n             ((local_94 = local_94 + 1, counted_name_mode == 0 || (local_94 == counted_name_counter)\n              ))) {\n            (*function)(pbVar7);\n            pbVar7->archive_pass = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (*pbVar7->xvec->_bfd_stat_arch_elt)(pbVar7,&buf);\n        pbVar7 = pbVar7->archive_next;\n        if (pbVar7 == (bfd *)0x0) goto LAB_00016395;\n      }" while (parenthesized_expression "(pbVar7->archive_pass == 0)" ( (binary_expression "pbVar7->archive_pass == 0" (field_expression "pbVar7->archive_pass" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        pcVar4 = pbVar7->filename;\n        if (pcVar4 != (char *)0x0) {\n          if ((arch->field_0x2c & 1) == 0) {\nLAB_0001630f:\n            pcVar6 = *files;\n            if (full_pathname == 0) {\n              pcVar6 = normalize(pcVar6,arch);\n            }\n          }\n          else {\n            if (full_pathname == 0) {\n              pcVar4 = normalize(pcVar4,arch);\n              if (pcVar4 != (char *)0x0) goto LAB_0001630f;\n              break;\n            }\n            pcVar6 = *files;\n          }\n          iVar5 = filename_cmp(pcVar6,pcVar4);\n          if ((iVar5 == 0) &&\n             ((local_94 = local_94 + 1, counted_name_mode == 0 || (local_94 == counted_name_counter)\n              ))) {\n            (*function)(pbVar7);\n            pbVar7->archive_pass = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (*pbVar7->xvec->_bfd_stat_arch_elt)(pbVar7,&buf);\n        pbVar7 = pbVar7->archive_next;\n        if (pbVar7 == (bfd *)0x0) goto LAB_00016395;\n      }" { (expression_statement "pcVar4 = pbVar7->filename;" (assignment_expression "pcVar4 = pbVar7->filename" identifier = (field_expression "pbVar7->filename" identifier -> field_identifier)) ;) (if_statement "if (pcVar4 != (char *)0x0) {\n          if ((arch->field_0x2c & 1) == 0) {\nLAB_0001630f:\n            pcVar6 = *files;\n            if (full_pathname == 0) {\n              pcVar6 = normalize(pcVar6,arch);\n            }\n          }\n          else {\n            if (full_pathname == 0) {\n              pcVar4 = normalize(pcVar4,arch);\n              if (pcVar4 != (char *)0x0) goto LAB_0001630f;\n              break;\n            }\n            pcVar6 = *files;\n          }\n          iVar5 = filename_cmp(pcVar6,pcVar4);\n          if ((iVar5 == 0) &&\n             ((local_94 = local_94 + 1, counted_name_mode == 0 || (local_94 == counted_name_counter)\n              ))) {\n            (*function)(pbVar7);\n            pbVar7->archive_pass = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }" if (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((arch->field_0x2c & 1) == 0) {\nLAB_0001630f:\n            pcVar6 = *files;\n            if (full_pathname == 0) {\n              pcVar6 = normalize(pcVar6,arch);\n            }\n          }\n          else {\n            if (full_pathname == 0) {\n              pcVar4 = normalize(pcVar4,arch);\n              if (pcVar4 != (char *)0x0) goto LAB_0001630f;\n              break;\n            }\n            pcVar6 = *files;\n          }\n          iVar5 = filename_cmp(pcVar6,pcVar4);\n          if ((iVar5 == 0) &&\n             ((local_94 = local_94 + 1, counted_name_mode == 0 || (local_94 == counted_name_counter)\n              ))) {\n            (*function)(pbVar7);\n            pbVar7->archive_pass = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }" { (if_statement "if ((arch->field_0x2c & 1) == 0) {\nLAB_0001630f:\n            pcVar6 = *files;\n            if (full_pathname == 0) {\n              pcVar6 = normalize(pcVar6,arch);\n            }\n          }\n          else {\n            if (full_pathname == 0) {\n              pcVar4 = normalize(pcVar4,arch);\n              if (pcVar4 != (char *)0x0) goto LAB_0001630f;\n              break;\n            }\n            pcVar6 = *files;\n          }" if (parenthesized_expression "((arch->field_0x2c & 1) == 0)" ( (binary_expression "(arch->field_0x2c & 1) == 0" (parenthesized_expression "(arch->field_0x2c & 1)" ( (binary_expression "arch->field_0x2c & 1" (field_expression "arch->field_0x2c" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0001630f:\n            pcVar6 = *files;\n            if (full_pathname == 0) {\n              pcVar6 = normalize(pcVar6,arch);\n            }\n          }" { (labeled_statement "LAB_0001630f:\n            pcVar6 = *files;" statement_identifier : (expression_statement "pcVar6 = *files;" (assignment_expression "pcVar6 = *files" identifier = (pointer_expression "*files" * identifier)) ;)) (if_statement "if (full_pathname == 0) {\n              pcVar6 = normalize(pcVar6,arch);\n            }" if (parenthesized_expression "(full_pathname == 0)" ( (binary_expression "full_pathname == 0" identifier == number_literal) )) (compound_statement "{\n              pcVar6 = normalize(pcVar6,arch);\n            }" { (expression_statement "pcVar6 = normalize(pcVar6,arch);" (assignment_expression "pcVar6 = normalize(pcVar6,arch)" identifier = (call_expression "normalize(pcVar6,arch)" identifier (argument_list "(pcVar6,arch)" ( identifier , identifier )))) ;) })) }) (else_clause "else {\n            if (full_pathname == 0) {\n              pcVar4 = normalize(pcVar4,arch);\n              if (pcVar4 != (char *)0x0) goto LAB_0001630f;\n              break;\n            }\n            pcVar6 = *files;\n          }" else (compound_statement "{\n            if (full_pathname == 0) {\n              pcVar4 = normalize(pcVar4,arch);\n              if (pcVar4 != (char *)0x0) goto LAB_0001630f;\n              break;\n            }\n            pcVar6 = *files;\n          }" { (if_statement "if (full_pathname == 0) {\n              pcVar4 = normalize(pcVar4,arch);\n              if (pcVar4 != (char *)0x0) goto LAB_0001630f;\n              break;\n            }" if (parenthesized_expression "(full_pathname == 0)" ( (binary_expression "full_pathname == 0" identifier == number_literal) )) (compound_statement "{\n              pcVar4 = normalize(pcVar4,arch);\n              if (pcVar4 != (char *)0x0) goto LAB_0001630f;\n              break;\n            }" { (expression_statement "pcVar4 = normalize(pcVar4,arch);" (assignment_expression "pcVar4 = normalize(pcVar4,arch)" identifier = (call_expression "normalize(pcVar4,arch)" identifier (argument_list "(pcVar4,arch)" ( identifier , identifier )))) ;) (if_statement "if (pcVar4 != (char *)0x0) goto LAB_0001630f;" if (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001630f;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "pcVar6 = *files;" (assignment_expression "pcVar6 = *files" identifier = (pointer_expression "*files" * identifier)) ;) }))) (expression_statement "iVar5 = filename_cmp(pcVar6,pcVar4);" (assignment_expression "iVar5 = filename_cmp(pcVar6,pcVar4)" identifier = (call_expression "filename_cmp(pcVar6,pcVar4)" identifier (argument_list "(pcVar6,pcVar4)" ( identifier , identifier )))) ;) (if_statement "if ((iVar5 == 0) &&\n             ((local_94 = local_94 + 1, counted_name_mode == 0 || (local_94 == counted_name_counter)\n              ))) {\n            (*function)(pbVar7);\n            pbVar7->archive_pass = 1;\n            goto joined_r0x0001636b;\n          }" if (parenthesized_expression "((iVar5 == 0) &&\n             ((local_94 = local_94 + 1, counted_name_mode == 0 || (local_94 == counted_name_counter)\n              )))" ( (binary_expression "(iVar5 == 0) &&\n             ((local_94 = local_94 + 1, counted_name_mode == 0 || (local_94 == counted_name_counter)\n              ))" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "((local_94 = local_94 + 1, counted_name_mode == 0 || (local_94 == counted_name_counter)\n              ))" ( (parenthesized_expression "(local_94 = local_94 + 1, counted_name_mode == 0 || (local_94 == counted_name_counter)\n              )" ( (comma_expression "local_94 = local_94 + 1, counted_name_mode == 0 || (local_94 == counted_name_counter)" (assignment_expression "local_94 = local_94 + 1" identifier = (binary_expression "local_94 + 1" identifier + number_literal)) , (binary_expression "counted_name_mode == 0 || (local_94 == counted_name_counter)" (binary_expression "counted_name_mode == 0" identifier == number_literal) || (parenthesized_expression "(local_94 == counted_name_counter)" ( (binary_expression "local_94 == counted_name_counter" identifier == identifier) )))) )) ))) )) (compound_statement "{\n            (*function)(pbVar7);\n            pbVar7->archive_pass = 1;\n            goto joined_r0x0001636b;\n          }" { (expression_statement "(*function)(pbVar7);" (call_expression "(*function)(pbVar7)" (parenthesized_expression "(*function)" ( (pointer_expression "*function" * identifier) )) (argument_list "(pbVar7)" ( identifier ))) ;) (expression_statement "pbVar7->archive_pass = 1;" (assignment_expression "pbVar7->archive_pass = 1" (field_expression "pbVar7->archive_pass" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto joined_r0x0001636b;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "(*pbVar7->xvec->_bfd_stat_arch_elt)(pbVar7,&buf);" (call_expression "(*pbVar7->xvec->_bfd_stat_arch_elt)(pbVar7,&buf)" (parenthesized_expression "(*pbVar7->xvec->_bfd_stat_arch_elt)" ( (pointer_expression "*pbVar7->xvec->_bfd_stat_arch_elt" * (field_expression "pbVar7->xvec->_bfd_stat_arch_elt" (field_expression "pbVar7->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(pbVar7,&buf)" ( identifier , (pointer_expression "&buf" & identifier) ))) ;) (expression_statement "pbVar7 = pbVar7->archive_next;" (assignment_expression "pbVar7 = pbVar7->archive_next" identifier = (field_expression "pbVar7->archive_next" identifier -> field_identifier)) ;) (if_statement "if (pbVar7 == (bfd *)0x0) goto LAB_00016395;" if (parenthesized_expression "(pbVar7 == (bfd *)0x0)" ( (binary_expression "pbVar7 == (bfd *)0x0" identifier == (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00016395;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_00016395:\n    pcVar4 = *files;" statement_identifier : (expression_statement "pcVar4 = *files;" (assignment_expression "pcVar4 = *files" identifier = (pointer_expression "*files" * identifier)) ;)) (expression_statement "pcVar6 = (char *)dcgettext(0,"no entry %s in archive\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"no entry %s in archive\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"no entry %s in archive\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"no entry %s in archive\n",5)" identifier (argument_list "(0,"no entry %s in archive\n",5)" ( number_literal , (string_literal ""no entry %s in archive\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf((FILE *)*puVar3,pcVar6,pcVar4);" (call_expression "fprintf((FILE *)*puVar3,pcVar6,pcVar4)" identifier (argument_list "((FILE *)*puVar3,pcVar6,pcVar4)" ( (cast_expression "(FILE *)*puVar3" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier)) , identifier , identifier ))) ;) (labeled_statement "joined_r0x0001636b:\n    if (ppcVar1 == files + 1) {\n      return;\n    }" statement_identifier : (if_statement "if (ppcVar1 == files + 1) {\n      return;\n    }" if (parenthesized_expression "(ppcVar1 == files + 1)" ( (binary_expression "ppcVar1 == files + 1" identifier == (binary_expression "files + 1" identifier + number_literal)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) }))) (expression_statement "files = files + 1;" (assignment_expression "files = files + 1" identifier = (binary_expression "files + 1" identifier + number_literal)) ;) (expression_statement "pbVar7 = arch->archive_next;" (assignment_expression "pbVar7 = arch->archive_next" identifier = (field_expression "arch->archive_next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void __regparm3 FUN_00016260(int param_1,code *param_2,undefined4 *param_3,int param_4)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  undefined4 uVar5;\n  char *__format;\n  int *piVar6;\n  int local_94;\n  undefined1 local_7c [104];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1626b;\n  piVar6 = *(int **)(param_1 + 0x90);\n  piVar2 = piVar6;\n  puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  if (param_4 == 0) {\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      (*param_2)(piVar6);\n    }\n    return;\n  }\n  for (; PTR_stderr_00020fd4 = (undefined *)puVar3, piVar2 != (int *)0x0;\n      piVar2 = (int *)piVar2[0x24]) {\n    piVar2[0x1b] = 0;\n    puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  }\n  puVar1 = param_3 + param_4;\n  do {\n    local_94 = 0;\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }\nLAB_00016395:\n    uVar5 = *param_3;\n    __format = (char *)dcgettext(0,"no entry %s in archive\n",5);\n    fprintf((FILE *)*puVar3,__format,uVar5);\njoined_r0x0001636b:\n    if (puVar1 == param_3 + 1) {\n      return;\n    }\n    param_3 = param_3 + 1;\n    piVar6 = *(int **)(param_1 + 0x90);\n  } while( true );\n}\n\n" (function_definition "void __regparm3 FUN_00016260(int param_1,code *param_2,undefined4 *param_3,int param_4)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  undefined4 uVar5;\n  char *__format;\n  int *piVar6;\n  int local_94;\n  undefined1 local_7c [104];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1626b;\n  piVar6 = *(int **)(param_1 + 0x90);\n  piVar2 = piVar6;\n  puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  if (param_4 == 0) {\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      (*param_2)(piVar6);\n    }\n    return;\n  }\n  for (; PTR_stderr_00020fd4 = (undefined *)puVar3, piVar2 != (int *)0x0;\n      piVar2 = (int *)piVar2[0x24]) {\n    piVar2[0x1b] = 0;\n    puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  }\n  puVar1 = param_3 + param_4;\n  do {\n    local_94 = 0;\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }\nLAB_00016395:\n    uVar5 = *param_3;\n    __format = (char *)dcgettext(0,"no entry %s in archive\n",5);\n    fprintf((FILE *)*puVar3,__format,uVar5);\njoined_r0x0001636b:\n    if (puVar1 == param_3 + 1) {\n      return;\n    }\n    param_3 = param_3 + 1;\n    piVar6 = *(int **)(param_1 + 0x90);\n  } while( true );\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00016260(int param_1,code *param_2,undefined4 *param_3,int param_4)" identifier (parameter_list "(int param_1,code *param_2,undefined4 *param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "code *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  undefined4 uVar5;\n  char *__format;\n  int *piVar6;\n  int local_94;\n  undefined1 local_7c [104];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1626b;\n  piVar6 = *(int **)(param_1 + 0x90);\n  piVar2 = piVar6;\n  puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  if (param_4 == 0) {\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      (*param_2)(piVar6);\n    }\n    return;\n  }\n  for (; PTR_stderr_00020fd4 = (undefined *)puVar3, piVar2 != (int *)0x0;\n      piVar2 = (int *)piVar2[0x24]) {\n    piVar2[0x1b] = 0;\n    puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  }\n  puVar1 = param_3 + param_4;\n  do {\n    local_94 = 0;\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }\nLAB_00016395:\n    uVar5 = *param_3;\n    __format = (char *)dcgettext(0,"no entry %s in archive\n",5);\n    fprintf((FILE *)*puVar3,__format,uVar5);\njoined_r0x0001636b:\n    if (puVar1 == param_3 + 1) {\n      return;\n    }\n    param_3 = param_3 + 1;\n    piVar6 = *(int **)(param_1 + 0x90);\n  } while( true );\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "undefined1 local_7c [104];" type_identifier (array_declarator "local_7c [104]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1626b;" (assignment_expression "uStack_14 = 0x1626b" identifier = number_literal) ;) (expression_statement "piVar6 = *(int **)(param_1 + 0x90);" (assignment_expression "piVar6 = *(int **)(param_1 + 0x90)" identifier = (pointer_expression "*(int **)(param_1 + 0x90)" * (cast_expression "(int **)(param_1 + 0x90)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "piVar2 = piVar6;" (assignment_expression "piVar2 = piVar6" identifier = identifier) ;) (expression_statement "puVar3 = (undefined4 *)PTR_stderr_00020fd4;" (assignment_expression "puVar3 = (undefined4 *)PTR_stderr_00020fd4" identifier = (cast_expression "(undefined4 *)PTR_stderr_00020fd4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (param_4 == 0) {\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      (*param_2)(piVar6);\n    }\n    return;\n  }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      (*param_2)(piVar6);\n    }\n    return;\n  }" { (for_statement "for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      (*param_2)(piVar6);\n    }" for ( ; (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar6 = (int *)piVar6[0x24]" identifier = (cast_expression "(int *)piVar6[0x24]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar6[0x24]" identifier [ number_literal ]))) ) (compound_statement "{\n      (*param_2)(piVar6);\n    }" { (expression_statement "(*param_2)(piVar6);" (call_expression "(*param_2)(piVar6)" (parenthesized_expression "(*param_2)" ( (pointer_expression "*param_2" * identifier) )) (argument_list "(piVar6)" ( identifier ))) ;) })) (return_statement "return;" return ;) })) (for_statement "for (; PTR_stderr_00020fd4 = (undefined *)puVar3, piVar2 != (int *)0x0;\n      piVar2 = (int *)piVar2[0x24]) {\n    piVar2[0x1b] = 0;\n    puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  }" for ( ; (comma_expression "PTR_stderr_00020fd4 = (undefined *)puVar3, piVar2 != (int *)0x0" (assignment_expression "PTR_stderr_00020fd4 = (undefined *)puVar3" identifier = (cast_expression "(undefined *)puVar3" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "piVar2 = (int *)piVar2[0x24]" identifier = (cast_expression "(int *)piVar2[0x24]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar2[0x24]" identifier [ number_literal ]))) ) (compound_statement "{\n    piVar2[0x1b] = 0;\n    puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  }" { (expression_statement "piVar2[0x1b] = 0;" (assignment_expression "piVar2[0x1b] = 0" (subscript_expression "piVar2[0x1b]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar3 = (undefined4 *)PTR_stderr_00020fd4;" (assignment_expression "puVar3 = (undefined4 *)PTR_stderr_00020fd4" identifier = (cast_expression "(undefined4 *)PTR_stderr_00020fd4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "puVar1 = param_3 + param_4;" (assignment_expression "puVar1 = param_3 + param_4" identifier = (binary_expression "param_3 + param_4" identifier + identifier)) ;) (do_statement "do {\n    local_94 = 0;\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }\nLAB_00016395:\n    uVar5 = *param_3;\n    __format = (char *)dcgettext(0,"no entry %s in archive\n",5);\n    fprintf((FILE *)*puVar3,__format,uVar5);\njoined_r0x0001636b:\n    if (puVar1 == param_3 + 1) {\n      return;\n    }\n    param_3 = param_3 + 1;\n    piVar6 = *(int **)(param_1 + 0x90);\n  } while( true );" do (compound_statement "{\n    local_94 = 0;\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }\nLAB_00016395:\n    uVar5 = *param_3;\n    __format = (char *)dcgettext(0,"no entry %s in archive\n",5);\n    fprintf((FILE *)*puVar3,__format,uVar5);\njoined_r0x0001636b:\n    if (puVar1 == param_3 + 1) {\n      return;\n    }\n    param_3 = param_3 + 1;\n    piVar6 = *(int **)(param_1 + 0x90);\n  }" { (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (for_statement "for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }" for ( ; (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar6 = (int *)piVar6[0x24]" identifier = (cast_expression "(int *)piVar6[0x24]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar6[0x24]" identifier [ number_literal ]))) ) (compound_statement "{\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }" { (while_statement "while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }" while (parenthesized_expression "(piVar6[0x1b] == 0)" ( (binary_expression "piVar6[0x1b] == 0" (subscript_expression "piVar6[0x1b]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }" { (expression_statement "iVar4 = *piVar6;" (assignment_expression "iVar4 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (if_statement "if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }" { (if_statement "if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }" if (parenthesized_expression "((*(byte *)(param_1 + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2c) & 1)" ( (binary_expression "*(byte *)(param_1 + 0x2c) & 1" (pointer_expression "*(byte *)(param_1 + 0x2c)" * (cast_expression "(byte *)(param_1 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }" { (labeled_statement "LAB_0001630f:\n            uVar5 = *param_3;" statement_identifier : (expression_statement "uVar5 = *param_3;" (assignment_expression "uVar5 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;)) (if_statement "if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }" if (parenthesized_expression "(DAT_000212c4 == 0)" ( (binary_expression "DAT_000212c4 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar5 = FUN_00016190();\n            }" { (expression_statement "uVar5 = FUN_00016190();" (assignment_expression "uVar5 = FUN_00016190()" identifier = (call_expression "FUN_00016190()" identifier (argument_list "()" ( )))) ;) })) }) (else_clause "else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }" else (compound_statement "{\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }" { (if_statement "if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }" if (parenthesized_expression "(DAT_000212c4 == 0)" ( (binary_expression "DAT_000212c4 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }" { (expression_statement "iVar4 = FUN_00016190();" (assignment_expression "iVar4 = FUN_00016190()" identifier = (call_expression "FUN_00016190()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 0) goto LAB_0001630f;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001630f;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "uVar5 = *param_3;" (assignment_expression "uVar5 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) }))) (expression_statement "iVar4 = filename_cmp(uVar5,iVar4);" (assignment_expression "iVar4 = filename_cmp(uVar5,iVar4)" identifier = (call_expression "filename_cmp(uVar5,iVar4)" identifier (argument_list "(uVar5,iVar4)" ( identifier , identifier )))) ;) (if_statement "if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }" if (parenthesized_expression "((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc))))" ( (binary_expression "(iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) && (parenthesized_expression "((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))" ( (parenthesized_expression "(local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc))" ( (comma_expression "local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)" (assignment_expression "local_94 = local_94 + 1" identifier = (binary_expression "local_94 + 1" identifier + number_literal)) , (binary_expression "DAT_000212d0 == 0 || (local_94 == DAT_000212cc)" (binary_expression "DAT_000212d0 == 0" identifier == number_literal) || (parenthesized_expression "(local_94 == DAT_000212cc)" ( (binary_expression "local_94 == DAT_000212cc" identifier == identifier) )))) )) ))) )) (compound_statement "{\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }" { (expression_statement "(*param_2)(piVar6);" (call_expression "(*param_2)(piVar6)" (parenthesized_expression "(*param_2)" ( (pointer_expression "*param_2" * identifier) )) (argument_list "(piVar6)" ( identifier ))) ;) (expression_statement "piVar6[0x1b] = 1;" (assignment_expression "piVar6[0x1b] = 1" (subscript_expression "piVar6[0x1b]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto joined_r0x0001636b;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "(**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);" (call_expression "(**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c)" (parenthesized_expression "(**(code **)(piVar6[1] + 0xfc))" ( (pointer_expression "**(code **)(piVar6[1] + 0xfc)" * (pointer_expression "*(code **)(piVar6[1] + 0xfc)" * (cast_expression "(code **)(piVar6[1] + 0xfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar6[1] + 0xfc)" ( (binary_expression "piVar6[1] + 0xfc" (subscript_expression "piVar6[1]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar6,local_7c)" ( identifier , identifier ))) ;) (expression_statement "piVar6 = (int *)piVar6[0x24];" (assignment_expression "piVar6 = (int *)piVar6[0x24]" identifier = (cast_expression "(int *)piVar6[0x24]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar6[0x24]" identifier [ number_literal ]))) ;) (if_statement "if (piVar6 == (int *)0x0) goto LAB_00016395;" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00016395;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_00016395:\n    uVar5 = *param_3;" statement_identifier : (expression_statement "uVar5 = *param_3;" (assignment_expression "uVar5 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;)) (expression_statement "__format = (char *)dcgettext(0,"no entry %s in archive\n",5);" (assignment_expression "__format = (char *)dcgettext(0,"no entry %s in archive\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"no entry %s in archive\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"no entry %s in archive\n",5)" identifier (argument_list "(0,"no entry %s in archive\n",5)" ( number_literal , (string_literal ""no entry %s in archive\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf((FILE *)*puVar3,__format,uVar5);" (call_expression "fprintf((FILE *)*puVar3,__format,uVar5)" identifier (argument_list "((FILE *)*puVar3,__format,uVar5)" ( (cast_expression "(FILE *)*puVar3" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier)) , identifier , identifier ))) ;) (labeled_statement "joined_r0x0001636b:\n    if (puVar1 == param_3 + 1) {\n      return;\n    }" statement_identifier : (if_statement "if (puVar1 == param_3 + 1) {\n      return;\n    }" if (parenthesized_expression "(puVar1 == param_3 + 1)" ( (binary_expression "puVar1 == param_3 + 1" identifier == (binary_expression "param_3 + 1" identifier + number_literal)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) }))) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "piVar6 = *(int **)(param_1 + 0x90);" (assignment_expression "piVar6 = *(int **)(param_1 + 0x90)" identifier = (pointer_expression "*(int **)(param_1 + 0x90)" * (cast_expression "(int **)(param_1 + 0x90)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x90)" ( (binary_expression "param_1 + 0x90" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (for_statement for ( ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) })) (return_statement return ;) })) (for_statement for ( ; (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (for_statement for ( ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (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 ( )))) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (binary_expression IDENT == IDENT) )))) )) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (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 ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) , IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (return_statement return ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "void __regparm3 FUN_00016260(int param_1,code *param_2,undefined4 *param_3,int param_4)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  undefined4 uVar5;\n  char *__format;\n  int *piVar6;\n  int local_94;\n  undefined1 local_7c [104];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1626b;\n  piVar6 = *(int **)(param_1 + 0x90);\n  piVar2 = piVar6;\n  puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  if (param_4 == 0) {\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      (*param_2)(piVar6);\n    }\n    return;\n  }\n  for (; PTR_stderr_00020fd4 = (undefined *)puVar3, piVar2 != (int *)0x0;\n      piVar2 = (int *)piVar2[0x24]) {\n    piVar2[0x1b] = 0;\n    puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  }\n  puVar1 = param_3 + param_4;\n  do {\n    local_94 = 0;\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }\nLAB_00016395:\n    uVar5 = *param_3;\n    __format = (char *)dcgettext(0,"no entry %s in archive\n",5);\n    fprintf((FILE *)*puVar3,__format,uVar5);\njoined_r0x0001636b:\n    if (puVar1 == param_3 + 1) {\n      return;\n    }\n    param_3 = param_3 + 1;\n    piVar6 = *(int **)(param_1 + 0x90);\n  } while( true );\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00016260(int param_1,code *param_2,undefined4 *param_3,int param_4)" (identifier "FUN_00016260") (parameter_list "(int param_1,code *param_2,undefined4 *param_3,int param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "code *param_2" (type_identifier "code") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  undefined4 uVar5;\n  char *__format;\n  int *piVar6;\n  int local_94;\n  undefined1 local_7c [104];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1626b;\n  piVar6 = *(int **)(param_1 + 0x90);\n  piVar2 = piVar6;\n  puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  if (param_4 == 0) {\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      (*param_2)(piVar6);\n    }\n    return;\n  }\n  for (; PTR_stderr_00020fd4 = (undefined *)puVar3, piVar2 != (int *)0x0;\n      piVar2 = (int *)piVar2[0x24]) {\n    piVar2[0x1b] = 0;\n    puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  }\n  puVar1 = param_3 + param_4;\n  do {\n    local_94 = 0;\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }\nLAB_00016395:\n    uVar5 = *param_3;\n    __format = (char *)dcgettext(0,"no entry %s in archive\n",5);\n    fprintf((FILE *)*puVar3,__format,uVar5);\njoined_r0x0001636b:\n    if (puVar1 == param_3 + 1) {\n      return;\n    }\n    param_3 = param_3 + 1;\n    piVar6 = *(int **)(param_1 + 0x90);\n  } while( true );\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "char *__format;" (primitive_type "char") (pointer_declarator "*__format" (* "*") (identifier "__format")) (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int local_94;" (primitive_type "int") (identifier "local_94") (; ";")) (declaration "undefined1 local_7c [104];" (type_identifier "undefined1") (array_declarator "local_7c [104]" (identifier "local_7c") ([ "[") (number_literal "104") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x1626b;" (assignment_expression "uStack_14 = 0x1626b" (identifier "uStack_14") (= "=") (number_literal "0x1626b")) (; ";")) (expression_statement "piVar6 = *(int **)(param_1 + 0x90);" (assignment_expression "piVar6 = *(int **)(param_1 + 0x90)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(param_1 + 0x90)" (* "*") (cast_expression "(int **)(param_1 + 0x90)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")"))))) (; ";")) (expression_statement "piVar2 = piVar6;" (assignment_expression "piVar2 = piVar6" (identifier "piVar2") (= "=") (identifier "piVar6")) (; ";")) (expression_statement "puVar3 = (undefined4 *)PTR_stderr_00020fd4;" (assignment_expression "puVar3 = (undefined4 *)PTR_stderr_00020fd4" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)PTR_stderr_00020fd4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_00020fd4"))) (; ";")) (if_statement "if (param_4 == 0) {\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      (*param_2)(piVar6);\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      (*param_2)(piVar6);\n    }\n    return;\n  }" ({ "{") (for_statement "for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      (*param_2)(piVar6);\n    }" (for "for") (( "(") (; ";") (binary_expression "piVar6 != (int *)0x0" (identifier "piVar6") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "piVar6 = (int *)piVar6[0x24]" (identifier "piVar6") (= "=") (cast_expression "(int *)piVar6[0x24]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar6[0x24]" (identifier "piVar6") ([ "[") (number_literal "0x24") (] "]")))) () ")") (compound_statement "{\n      (*param_2)(piVar6);\n    }" ({ "{") (expression_statement "(*param_2)(piVar6);" (call_expression "(*param_2)(piVar6)" (parenthesized_expression "(*param_2)" (( "(") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")")) (argument_list "(piVar6)" (( "(") (identifier "piVar6") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (for_statement "for (; PTR_stderr_00020fd4 = (undefined *)puVar3, piVar2 != (int *)0x0;\n      piVar2 = (int *)piVar2[0x24]) {\n    piVar2[0x1b] = 0;\n    puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  }" (for "for") (( "(") (; ";") (comma_expression "PTR_stderr_00020fd4 = (undefined *)puVar3, piVar2 != (int *)0x0" (assignment_expression "PTR_stderr_00020fd4 = (undefined *)puVar3" (identifier "PTR_stderr_00020fd4") (= "=") (cast_expression "(undefined *)puVar3" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) (, ",") (binary_expression "piVar2 != (int *)0x0" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";") (assignment_expression "piVar2 = (int *)piVar2[0x24]" (identifier "piVar2") (= "=") (cast_expression "(int *)piVar2[0x24]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar2[0x24]" (identifier "piVar2") ([ "[") (number_literal "0x24") (] "]")))) () ")") (compound_statement "{\n    piVar2[0x1b] = 0;\n    puVar3 = (undefined4 *)PTR_stderr_00020fd4;\n  }" ({ "{") (expression_statement "piVar2[0x1b] = 0;" (assignment_expression "piVar2[0x1b] = 0" (subscript_expression "piVar2[0x1b]" (identifier "piVar2") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = (undefined4 *)PTR_stderr_00020fd4;" (assignment_expression "puVar3 = (undefined4 *)PTR_stderr_00020fd4" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)PTR_stderr_00020fd4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_00020fd4"))) (; ";")) (} "}"))) (expression_statement "puVar1 = param_3 + param_4;" (assignment_expression "puVar1 = param_3 + param_4" (identifier "puVar1") (= "=") (binary_expression "param_3 + param_4" (identifier "param_3") (+ "+") (identifier "param_4"))) (; ";")) (do_statement "do {\n    local_94 = 0;\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }\nLAB_00016395:\n    uVar5 = *param_3;\n    __format = (char *)dcgettext(0,"no entry %s in archive\n",5);\n    fprintf((FILE *)*puVar3,__format,uVar5);\njoined_r0x0001636b:\n    if (puVar1 == param_3 + 1) {\n      return;\n    }\n    param_3 = param_3 + 1;\n    piVar6 = *(int **)(param_1 + 0x90);\n  } while( true );" (do "do") (compound_statement "{\n    local_94 = 0;\n    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }\nLAB_00016395:\n    uVar5 = *param_3;\n    __format = (char *)dcgettext(0,"no entry %s in archive\n",5);\n    fprintf((FILE *)*puVar3,__format,uVar5);\njoined_r0x0001636b:\n    if (puVar1 == param_3 + 1) {\n      return;\n    }\n    param_3 = param_3 + 1;\n    piVar6 = *(int **)(param_1 + 0x90);\n  }" ({ "{") (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" (identifier "local_94") (= "=") (number_literal "0")) (; ";")) (for_statement "for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }" (for "for") (( "(") (; ";") (binary_expression "piVar6 != (int *)0x0" (identifier "piVar6") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "piVar6 = (int *)piVar6[0x24]" (identifier "piVar6") (= "=") (cast_expression "(int *)piVar6[0x24]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar6[0x24]" (identifier "piVar6") ([ "[") (number_literal "0x24") (] "]")))) () ")") (compound_statement "{\n      while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }\n    }" ({ "{") (while_statement "while (piVar6[0x1b] == 0) {\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }" (while "while") (parenthesized_expression "(piVar6[0x1b] == 0)" (( "(") (binary_expression "piVar6[0x1b] == 0" (subscript_expression "piVar6[0x1b]" (identifier "piVar6") ([ "[") (number_literal "0x1b") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar4 = *piVar6;\n        if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }\n        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);\n        piVar6 = (int *)piVar6[0x24];\n        if (piVar6 == (int *)0x0) goto LAB_00016395;\n      }" ({ "{") (expression_statement "iVar4 = *piVar6;" (assignment_expression "iVar4 = *piVar6" (identifier "iVar4") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (if_statement "if (iVar4 != 0) {\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }\n          iVar4 = filename_cmp(uVar5,iVar4);\n          if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }\n          break;\n        }" ({ "{") (if_statement "if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }\n          else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x2c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x2c) & 1)" (( "(") (binary_expression "*(byte *)(param_1 + 0x2c) & 1" (pointer_expression "*(byte *)(param_1 + 0x2c)" (* "*") (cast_expression "(byte *)(param_1 + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001630f:\n            uVar5 = *param_3;\n            if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }\n          }" ({ "{") (labeled_statement "LAB_0001630f:\n            uVar5 = *param_3;" (statement_identifier "LAB_0001630f") (: ":") (expression_statement "uVar5 = *param_3;" (assignment_expression "uVar5 = *param_3" (identifier "uVar5") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";"))) (if_statement "if (DAT_000212c4 == 0) {\n              uVar5 = FUN_00016190();\n            }" (if "if") (parenthesized_expression "(DAT_000212c4 == 0)" (( "(") (binary_expression "DAT_000212c4 == 0" (identifier "DAT_000212c4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar5 = FUN_00016190();\n            }" ({ "{") (expression_statement "uVar5 = FUN_00016190();" (assignment_expression "uVar5 = FUN_00016190()" (identifier "uVar5") (= "=") (call_expression "FUN_00016190()" (identifier "FUN_00016190") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }" (else "else") (compound_statement "{\n            if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }\n            uVar5 = *param_3;\n          }" ({ "{") (if_statement "if (DAT_000212c4 == 0) {\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }" (if "if") (parenthesized_expression "(DAT_000212c4 == 0)" (( "(") (binary_expression "DAT_000212c4 == 0" (identifier "DAT_000212c4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar4 = FUN_00016190();\n              if (iVar4 != 0) goto LAB_0001630f;\n              break;\n            }" ({ "{") (expression_statement "iVar4 = FUN_00016190();" (assignment_expression "iVar4 = FUN_00016190()" (identifier "iVar4") (= "=") (call_expression "FUN_00016190()" (identifier "FUN_00016190") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) goto LAB_0001630f;" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001630f;" (goto "goto") (statement_identifier "LAB_0001630f") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "uVar5 = *param_3;" (assignment_expression "uVar5 = *param_3" (identifier "uVar5") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (} "}")))) (expression_statement "iVar4 = filename_cmp(uVar5,iVar4);" (assignment_expression "iVar4 = filename_cmp(uVar5,iVar4)" (identifier "iVar4") (= "=") (call_expression "filename_cmp(uVar5,iVar4)" (identifier "filename_cmp") (argument_list "(uVar5,iVar4)" (( "(") (identifier "uVar5") (, ",") (identifier "iVar4") () ")")))) (; ";")) (if_statement "if ((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }" (if "if") (parenthesized_expression "((iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc))))" (( "(") (binary_expression "(iVar4 == 0) &&\n             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))" (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))" (( "(") (parenthesized_expression "(local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc))" (( "(") (comma_expression "local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)" (assignment_expression "local_94 = local_94 + 1" (identifier "local_94") (= "=") (binary_expression "local_94 + 1" (identifier "local_94") (+ "+") (number_literal "1"))) (, ",") (binary_expression "DAT_000212d0 == 0 || (local_94 == DAT_000212cc)" (binary_expression "DAT_000212d0 == 0" (identifier "DAT_000212d0") (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(local_94 == DAT_000212cc)" (( "(") (binary_expression "local_94 == DAT_000212cc" (identifier "local_94") (== "==") (identifier "DAT_000212cc")) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n            (*param_2)(piVar6);\n            piVar6[0x1b] = 1;\n            goto joined_r0x0001636b;\n          }" ({ "{") (expression_statement "(*param_2)(piVar6);" (call_expression "(*param_2)(piVar6)" (parenthesized_expression "(*param_2)" (( "(") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")")) (argument_list "(piVar6)" (( "(") (identifier "piVar6") () ")"))) (; ";")) (expression_statement "piVar6[0x1b] = 1;" (assignment_expression "piVar6[0x1b] = 1" (subscript_expression "piVar6[0x1b]" (identifier "piVar6") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto joined_r0x0001636b;" (goto "goto") (statement_identifier "joined_r0x0001636b") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "(**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);" (call_expression "(**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c)" (parenthesized_expression "(**(code **)(piVar6[1] + 0xfc))" (( "(") (pointer_expression "**(code **)(piVar6[1] + 0xfc)" (* "*") (pointer_expression "*(code **)(piVar6[1] + 0xfc)" (* "*") (cast_expression "(code **)(piVar6[1] + 0xfc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar6[1] + 0xfc)" (( "(") (binary_expression "piVar6[1] + 0xfc" (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xfc")) () ")"))))) () ")")) (argument_list "(piVar6,local_7c)" (( "(") (identifier "piVar6") (, ",") (identifier "local_7c") () ")"))) (; ";")) (expression_statement "piVar6 = (int *)piVar6[0x24];" (assignment_expression "piVar6 = (int *)piVar6[0x24]" (identifier "piVar6") (= "=") (cast_expression "(int *)piVar6[0x24]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar6[0x24]" (identifier "piVar6") ([ "[") (number_literal "0x24") (] "]")))) (; ";")) (if_statement "if (piVar6 == (int *)0x0) goto LAB_00016395;" (if "if") (parenthesized_expression "(piVar6 == (int *)0x0)" (( "(") (binary_expression "piVar6 == (int *)0x0" (identifier "piVar6") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00016395;" (goto "goto") (statement_identifier "LAB_00016395") (; ";"))) (} "}"))) (} "}"))) (labeled_statement "LAB_00016395:\n    uVar5 = *param_3;" (statement_identifier "LAB_00016395") (: ":") (expression_statement "uVar5 = *param_3;" (assignment_expression "uVar5 = *param_3" (identifier "uVar5") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";"))) (expression_statement "__format = (char *)dcgettext(0,"no entry %s in archive\n",5);" (assignment_expression "__format = (char *)dcgettext(0,"no entry %s in archive\n",5)" (identifier "__format") (= "=") (cast_expression "(char *)dcgettext(0,"no entry %s in archive\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"no entry %s in archive\n",5)" (identifier "dcgettext") (argument_list "(0,"no entry %s in archive\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""no entry %s in archive\n"" (" """) (string_content "no entry %s in archive") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf((FILE *)*puVar3,__format,uVar5);" (call_expression "fprintf((FILE *)*puVar3,__format,uVar5)" (identifier "fprintf") (argument_list "((FILE *)*puVar3,__format,uVar5)" (( "(") (cast_expression "(FILE *)*puVar3" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar3" (* "*") (identifier "puVar3"))) (, ",") (identifier "__format") (, ",") (identifier "uVar5") () ")"))) (; ";")) (labeled_statement "joined_r0x0001636b:\n    if (puVar1 == param_3 + 1) {\n      return;\n    }" (statement_identifier "joined_r0x0001636b") (: ":") (if_statement "if (puVar1 == param_3 + 1) {\n      return;\n    }" (if "if") (parenthesized_expression "(puVar1 == param_3 + 1)" (( "(") (binary_expression "puVar1 == param_3 + 1" (identifier "puVar1") (== "==") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "param_3 = param_3 + 1;" (assignment_expression "param_3 = param_3 + 1" (identifier "param_3") (= "=") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar6 = *(int **)(param_1 + 0x90);" (assignment_expression "piVar6 = *(int **)(param_1 + 0x90)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(param_1 + 0x90)" (* "*") (cast_expression "(int **)(param_1 + 0x90)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x90)" (( "(") (binary_expression "param_1 + 0x90" (identifier "param_1") (+ "+") (number_literal "0x90")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

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

void __regparm3 function_1(type_1 *arch,type_2 *function,char **var_4,int var_1)

{
  char **var_15;
  type_1 *var_3;
  type_3 *puVar3;
  char *var_5;
  int var_9;
  char *pcVar6;
  type_1 *var_2;
  int var_10;
  type_4 buf;
  
  var_2 = arch->archive_next;
  var_3 = var_2;
  puVar3 = (type_3 *)PTR_stderr_00020fd4;
  if (var_1 == 0) {
    for (; var_2 != (type_1 *)0x0; var_2 = var_2->archive_next) {
      (*function)(var_2);
    }
    return;
  }
  for (; PTR_stderr_00020fd4 = (type_5 *)puVar3, var_3 != (type_1 *)0x0;
      var_3 = var_3->archive_next) {
    var_3->archive_pass = 0;
    puVar3 = (type_3 *)PTR_stderr_00020fd4;
  }
  var_15 = var_4 + var_1;
  do {
    var_10 = 0;
    for (; var_2 != (type_1 *)0x0; var_2 = var_2->archive_next) {
      while (var_2->archive_pass == 0) {
        var_5 = var_2->filename;
        if (var_5 != (char *)0x0) {
          if ((arch->field_0x2c & 1) == 0) {
LAB_0001630f:
            pcVar6 = *var_4;
            if (var_6 == 0) {
              pcVar6 = var_7(pcVar6,arch);
            }
          }
          else {
            if (var_6 == 0) {
              var_5 = var_7(var_5,arch);
              if (var_5 != (char *)0x0) goto LAB_0001630f;
              break;
            }
            pcVar6 = *var_4;
          }
          var_9 = var_8(pcVar6,var_5);
          if ((var_9 == 0) &&
             ((var_10 = var_10 + 1, var_11 == 0 || (var_10 == var_12)
              ))) {
            (*function)(var_2);
            var_2->archive_pass = 1;
            goto joined_r0x0001636b;
          }
          break;
        }
        (*var_2->xvec->_bfd_stat_arch_elt)(var_2,&buf);
        var_2 = var_2->archive_next;
        if (var_2 == (type_1 *)0x0) goto LAB_00016395;
      }
    }
LAB_00016395:
    var_5 = *var_4;
    pcVar6 = (char *)var_13(0,"no entry %s in archive\n",5);
    var_14((type_6 *)*puVar3,pcVar6,var_5);
joined_r0x0001636b:
    if (var_15 == var_4 + 1) {
      return;
    }
    var_4 = var_4 + 1;
    var_2 = arch->archive_next;
  } while( true );
}


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

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

void __regparm3 MASKED(int param_1,code *param_2,undefined4 *param_3,int param_4)

{
  undefined4 *puVar1;
  int *piVar2;
  undefined4 *puVar3;
  int iVar4;
  undefined4 uVar5;
  char *__format;
  int *piVar6;
  int local_94;
  undefined1 local_7c [104];
  undefined4 uStack_14;
  
  uStack_14 = 0x1626b;
  piVar6 = *(int **)(param_1 + 0x90);
  piVar2 = piVar6;
  puVar3 = (undefined4 *)PTR_stderr_00020fd4;
  if (param_4 == 0) {
    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {
      (*param_2)(piVar6);
    }
    return;
  }
  for (; PTR_stderr_00020fd4 = (undefined *)puVar3, piVar2 != (int *)0x0;
      piVar2 = (int *)piVar2[0x24]) {
    piVar2[0x1b] = 0;
    puVar3 = (undefined4 *)PTR_stderr_00020fd4;
  }
  puVar1 = param_3 + param_4;
  do {
    local_94 = 0;
    for (; piVar6 != (int *)0x0; piVar6 = (int *)piVar6[0x24]) {
      while (piVar6[0x1b] == 0) {
        iVar4 = *piVar6;
        if (iVar4 != 0) {
          if ((*(byte *)(param_1 + 0x2c) & 1) == 0) {
LAB_0001630f:
            uVar5 = *param_3;
            if (DAT_000212c4 == 0) {
              uVar5 = FUN_00016190();
            }
          }
          else {
            if (DAT_000212c4 == 0) {
              iVar4 = FUN_00016190();
              if (iVar4 != 0) goto LAB_0001630f;
              break;
            }
            uVar5 = *param_3;
          }
          iVar4 = filename_cmp(uVar5,iVar4);
          if ((iVar4 == 0) &&
             ((local_94 = local_94 + 1, DAT_000212d0 == 0 || (local_94 == DAT_000212cc)))) {
            (*param_2)(piVar6);
            piVar6[0x1b] = 1;
            goto joined_r0x0001636b;
          }
          break;
        }
        (**(code **)(piVar6[1] + 0xfc))(piVar6,local_7c);
        piVar6 = (int *)piVar6[0x24];
        if (piVar6 == (int *)0x0) goto LAB_00016395;
      }
    }
LAB_00016395:
    uVar5 = *param_3;
    __format = (char *)dcgettext(0,"no entry %s in archive\n",5);
    fprintf((FILE *)*puVar3,__format,uVar5);
joined_r0x0001636b:
    if (puVar1 == param_3 + 1) {
      return;
    }
    param_3 = param_3 + 1;
    piVar6 = *(int **)(param_1 + 0x90);
  } while( true );
}

