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

void __regparm3
pe_walk_relocs(bfd_link_info *info,char *name,char *symname,bfd_hash_table *import_hash,
              _func_void_arelent_ptr_asection_ptr_char_ptr_char_ptr *cb)

{
  undefined4 uVar1;
  asection *paVar2;
  arelent *paVar3;
  bfd_symbol *pbVar4;
  bfd_section *pbVar5;
  int iVar6;
  undefined4 uVar7;
  undefined4 *__ptr;
  int iVar8;
  char *pcVar9;
  undefined4 *puVar10;
  bfd_link_info *local_2c;
  
  pbVar5 = (bfd_section *)(PTR__bfd_std_section_001cefbc + 0x180);
  local_2c = info;
  if (info != (bfd_link_info *)0x0) {
    do {
      iVar6 = bfd_generic_link_read_symbols(local_2c);
      if (iVar6 == 0) {
        pcVar9 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);
        einfo(pcVar9,local_2c);
        return;
      }
      uVar1 = *(undefined4 *)((int)&local_2c->flags + 4);
      for (paVar2 = (asection *)local_2c->extern_protected_data; paVar2 != (asection *)0x0;
          paVar2 = paVar2->next) {
        if (((paVar2->flags & 0x20000) == 0) || (paVar2->output_section != pbVar5)) {
          current_sec = paVar2;
          uVar7 = bfd_get_reloc_upper_bound(local_2c,paVar2);
          __ptr = (undefined4 *)xmalloc(uVar7);
          iVar6 = bfd_canonicalize_reloc(local_2c,paVar2,__ptr,uVar1);
          puVar10 = __ptr;
          if (0 < iVar6) {
            do {
              while( true ) {
                paVar3 = (arelent *)*puVar10;
                pbVar4 = *paVar3->sym_ptr_ptr;
                pcVar9 = pbVar4->name;
                if (import_hash == (bfd_hash_table *)0x0) break;
                iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0);
                if (iVar8 != 0) {
                  strcpy(name,pbVar4->name);
                  (*cb)((arelent *)*puVar10,paVar2,name,symname);
                }
LAB_00062534:
                puVar10 = puVar10 + 1;
                if (__ptr + iVar6 == puVar10) goto LAB_00062585;
              }
              iVar8 = strcmp(name,pcVar9);
              if (iVar8 != 0) goto LAB_00062534;
              puVar10 = puVar10 + 1;
              (*cb)(paVar3,paVar2,name,symname);
            } while (__ptr + iVar6 != puVar10);
          }
LAB_00062585:
          free(__ptr);
        }
      }
      local_2c = *(bfd_link_info **)(local_2c + 1);
    } while (local_2c != (bfd_link_info *)0x0);
  }
  return;
}



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

void __regparm3 FUN_00062430(int param_1,char *param_2,undefined4 param_3,int param_4,code *param_5)

{
  undefined4 *puVar1;
  char *__s2;
  undefined *puVar2;
  int iVar3;
  undefined4 uVar4;
  undefined4 *__ptr;
  int iVar5;
  int iVar6;
  int iVar7;
  undefined4 uVar8;
  undefined4 *puVar9;
  int local_2c;
  
  puVar2 = PTR__bfd_std_section_001cefbc + 0x180;
  local_2c = param_1;
  if (param_1 != 0) {
    do {
      iVar3 = bfd_generic_link_read_symbols(local_2c);
      if (iVar3 == 0) {
        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);
        FUN_00034d20(uVar8,local_2c);
        return;
      }
      uVar8 = *(undefined4 *)(local_2c + 0x78);
      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {
        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {
          DAT_001d124c = iVar3;
          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);
          __ptr = (undefined4 *)xmalloc(uVar4);
          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);
          puVar9 = __ptr;
          if (0 < iVar5) {
            do {
              while( true ) {
                puVar1 = (undefined4 *)*puVar9;
                iVar7 = *(int *)*puVar1;
                __s2 = *(char **)(iVar7 + 4);
                if (param_4 == 0) break;
                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);
                if (iVar6 != 0) {
                  strcpy(param_2,*(char **)(iVar7 + 4));
                  (*param_5)(*puVar9,iVar3,param_2,param_3);
                }
LAB_00062534:
                puVar9 = puVar9 + 1;
                if (__ptr + iVar5 == puVar9) goto LAB_00062585;
              }
              iVar7 = strcmp(param_2,__s2);
              if (iVar7 != 0) goto LAB_00062534;
              puVar9 = puVar9 + 1;
              (*param_5)(puVar1,iVar3,param_2,param_3);
            } while (__ptr + iVar5 != puVar9);
          }
LAB_00062585:
          free(__ptr);
        }
      }
      local_2c = *(int *)(local_2c + 0x9c);
    } while (local_2c != 0);
  }
  return;
}


PUSH EBP
PUSH EDI
MOV EDI,EAX
PUSH ESI
PUSH EBX
CALL 0x00017b80
ADD EBX,0x16cbc5
SUB ESP,0x3c
MOV dword ptr [ESP + 0x20],EAX
MOV EBP,dword ptr [ESP + 0x50]
MOV dword ptr [ESP + 0x10],EDX
MOV dword ptr [ESP + 0x1c],ECX
MOV EAX,dword ptr [EBX + 0xffffffbc]
ADD EAX,0x180
MOV dword ptr [ESP + 0x28],EAX
TEST EDI,EDI
JZ 0x000625b5
MOV EDI,EBP
LEA ESI,[ESI]
SUB ESP,0xc
PUSH dword ptr [ESP + 0x2c]
CALL 0x00016180
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000625bd
MOV EAX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [EAX + 0x78]
MOV EBP,dword ptr [EAX + 0x60]
MOV dword ptr [ESP + 0x2c],EDX
TEST EBP,EBP
JZ 0x0006259f
LEA ESI,[ESI]
TEST byte ptr [EBP + 0x16],0x2
JZ 0x000624b3
MOV EAX,dword ptr [ESP + 0x28]
CMP dword ptr [EBP + 0x54],EAX
JZ 0x00062594
SUB ESP,0x8
MOV dword ptr [EBX + 0x224c],EBP
PUSH EBP
PUSH dword ptr [ESP + 0x2c]
CALL 0x00016bf0
MOV dword ptr [ESP],EAX
CALL 0x00016dc8
MOV dword ptr [ESP + 0x34],EAX
MOV ESI,EAX
PUSH dword ptr [ESP + 0x3c]
PUSH EAX
PUSH EBP
PUSH dword ptr [ESP + 0x3c]
CALL 0x00016b20
ADD ESP,0x20
LEA EDX,[ESI + EAX*0x4]
MOV dword ptr [ESP + 0xc],EDX
TEST EAX,EAX
JLE 0x00062585
MOV dword ptr [ESP + 0x14],EBP
JMP 0x0006253d
PUSH 0x0
PUSH 0x0
PUSH EAX
PUSH EDI
CALL 0x000166d0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00062534
SUB ESP,0x8
PUSH dword ptr [EBP + 0x4]
MOV EBP,dword ptr [ESP + 0x1c]
PUSH EBP
CALL 0x00016530
PUSH dword ptr [ESP + 0x2c]
PUSH EBP
PUSH dword ptr [ESP + 0x2c]
PUSH dword ptr [ESI]
CALL dword ptr [ESP + 0x74]
ADD ESP,0x20
ADD ESI,0x4
CMP dword ptr [ESP + 0xc],ESI
JZ 0x00062581
MOV ECX,dword ptr [ESI]
MOV EAX,dword ptr [ECX]
MOV EBP,dword ptr [EAX]
MOV EAX,dword ptr [EBP + 0x4]
TEST EDI,EDI
JNZ 0x00062500
MOV dword ptr [ESP + 0x18],ECX
SUB ESP,0x8
PUSH EAX
MOV EBP,dword ptr [ESP + 0x1c]
PUSH EBP
CALL 0x000160c0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00062534
PUSH dword ptr [ESP + 0x1c]
ADD ESI,0x4
PUSH EBP
PUSH dword ptr [ESP + 0x1c]
MOV ECX,dword ptr [ESP + 0x24]
PUSH ECX
CALL dword ptr [ESP + 0x64]
ADD ESP,0x10
CMP dword ptr [ESP + 0xc],ESI
JNZ 0x0006253d
MOV EBP,dword ptr [ESP + 0x14]
SUB ESP,0xc
PUSH dword ptr [ESP + 0x30]
CALL 0x00016db0
ADD ESP,0x10
MOV EBP,dword ptr [EBP + 0xc]
TEST EBP,EBP
JNZ 0x000624a0
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x9c]
MOV dword ptr [ESP + 0x20],EAX
TEST EAX,EAX
JNZ 0x00062470
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xffead370]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016310
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x28]
PUSH EAX
CALL 0x00034d20
ADD ESP,0x10
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_00062430(int param_1,char *param_2,undefined4 param_3,int param_4,code *param_5)\n\n{\n  undefined4 *puVar1;\n  char *__s2;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 *__ptr;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  int local_2c;\n  \n  puVar2 = PTR__bfd_std_section_001cefbc + 0x180;\n  local_2c = param_1;\n  if (param_1 != 0) {\n    do {\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    } while (local_2c != 0);\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 FUN_00062430(int param_1,char *param_2,undefined4 param_3,int param_4,code *param_5)\n\n{\n  undefined4 *puVar1;\n  char *__s2;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 *__ptr;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  int local_2c;\n  \n  puVar2 = PTR__bfd_std_section_001cefbc + 0x180;\n  local_2c = param_1;\n  if (param_1 != 0) {\n    do {\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    } while (local_2c != 0);\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00062430(int param_1,char *param_2,undefined4 param_3,int param_4,code *param_5)" identifier (parameter_list "(int param_1,char *param_2,undefined4 param_3,int param_4,code *param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "code *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  undefined4 *puVar1;\n  char *__s2;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 *__ptr;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  int local_2c;\n  \n  puVar2 = PTR__bfd_std_section_001cefbc + 0x180;\n  local_2c = param_1;\n  if (param_1 != 0) {\n    do {\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    } while (local_2c != 0);\n  }\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR__bfd_std_section_001cefbc + 0x180;" (assignment_expression "puVar2 = PTR__bfd_std_section_001cefbc + 0x180" identifier = (binary_expression "PTR__bfd_std_section_001cefbc + 0x180" identifier + number_literal)) ;) (expression_statement "local_2c = param_1;" (assignment_expression "local_2c = param_1" identifier = identifier) ;) (if_statement "if (param_1 != 0) {\n    do {\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    } while (local_2c != 0);\n  }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    } while (local_2c != 0);\n  }" { (do_statement "do {\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    } while (local_2c != 0);" do (compound_statement "{\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    }" { (expression_statement "iVar3 = bfd_generic_link_read_symbols(local_2c);" (assignment_expression "iVar3 = bfd_generic_link_read_symbols(local_2c)" identifier = (call_expression "bfd_generic_link_read_symbols(local_2c)" identifier (argument_list "(local_2c)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }" { (expression_statement "uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);" (assignment_expression "uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5)" identifier (argument_list "(0,"%F%P: %pB: could not read symbols: %E\n",5)" ( number_literal , (string_literal ""%F%P: %pB: could not read symbols: %E\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar8,local_2c);" (call_expression "FUN_00034d20(uVar8,local_2c)" identifier (argument_list "(uVar8,local_2c)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar8 = *(undefined4 *)(local_2c + 0x78);" (assignment_expression "uVar8 = *(undefined4 *)(local_2c + 0x78)" identifier = (pointer_expression "*(undefined4 *)(local_2c + 0x78)" * (cast_expression "(undefined4 *)(local_2c + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + 0x78)" ( (binary_expression "local_2c + 0x78" identifier + number_literal) ))))) ;) (for_statement "for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }" for ( (assignment_expression "iVar3 = *(int *)(local_2c + 0x60)" identifier = (pointer_expression "*(int *)(local_2c + 0x60)" * (cast_expression "(int *)(local_2c + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + 0x60)" ( (binary_expression "local_2c + 0x60" identifier + number_literal) ))))) ; (binary_expression "iVar3 != 0" identifier != number_literal) ; (assignment_expression "iVar3 = *(int *)(iVar3 + 0xc)" identifier = (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ) (compound_statement "{\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }" { (if_statement "if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }" if (parenthesized_expression "(((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2))" ( (binary_expression "((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)" (parenthesized_expression "((*(byte *)(iVar3 + 0x16) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar3 + 0x16) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x16) & 2)" ( (binary_expression "*(byte *)(iVar3 + 0x16) & 2" (pointer_expression "*(byte *)(iVar3 + 0x16)" * (cast_expression "(byte *)(iVar3 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x16)" ( (binary_expression "iVar3 + 0x16" identifier + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(undefined **)(iVar3 + 0x54) != puVar2)" ( (binary_expression "*(undefined **)(iVar3 + 0x54) != puVar2" (pointer_expression "*(undefined **)(iVar3 + 0x54)" * (cast_expression "(undefined **)(iVar3 + 0x54)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x54)" ( (binary_expression "iVar3 + 0x54" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }" { (expression_statement "DAT_001d124c = iVar3;" (assignment_expression "DAT_001d124c = iVar3" identifier = identifier) ;) (expression_statement "uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);" (assignment_expression "uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3)" identifier = (call_expression "bfd_get_reloc_upper_bound(local_2c,iVar3)" identifier (argument_list "(local_2c,iVar3)" ( identifier , identifier )))) ;) (expression_statement "__ptr = (undefined4 *)xmalloc(uVar4);" (assignment_expression "__ptr = (undefined4 *)xmalloc(uVar4)" identifier = (cast_expression "(undefined4 *)xmalloc(uVar4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))))) ;) (expression_statement "iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);" (assignment_expression "iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8)" identifier = (call_expression "bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8)" identifier (argument_list "(local_2c,iVar3,__ptr,uVar8)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar9 = __ptr;" (assignment_expression "puVar9 = __ptr" identifier = identifier) ;) (if_statement "if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }" if (parenthesized_expression "(0 < iVar5)" ( (binary_expression "0 < iVar5" number_literal < identifier) )) (compound_statement "{\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }" { (do_statement "do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);" do (compound_statement "{\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            }" { (while_statement "while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }" { (expression_statement "puVar1 = (undefined4 *)*puVar9;" (assignment_expression "puVar1 = (undefined4 *)*puVar9" identifier = (cast_expression "(undefined4 *)*puVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;) (expression_statement "iVar7 = *(int *)*puVar1;" (assignment_expression "iVar7 = *(int *)*puVar1" identifier = (pointer_expression "*(int *)*puVar1" * (cast_expression "(int *)*puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier)))) ;) (expression_statement "__s2 = *(char **)(iVar7 + 4);" (assignment_expression "__s2 = *(char **)(iVar7 + 4)" identifier = (pointer_expression "*(char **)(iVar7 + 4)" * (cast_expression "(char **)(iVar7 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (if_statement "if (param_4 == 0) break;" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = bfd_hash_lookup(param_4,__s2,0,0);" (assignment_expression "iVar6 = bfd_hash_lookup(param_4,__s2,0,0)" identifier = (call_expression "bfd_hash_lookup(param_4,__s2,0,0)" identifier (argument_list "(param_4,__s2,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }" { (expression_statement "strcpy(param_2,*(char **)(iVar7 + 4));" (call_expression "strcpy(param_2,*(char **)(iVar7 + 4))" identifier (argument_list "(param_2,*(char **)(iVar7 + 4))" ( identifier , (pointer_expression "*(char **)(iVar7 + 4)" * (cast_expression "(char **)(iVar7 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) ))) ;) (expression_statement "(*param_5)(*puVar9,iVar3,param_2,param_3);" (call_expression "(*param_5)(*puVar9,iVar3,param_2,param_3)" (parenthesized_expression "(*param_5)" ( (pointer_expression "*param_5" * identifier) )) (argument_list "(*puVar9,iVar3,param_2,param_3)" ( (pointer_expression "*puVar9" * identifier) , identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_00062534:\n                puVar9 = puVar9 + 1;" statement_identifier : (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;)) (if_statement "if (__ptr + iVar5 == puVar9) goto LAB_00062585;" if (parenthesized_expression "(__ptr + iVar5 == puVar9)" ( (binary_expression "__ptr + iVar5 == puVar9" (binary_expression "__ptr + iVar5" identifier + identifier) == identifier) )) (goto_statement "goto LAB_00062585;" goto statement_identifier ;)) })) (expression_statement "iVar7 = strcmp(param_2,__s2);" (assignment_expression "iVar7 = strcmp(param_2,__s2)" identifier = (call_expression "strcmp(param_2,__s2)" identifier (argument_list "(param_2,__s2)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) goto LAB_00062534;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062534;" goto statement_identifier ;)) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (expression_statement "(*param_5)(puVar1,iVar3,param_2,param_3);" (call_expression "(*param_5)(puVar1,iVar3,param_2,param_3)" (parenthesized_expression "(*param_5)" ( (pointer_expression "*param_5" * identifier) )) (argument_list "(puVar1,iVar3,param_2,param_3)" ( identifier , identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "(__ptr + iVar5 != puVar9)" ( (binary_expression "__ptr + iVar5 != puVar9" (binary_expression "__ptr + iVar5" identifier + identifier) != identifier) )) ;) })) (labeled_statement "LAB_00062585:\n          free(__ptr);" statement_identifier : (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;)) })) })) (expression_statement "local_2c = *(int *)(local_2c + 0x9c);" (assignment_expression "local_2c = *(int *)(local_2c + 0x9c)" identifier = (pointer_expression "*(int *)(local_2c + 0x9c)" * (cast_expression "(int *)(local_2c + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + 0x9c)" ( (binary_expression "local_2c + 0x9c" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(local_2c != 0)" ( (binary_expression "local_2c != 0" identifier != number_literal) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3\npe_walk_relocs(bfd_link_info *info,char *name,char *symname,bfd_hash_table *import_hash,\n              _func_void_arelent_ptr_asection_ptr_char_ptr_char_ptr *cb)\n\n{\n  undefined4 uVar1;\n  asection *paVar2;\n  arelent *paVar3;\n  bfd_symbol *pbVar4;\n  bfd_section *pbVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined4 *__ptr;\n  int iVar8;\n  char *pcVar9;\n  undefined4 *puVar10;\n  bfd_link_info *local_2c;\n  \n  pbVar5 = (bfd_section *)(PTR__bfd_std_section_001cefbc + 0x180);\n  local_2c = info;\n  if (info != (bfd_link_info *)0x0) {\n    do {\n      iVar6 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar6 == 0) {\n        pcVar9 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        einfo(pcVar9,local_2c);\n        return;\n      }\n      uVar1 = *(undefined4 *)((int)&local_2c->flags + 4);\n      for (paVar2 = (asection *)local_2c->extern_protected_data; paVar2 != (asection *)0x0;\n          paVar2 = paVar2->next) {\n        if (((paVar2->flags & 0x20000) == 0) || (paVar2->output_section != pbVar5)) {\n          current_sec = paVar2;\n          uVar7 = bfd_get_reloc_upper_bound(local_2c,paVar2);\n          __ptr = (undefined4 *)xmalloc(uVar7);\n          iVar6 = bfd_canonicalize_reloc(local_2c,paVar2,__ptr,uVar1);\n          puVar10 = __ptr;\n          if (0 < iVar6) {\n            do {\n              while( true ) {\n                paVar3 = (arelent *)*puVar10;\n                pbVar4 = *paVar3->sym_ptr_ptr;\n                pcVar9 = pbVar4->name;\n                if (import_hash == (bfd_hash_table *)0x0) break;\n                iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0);\n                if (iVar8 != 0) {\n                  strcpy(name,pbVar4->name);\n                  (*cb)((arelent *)*puVar10,paVar2,name,symname);\n                }\nLAB_00062534:\n                puVar10 = puVar10 + 1;\n                if (__ptr + iVar6 == puVar10) goto LAB_00062585;\n              }\n              iVar8 = strcmp(name,pcVar9);\n              if (iVar8 != 0) goto LAB_00062534;\n              puVar10 = puVar10 + 1;\n              (*cb)(paVar3,paVar2,name,symname);\n            } while (__ptr + iVar6 != puVar10);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(bfd_link_info **)(local_2c + 1);\n    } while (local_2c != (bfd_link_info *)0x0);\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3\npe_walk_relocs(bfd_link_info *info,char *name,char *symname,bfd_hash_table *import_hash,\n              _func_void_arelent_ptr_asection_ptr_char_ptr_char_ptr *cb)\n\n{\n  undefined4 uVar1;\n  asection *paVar2;\n  arelent *paVar3;\n  bfd_symbol *pbVar4;\n  bfd_section *pbVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined4 *__ptr;\n  int iVar8;\n  char *pcVar9;\n  undefined4 *puVar10;\n  bfd_link_info *local_2c;\n  \n  pbVar5 = (bfd_section *)(PTR__bfd_std_section_001cefbc + 0x180);\n  local_2c = info;\n  if (info != (bfd_link_info *)0x0) {\n    do {\n      iVar6 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar6 == 0) {\n        pcVar9 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        einfo(pcVar9,local_2c);\n        return;\n      }\n      uVar1 = *(undefined4 *)((int)&local_2c->flags + 4);\n      for (paVar2 = (asection *)local_2c->extern_protected_data; paVar2 != (asection *)0x0;\n          paVar2 = paVar2->next) {\n        if (((paVar2->flags & 0x20000) == 0) || (paVar2->output_section != pbVar5)) {\n          current_sec = paVar2;\n          uVar7 = bfd_get_reloc_upper_bound(local_2c,paVar2);\n          __ptr = (undefined4 *)xmalloc(uVar7);\n          iVar6 = bfd_canonicalize_reloc(local_2c,paVar2,__ptr,uVar1);\n          puVar10 = __ptr;\n          if (0 < iVar6) {\n            do {\n              while( true ) {\n                paVar3 = (arelent *)*puVar10;\n                pbVar4 = *paVar3->sym_ptr_ptr;\n                pcVar9 = pbVar4->name;\n                if (import_hash == (bfd_hash_table *)0x0) break;\n                iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0);\n                if (iVar8 != 0) {\n                  strcpy(name,pbVar4->name);\n                  (*cb)((arelent *)*puVar10,paVar2,name,symname);\n                }\nLAB_00062534:\n                puVar10 = puVar10 + 1;\n                if (__ptr + iVar6 == puVar10) goto LAB_00062585;\n              }\n              iVar8 = strcmp(name,pcVar9);\n              if (iVar8 != 0) goto LAB_00062534;\n              puVar10 = puVar10 + 1;\n              (*cb)(paVar3,paVar2,name,symname);\n            } while (__ptr + iVar6 != puVar10);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(bfd_link_info **)(local_2c + 1);\n    } while (local_2c != (bfd_link_info *)0x0);\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "pe_walk_relocs(bfd_link_info *info,char *name,char *symname,bfd_hash_table *import_hash,\n              _func_void_arelent_ptr_asection_ptr_char_ptr_char_ptr *cb)" identifier (parameter_list "(bfd_link_info *info,char *name,char *symname,bfd_hash_table *import_hash,\n              _func_void_arelent_ptr_asection_ptr_char_ptr_char_ptr *cb)" ( (parameter_declaration "bfd_link_info *info" type_identifier (pointer_declarator "*info" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "char *symname" primitive_type (pointer_declarator "*symname" * identifier)) , (parameter_declaration "bfd_hash_table *import_hash" type_identifier (pointer_declarator "*import_hash" * identifier)) , (parameter_declaration "_func_void_arelent_ptr_asection_ptr_char_ptr_char_ptr *cb" type_identifier (pointer_declarator "*cb" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  asection *paVar2;\n  arelent *paVar3;\n  bfd_symbol *pbVar4;\n  bfd_section *pbVar5;\n  int iVar6;\n  undefined4 uVar7;\n  undefined4 *__ptr;\n  int iVar8;\n  char *pcVar9;\n  undefined4 *puVar10;\n  bfd_link_info *local_2c;\n  \n  pbVar5 = (bfd_section *)(PTR__bfd_std_section_001cefbc + 0x180);\n  local_2c = info;\n  if (info != (bfd_link_info *)0x0) {\n    do {\n      iVar6 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar6 == 0) {\n        pcVar9 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        einfo(pcVar9,local_2c);\n        return;\n      }\n      uVar1 = *(undefined4 *)((int)&local_2c->flags + 4);\n      for (paVar2 = (asection *)local_2c->extern_protected_data; paVar2 != (asection *)0x0;\n          paVar2 = paVar2->next) {\n        if (((paVar2->flags & 0x20000) == 0) || (paVar2->output_section != pbVar5)) {\n          current_sec = paVar2;\n          uVar7 = bfd_get_reloc_upper_bound(local_2c,paVar2);\n          __ptr = (undefined4 *)xmalloc(uVar7);\n          iVar6 = bfd_canonicalize_reloc(local_2c,paVar2,__ptr,uVar1);\n          puVar10 = __ptr;\n          if (0 < iVar6) {\n            do {\n              while( true ) {\n                paVar3 = (arelent *)*puVar10;\n                pbVar4 = *paVar3->sym_ptr_ptr;\n                pcVar9 = pbVar4->name;\n                if (import_hash == (bfd_hash_table *)0x0) break;\n                iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0);\n                if (iVar8 != 0) {\n                  strcpy(name,pbVar4->name);\n                  (*cb)((arelent *)*puVar10,paVar2,name,symname);\n                }\nLAB_00062534:\n                puVar10 = puVar10 + 1;\n                if (__ptr + iVar6 == puVar10) goto LAB_00062585;\n              }\n              iVar8 = strcmp(name,pcVar9);\n              if (iVar8 != 0) goto LAB_00062534;\n              puVar10 = puVar10 + 1;\n              (*cb)(paVar3,paVar2,name,symname);\n            } while (__ptr + iVar6 != puVar10);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(bfd_link_info **)(local_2c + 1);\n    } while (local_2c != (bfd_link_info *)0x0);\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "asection *paVar2;" type_identifier (pointer_declarator "*paVar2" * identifier) ;) (declaration "arelent *paVar3;" type_identifier (pointer_declarator "*paVar3" * identifier) ;) (declaration "bfd_symbol *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "bfd_section *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "bfd_link_info *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (expression_statement "pbVar5 = (bfd_section *)(PTR__bfd_std_section_001cefbc + 0x180);" (assignment_expression "pbVar5 = (bfd_section *)(PTR__bfd_std_section_001cefbc + 0x180)" identifier = (cast_expression "(bfd_section *)(PTR__bfd_std_section_001cefbc + 0x180)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_001cefbc + 0x180)" ( (binary_expression "PTR__bfd_std_section_001cefbc + 0x180" identifier + number_literal) )))) ;) (expression_statement "local_2c = info;" (assignment_expression "local_2c = info" identifier = identifier) ;) (if_statement "if (info != (bfd_link_info *)0x0) {\n    do {\n      iVar6 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar6 == 0) {\n        pcVar9 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        einfo(pcVar9,local_2c);\n        return;\n      }\n      uVar1 = *(undefined4 *)((int)&local_2c->flags + 4);\n      for (paVar2 = (asection *)local_2c->extern_protected_data; paVar2 != (asection *)0x0;\n          paVar2 = paVar2->next) {\n        if (((paVar2->flags & 0x20000) == 0) || (paVar2->output_section != pbVar5)) {\n          current_sec = paVar2;\n          uVar7 = bfd_get_reloc_upper_bound(local_2c,paVar2);\n          __ptr = (undefined4 *)xmalloc(uVar7);\n          iVar6 = bfd_canonicalize_reloc(local_2c,paVar2,__ptr,uVar1);\n          puVar10 = __ptr;\n          if (0 < iVar6) {\n            do {\n              while( true ) {\n                paVar3 = (arelent *)*puVar10;\n                pbVar4 = *paVar3->sym_ptr_ptr;\n                pcVar9 = pbVar4->name;\n                if (import_hash == (bfd_hash_table *)0x0) break;\n                iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0);\n                if (iVar8 != 0) {\n                  strcpy(name,pbVar4->name);\n                  (*cb)((arelent *)*puVar10,paVar2,name,symname);\n                }\nLAB_00062534:\n                puVar10 = puVar10 + 1;\n                if (__ptr + iVar6 == puVar10) goto LAB_00062585;\n              }\n              iVar8 = strcmp(name,pcVar9);\n              if (iVar8 != 0) goto LAB_00062534;\n              puVar10 = puVar10 + 1;\n              (*cb)(paVar3,paVar2,name,symname);\n            } while (__ptr + iVar6 != puVar10);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(bfd_link_info **)(local_2c + 1);\n    } while (local_2c != (bfd_link_info *)0x0);\n  }" if (parenthesized_expression "(info != (bfd_link_info *)0x0)" ( (binary_expression "info != (bfd_link_info *)0x0" identifier != (cast_expression "(bfd_link_info *)0x0" ( (type_descriptor "bfd_link_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      iVar6 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar6 == 0) {\n        pcVar9 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        einfo(pcVar9,local_2c);\n        return;\n      }\n      uVar1 = *(undefined4 *)((int)&local_2c->flags + 4);\n      for (paVar2 = (asection *)local_2c->extern_protected_data; paVar2 != (asection *)0x0;\n          paVar2 = paVar2->next) {\n        if (((paVar2->flags & 0x20000) == 0) || (paVar2->output_section != pbVar5)) {\n          current_sec = paVar2;\n          uVar7 = bfd_get_reloc_upper_bound(local_2c,paVar2);\n          __ptr = (undefined4 *)xmalloc(uVar7);\n          iVar6 = bfd_canonicalize_reloc(local_2c,paVar2,__ptr,uVar1);\n          puVar10 = __ptr;\n          if (0 < iVar6) {\n            do {\n              while( true ) {\n                paVar3 = (arelent *)*puVar10;\n                pbVar4 = *paVar3->sym_ptr_ptr;\n                pcVar9 = pbVar4->name;\n                if (import_hash == (bfd_hash_table *)0x0) break;\n                iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0);\n                if (iVar8 != 0) {\n                  strcpy(name,pbVar4->name);\n                  (*cb)((arelent *)*puVar10,paVar2,name,symname);\n                }\nLAB_00062534:\n                puVar10 = puVar10 + 1;\n                if (__ptr + iVar6 == puVar10) goto LAB_00062585;\n              }\n              iVar8 = strcmp(name,pcVar9);\n              if (iVar8 != 0) goto LAB_00062534;\n              puVar10 = puVar10 + 1;\n              (*cb)(paVar3,paVar2,name,symname);\n            } while (__ptr + iVar6 != puVar10);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(bfd_link_info **)(local_2c + 1);\n    } while (local_2c != (bfd_link_info *)0x0);\n  }" { (do_statement "do {\n      iVar6 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar6 == 0) {\n        pcVar9 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        einfo(pcVar9,local_2c);\n        return;\n      }\n      uVar1 = *(undefined4 *)((int)&local_2c->flags + 4);\n      for (paVar2 = (asection *)local_2c->extern_protected_data; paVar2 != (asection *)0x0;\n          paVar2 = paVar2->next) {\n        if (((paVar2->flags & 0x20000) == 0) || (paVar2->output_section != pbVar5)) {\n          current_sec = paVar2;\n          uVar7 = bfd_get_reloc_upper_bound(local_2c,paVar2);\n          __ptr = (undefined4 *)xmalloc(uVar7);\n          iVar6 = bfd_canonicalize_reloc(local_2c,paVar2,__ptr,uVar1);\n          puVar10 = __ptr;\n          if (0 < iVar6) {\n            do {\n              while( true ) {\n                paVar3 = (arelent *)*puVar10;\n                pbVar4 = *paVar3->sym_ptr_ptr;\n                pcVar9 = pbVar4->name;\n                if (import_hash == (bfd_hash_table *)0x0) break;\n                iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0);\n                if (iVar8 != 0) {\n                  strcpy(name,pbVar4->name);\n                  (*cb)((arelent *)*puVar10,paVar2,name,symname);\n                }\nLAB_00062534:\n                puVar10 = puVar10 + 1;\n                if (__ptr + iVar6 == puVar10) goto LAB_00062585;\n              }\n              iVar8 = strcmp(name,pcVar9);\n              if (iVar8 != 0) goto LAB_00062534;\n              puVar10 = puVar10 + 1;\n              (*cb)(paVar3,paVar2,name,symname);\n            } while (__ptr + iVar6 != puVar10);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(bfd_link_info **)(local_2c + 1);\n    } while (local_2c != (bfd_link_info *)0x0);" do (compound_statement "{\n      iVar6 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar6 == 0) {\n        pcVar9 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        einfo(pcVar9,local_2c);\n        return;\n      }\n      uVar1 = *(undefined4 *)((int)&local_2c->flags + 4);\n      for (paVar2 = (asection *)local_2c->extern_protected_data; paVar2 != (asection *)0x0;\n          paVar2 = paVar2->next) {\n        if (((paVar2->flags & 0x20000) == 0) || (paVar2->output_section != pbVar5)) {\n          current_sec = paVar2;\n          uVar7 = bfd_get_reloc_upper_bound(local_2c,paVar2);\n          __ptr = (undefined4 *)xmalloc(uVar7);\n          iVar6 = bfd_canonicalize_reloc(local_2c,paVar2,__ptr,uVar1);\n          puVar10 = __ptr;\n          if (0 < iVar6) {\n            do {\n              while( true ) {\n                paVar3 = (arelent *)*puVar10;\n                pbVar4 = *paVar3->sym_ptr_ptr;\n                pcVar9 = pbVar4->name;\n                if (import_hash == (bfd_hash_table *)0x0) break;\n                iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0);\n                if (iVar8 != 0) {\n                  strcpy(name,pbVar4->name);\n                  (*cb)((arelent *)*puVar10,paVar2,name,symname);\n                }\nLAB_00062534:\n                puVar10 = puVar10 + 1;\n                if (__ptr + iVar6 == puVar10) goto LAB_00062585;\n              }\n              iVar8 = strcmp(name,pcVar9);\n              if (iVar8 != 0) goto LAB_00062534;\n              puVar10 = puVar10 + 1;\n              (*cb)(paVar3,paVar2,name,symname);\n            } while (__ptr + iVar6 != puVar10);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(bfd_link_info **)(local_2c + 1);\n    }" { (expression_statement "iVar6 = bfd_generic_link_read_symbols(local_2c);" (assignment_expression "iVar6 = bfd_generic_link_read_symbols(local_2c)" identifier = (call_expression "bfd_generic_link_read_symbols(local_2c)" identifier (argument_list "(local_2c)" ( identifier )))) ;) (if_statement "if (iVar6 == 0) {\n        pcVar9 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        einfo(pcVar9,local_2c);\n        return;\n      }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar9 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        einfo(pcVar9,local_2c);\n        return;\n      }" { (expression_statement "pcVar9 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);" (assignment_expression "pcVar9 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5)" identifier (argument_list "(0,"%F%P: %pB: could not read symbols: %E\n",5)" ( number_literal , (string_literal ""%F%P: %pB: could not read symbols: %E\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar9,local_2c);" (call_expression "einfo(pcVar9,local_2c)" identifier (argument_list "(pcVar9,local_2c)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar1 = *(undefined4 *)((int)&local_2c->flags + 4);" (assignment_expression "uVar1 = *(undefined4 *)((int)&local_2c->flags + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&local_2c->flags + 4)" * (cast_expression "(undefined4 *)((int)&local_2c->flags + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_2c->flags + 4)" ( (binary_expression "(int)&local_2c->flags + 4" (cast_expression "(int)&local_2c->flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_2c->flags" & (field_expression "local_2c->flags" identifier -> field_identifier))) + number_literal) ))))) ;) (for_statement "for (paVar2 = (asection *)local_2c->extern_protected_data; paVar2 != (asection *)0x0;\n          paVar2 = paVar2->next) {\n        if (((paVar2->flags & 0x20000) == 0) || (paVar2->output_section != pbVar5)) {\n          current_sec = paVar2;\n          uVar7 = bfd_get_reloc_upper_bound(local_2c,paVar2);\n          __ptr = (undefined4 *)xmalloc(uVar7);\n          iVar6 = bfd_canonicalize_reloc(local_2c,paVar2,__ptr,uVar1);\n          puVar10 = __ptr;\n          if (0 < iVar6) {\n            do {\n              while( true ) {\n                paVar3 = (arelent *)*puVar10;\n                pbVar4 = *paVar3->sym_ptr_ptr;\n                pcVar9 = pbVar4->name;\n                if (import_hash == (bfd_hash_table *)0x0) break;\n                iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0);\n                if (iVar8 != 0) {\n                  strcpy(name,pbVar4->name);\n                  (*cb)((arelent *)*puVar10,paVar2,name,symname);\n                }\nLAB_00062534:\n                puVar10 = puVar10 + 1;\n                if (__ptr + iVar6 == puVar10) goto LAB_00062585;\n              }\n              iVar8 = strcmp(name,pcVar9);\n              if (iVar8 != 0) goto LAB_00062534;\n              puVar10 = puVar10 + 1;\n              (*cb)(paVar3,paVar2,name,symname);\n            } while (__ptr + iVar6 != puVar10);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }" for ( (assignment_expression "paVar2 = (asection *)local_2c->extern_protected_data" identifier = (cast_expression "(asection *)local_2c->extern_protected_data" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_2c->extern_protected_data" identifier -> field_identifier))) ; (binary_expression "paVar2 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "paVar2 = paVar2->next" identifier = (field_expression "paVar2->next" identifier -> field_identifier)) ) (compound_statement "{\n        if (((paVar2->flags & 0x20000) == 0) || (paVar2->output_section != pbVar5)) {\n          current_sec = paVar2;\n          uVar7 = bfd_get_reloc_upper_bound(local_2c,paVar2);\n          __ptr = (undefined4 *)xmalloc(uVar7);\n          iVar6 = bfd_canonicalize_reloc(local_2c,paVar2,__ptr,uVar1);\n          puVar10 = __ptr;\n          if (0 < iVar6) {\n            do {\n              while( true ) {\n                paVar3 = (arelent *)*puVar10;\n                pbVar4 = *paVar3->sym_ptr_ptr;\n                pcVar9 = pbVar4->name;\n                if (import_hash == (bfd_hash_table *)0x0) break;\n                iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0);\n                if (iVar8 != 0) {\n                  strcpy(name,pbVar4->name);\n                  (*cb)((arelent *)*puVar10,paVar2,name,symname);\n                }\nLAB_00062534:\n                puVar10 = puVar10 + 1;\n                if (__ptr + iVar6 == puVar10) goto LAB_00062585;\n              }\n              iVar8 = strcmp(name,pcVar9);\n              if (iVar8 != 0) goto LAB_00062534;\n              puVar10 = puVar10 + 1;\n              (*cb)(paVar3,paVar2,name,symname);\n            } while (__ptr + iVar6 != puVar10);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }" { (if_statement "if (((paVar2->flags & 0x20000) == 0) || (paVar2->output_section != pbVar5)) {\n          current_sec = paVar2;\n          uVar7 = bfd_get_reloc_upper_bound(local_2c,paVar2);\n          __ptr = (undefined4 *)xmalloc(uVar7);\n          iVar6 = bfd_canonicalize_reloc(local_2c,paVar2,__ptr,uVar1);\n          puVar10 = __ptr;\n          if (0 < iVar6) {\n            do {\n              while( true ) {\n                paVar3 = (arelent *)*puVar10;\n                pbVar4 = *paVar3->sym_ptr_ptr;\n                pcVar9 = pbVar4->name;\n                if (import_hash == (bfd_hash_table *)0x0) break;\n                iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0);\n                if (iVar8 != 0) {\n                  strcpy(name,pbVar4->name);\n                  (*cb)((arelent *)*puVar10,paVar2,name,symname);\n                }\nLAB_00062534:\n                puVar10 = puVar10 + 1;\n                if (__ptr + iVar6 == puVar10) goto LAB_00062585;\n              }\n              iVar8 = strcmp(name,pcVar9);\n              if (iVar8 != 0) goto LAB_00062534;\n              puVar10 = puVar10 + 1;\n              (*cb)(paVar3,paVar2,name,symname);\n            } while (__ptr + iVar6 != puVar10);\n          }\nLAB_00062585:\n          free(__ptr);\n        }" if (parenthesized_expression "(((paVar2->flags & 0x20000) == 0) || (paVar2->output_section != pbVar5))" ( (binary_expression "((paVar2->flags & 0x20000) == 0) || (paVar2->output_section != pbVar5)" (parenthesized_expression "((paVar2->flags & 0x20000) == 0)" ( (binary_expression "(paVar2->flags & 0x20000) == 0" (parenthesized_expression "(paVar2->flags & 0x20000)" ( (binary_expression "paVar2->flags & 0x20000" (field_expression "paVar2->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) || (parenthesized_expression "(paVar2->output_section != pbVar5)" ( (binary_expression "paVar2->output_section != pbVar5" (field_expression "paVar2->output_section" identifier -> field_identifier) != identifier) ))) )) (compound_statement "{\n          current_sec = paVar2;\n          uVar7 = bfd_get_reloc_upper_bound(local_2c,paVar2);\n          __ptr = (undefined4 *)xmalloc(uVar7);\n          iVar6 = bfd_canonicalize_reloc(local_2c,paVar2,__ptr,uVar1);\n          puVar10 = __ptr;\n          if (0 < iVar6) {\n            do {\n              while( true ) {\n                paVar3 = (arelent *)*puVar10;\n                pbVar4 = *paVar3->sym_ptr_ptr;\n                pcVar9 = pbVar4->name;\n                if (import_hash == (bfd_hash_table *)0x0) break;\n                iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0);\n                if (iVar8 != 0) {\n                  strcpy(name,pbVar4->name);\n                  (*cb)((arelent *)*puVar10,paVar2,name,symname);\n                }\nLAB_00062534:\n                puVar10 = puVar10 + 1;\n                if (__ptr + iVar6 == puVar10) goto LAB_00062585;\n              }\n              iVar8 = strcmp(name,pcVar9);\n              if (iVar8 != 0) goto LAB_00062534;\n              puVar10 = puVar10 + 1;\n              (*cb)(paVar3,paVar2,name,symname);\n            } while (__ptr + iVar6 != puVar10);\n          }\nLAB_00062585:\n          free(__ptr);\n        }" { (expression_statement "current_sec = paVar2;" (assignment_expression "current_sec = paVar2" identifier = identifier) ;) (expression_statement "uVar7 = bfd_get_reloc_upper_bound(local_2c,paVar2);" (assignment_expression "uVar7 = bfd_get_reloc_upper_bound(local_2c,paVar2)" identifier = (call_expression "bfd_get_reloc_upper_bound(local_2c,paVar2)" identifier (argument_list "(local_2c,paVar2)" ( identifier , identifier )))) ;) (expression_statement "__ptr = (undefined4 *)xmalloc(uVar7);" (assignment_expression "__ptr = (undefined4 *)xmalloc(uVar7)" identifier = (cast_expression "(undefined4 *)xmalloc(uVar7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar7)" identifier (argument_list "(uVar7)" ( identifier ))))) ;) (expression_statement "iVar6 = bfd_canonicalize_reloc(local_2c,paVar2,__ptr,uVar1);" (assignment_expression "iVar6 = bfd_canonicalize_reloc(local_2c,paVar2,__ptr,uVar1)" identifier = (call_expression "bfd_canonicalize_reloc(local_2c,paVar2,__ptr,uVar1)" identifier (argument_list "(local_2c,paVar2,__ptr,uVar1)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar10 = __ptr;" (assignment_expression "puVar10 = __ptr" identifier = identifier) ;) (if_statement "if (0 < iVar6) {\n            do {\n              while( true ) {\n                paVar3 = (arelent *)*puVar10;\n                pbVar4 = *paVar3->sym_ptr_ptr;\n                pcVar9 = pbVar4->name;\n                if (import_hash == (bfd_hash_table *)0x0) break;\n                iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0);\n                if (iVar8 != 0) {\n                  strcpy(name,pbVar4->name);\n                  (*cb)((arelent *)*puVar10,paVar2,name,symname);\n                }\nLAB_00062534:\n                puVar10 = puVar10 + 1;\n                if (__ptr + iVar6 == puVar10) goto LAB_00062585;\n              }\n              iVar8 = strcmp(name,pcVar9);\n              if (iVar8 != 0) goto LAB_00062534;\n              puVar10 = puVar10 + 1;\n              (*cb)(paVar3,paVar2,name,symname);\n            } while (__ptr + iVar6 != puVar10);\n          }" if (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) (compound_statement "{\n            do {\n              while( true ) {\n                paVar3 = (arelent *)*puVar10;\n                pbVar4 = *paVar3->sym_ptr_ptr;\n                pcVar9 = pbVar4->name;\n                if (import_hash == (bfd_hash_table *)0x0) break;\n                iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0);\n                if (iVar8 != 0) {\n                  strcpy(name,pbVar4->name);\n                  (*cb)((arelent *)*puVar10,paVar2,name,symname);\n                }\nLAB_00062534:\n                puVar10 = puVar10 + 1;\n                if (__ptr + iVar6 == puVar10) goto LAB_00062585;\n              }\n              iVar8 = strcmp(name,pcVar9);\n              if (iVar8 != 0) goto LAB_00062534;\n              puVar10 = puVar10 + 1;\n              (*cb)(paVar3,paVar2,name,symname);\n            } while (__ptr + iVar6 != puVar10);\n          }" { (do_statement "do {\n              while( true ) {\n                paVar3 = (arelent *)*puVar10;\n                pbVar4 = *paVar3->sym_ptr_ptr;\n                pcVar9 = pbVar4->name;\n                if (import_hash == (bfd_hash_table *)0x0) break;\n                iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0);\n                if (iVar8 != 0) {\n                  strcpy(name,pbVar4->name);\n                  (*cb)((arelent *)*puVar10,paVar2,name,symname);\n                }\nLAB_00062534:\n                puVar10 = puVar10 + 1;\n                if (__ptr + iVar6 == puVar10) goto LAB_00062585;\n              }\n              iVar8 = strcmp(name,pcVar9);\n              if (iVar8 != 0) goto LAB_00062534;\n              puVar10 = puVar10 + 1;\n              (*cb)(paVar3,paVar2,name,symname);\n            } while (__ptr + iVar6 != puVar10);" do (compound_statement "{\n              while( true ) {\n                paVar3 = (arelent *)*puVar10;\n                pbVar4 = *paVar3->sym_ptr_ptr;\n                pcVar9 = pbVar4->name;\n                if (import_hash == (bfd_hash_table *)0x0) break;\n                iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0);\n                if (iVar8 != 0) {\n                  strcpy(name,pbVar4->name);\n                  (*cb)((arelent *)*puVar10,paVar2,name,symname);\n                }\nLAB_00062534:\n                puVar10 = puVar10 + 1;\n                if (__ptr + iVar6 == puVar10) goto LAB_00062585;\n              }\n              iVar8 = strcmp(name,pcVar9);\n              if (iVar8 != 0) goto LAB_00062534;\n              puVar10 = puVar10 + 1;\n              (*cb)(paVar3,paVar2,name,symname);\n            }" { (while_statement "while( true ) {\n                paVar3 = (arelent *)*puVar10;\n                pbVar4 = *paVar3->sym_ptr_ptr;\n                pcVar9 = pbVar4->name;\n                if (import_hash == (bfd_hash_table *)0x0) break;\n                iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0);\n                if (iVar8 != 0) {\n                  strcpy(name,pbVar4->name);\n                  (*cb)((arelent *)*puVar10,paVar2,name,symname);\n                }\nLAB_00062534:\n                puVar10 = puVar10 + 1;\n                if (__ptr + iVar6 == puVar10) goto LAB_00062585;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                paVar3 = (arelent *)*puVar10;\n                pbVar4 = *paVar3->sym_ptr_ptr;\n                pcVar9 = pbVar4->name;\n                if (import_hash == (bfd_hash_table *)0x0) break;\n                iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0);\n                if (iVar8 != 0) {\n                  strcpy(name,pbVar4->name);\n                  (*cb)((arelent *)*puVar10,paVar2,name,symname);\n                }\nLAB_00062534:\n                puVar10 = puVar10 + 1;\n                if (__ptr + iVar6 == puVar10) goto LAB_00062585;\n              }" { (expression_statement "paVar3 = (arelent *)*puVar10;" (assignment_expression "paVar3 = (arelent *)*puVar10" identifier = (cast_expression "(arelent *)*puVar10" ( (type_descriptor "arelent *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar10" * identifier))) ;) (expression_statement "pbVar4 = *paVar3->sym_ptr_ptr;" (assignment_expression "pbVar4 = *paVar3->sym_ptr_ptr" identifier = (pointer_expression "*paVar3->sym_ptr_ptr" * (field_expression "paVar3->sym_ptr_ptr" identifier -> field_identifier))) ;) (expression_statement "pcVar9 = pbVar4->name;" (assignment_expression "pcVar9 = pbVar4->name" identifier = (field_expression "pbVar4->name" identifier -> field_identifier)) ;) (if_statement "if (import_hash == (bfd_hash_table *)0x0) break;" if (parenthesized_expression "(import_hash == (bfd_hash_table *)0x0)" ( (binary_expression "import_hash == (bfd_hash_table *)0x0" identifier == (cast_expression "(bfd_hash_table *)0x0" ( (type_descriptor "bfd_hash_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0);" (assignment_expression "iVar8 = bfd_hash_lookup(import_hash,pcVar9,0,0)" identifier = (call_expression "bfd_hash_lookup(import_hash,pcVar9,0,0)" identifier (argument_list "(import_hash,pcVar9,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar8 != 0) {\n                  strcpy(name,pbVar4->name);\n                  (*cb)((arelent *)*puVar10,paVar2,name,symname);\n                }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n                  strcpy(name,pbVar4->name);\n                  (*cb)((arelent *)*puVar10,paVar2,name,symname);\n                }" { (expression_statement "strcpy(name,pbVar4->name);" (call_expression "strcpy(name,pbVar4->name)" identifier (argument_list "(name,pbVar4->name)" ( identifier , (field_expression "pbVar4->name" identifier -> field_identifier) ))) ;) (expression_statement "(*cb)((arelent *)*puVar10,paVar2,name,symname);" (call_expression "(*cb)((arelent *)*puVar10,paVar2,name,symname)" (parenthesized_expression "(*cb)" ( (pointer_expression "*cb" * identifier) )) (argument_list "((arelent *)*puVar10,paVar2,name,symname)" ( (cast_expression "(arelent *)*puVar10" ( (type_descriptor "arelent *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar10" * identifier)) , identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_00062534:\n                puVar10 = puVar10 + 1;" statement_identifier : (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;)) (if_statement "if (__ptr + iVar6 == puVar10) goto LAB_00062585;" if (parenthesized_expression "(__ptr + iVar6 == puVar10)" ( (binary_expression "__ptr + iVar6 == puVar10" (binary_expression "__ptr + iVar6" identifier + identifier) == identifier) )) (goto_statement "goto LAB_00062585;" goto statement_identifier ;)) })) (expression_statement "iVar8 = strcmp(name,pcVar9);" (assignment_expression "iVar8 = strcmp(name,pcVar9)" identifier = (call_expression "strcmp(name,pcVar9)" identifier (argument_list "(name,pcVar9)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 != 0) goto LAB_00062534;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062534;" goto statement_identifier ;)) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "(*cb)(paVar3,paVar2,name,symname);" (call_expression "(*cb)(paVar3,paVar2,name,symname)" (parenthesized_expression "(*cb)" ( (pointer_expression "*cb" * identifier) )) (argument_list "(paVar3,paVar2,name,symname)" ( identifier , identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "(__ptr + iVar6 != puVar10)" ( (binary_expression "__ptr + iVar6 != puVar10" (binary_expression "__ptr + iVar6" identifier + identifier) != identifier) )) ;) })) (labeled_statement "LAB_00062585:\n          free(__ptr);" statement_identifier : (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;)) })) })) (expression_statement "local_2c = *(bfd_link_info **)(local_2c + 1);" (assignment_expression "local_2c = *(bfd_link_info **)(local_2c + 1)" identifier = (pointer_expression "*(bfd_link_info **)(local_2c + 1)" * (cast_expression "(bfd_link_info **)(local_2c + 1)" ( (type_descriptor "bfd_link_info **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_2c + 1)" ( (binary_expression "local_2c + 1" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(local_2c != (bfd_link_info *)0x0)" ( (binary_expression "local_2c != (bfd_link_info *)0x0" identifier != (cast_expression "(bfd_link_info *)0x0" ( (type_descriptor "bfd_link_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 FUN_00062430(int param_1,char *param_2,undefined4 param_3,int param_4,code *param_5)\n\n{\n  undefined4 *puVar1;\n  char *__s2;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 *__ptr;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  int local_2c;\n  \n  puVar2 = PTR__bfd_std_section_001cefbc + 0x180;\n  local_2c = param_1;\n  if (param_1 != 0) {\n    do {\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    } while (local_2c != 0);\n  }\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_00062430(int param_1,char *param_2,undefined4 param_3,int param_4,code *param_5)\n\n{\n  undefined4 *puVar1;\n  char *__s2;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 *__ptr;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  int local_2c;\n  \n  puVar2 = PTR__bfd_std_section_001cefbc + 0x180;\n  local_2c = param_1;\n  if (param_1 != 0) {\n    do {\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    } while (local_2c != 0);\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00062430(int param_1,char *param_2,undefined4 param_3,int param_4,code *param_5)" identifier (parameter_list "(int param_1,char *param_2,undefined4 param_3,int param_4,code *param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "code *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) ))) (compound_statement "{\n  undefined4 *puVar1;\n  char *__s2;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 *__ptr;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  int local_2c;\n  \n  puVar2 = PTR__bfd_std_section_001cefbc + 0x180;\n  local_2c = param_1;\n  if (param_1 != 0) {\n    do {\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    } while (local_2c != 0);\n  }\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char *__s2;" primitive_type (pointer_declarator "*__s2" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR__bfd_std_section_001cefbc + 0x180;" (assignment_expression "puVar2 = PTR__bfd_std_section_001cefbc + 0x180" identifier = (binary_expression "PTR__bfd_std_section_001cefbc + 0x180" identifier + number_literal)) ;) (expression_statement "local_2c = param_1;" (assignment_expression "local_2c = param_1" identifier = identifier) ;) (if_statement "if (param_1 != 0) {\n    do {\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    } while (local_2c != 0);\n  }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    } while (local_2c != 0);\n  }" { (do_statement "do {\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    } while (local_2c != 0);" do (compound_statement "{\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    }" { (expression_statement "iVar3 = bfd_generic_link_read_symbols(local_2c);" (assignment_expression "iVar3 = bfd_generic_link_read_symbols(local_2c)" identifier = (call_expression "bfd_generic_link_read_symbols(local_2c)" identifier (argument_list "(local_2c)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }" { (expression_statement "uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);" (assignment_expression "uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5)" identifier (argument_list "(0,"%F%P: %pB: could not read symbols: %E\n",5)" ( number_literal , (string_literal ""%F%P: %pB: could not read symbols: %E\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar8,local_2c);" (call_expression "FUN_00034d20(uVar8,local_2c)" identifier (argument_list "(uVar8,local_2c)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar8 = *(undefined4 *)(local_2c + 0x78);" (assignment_expression "uVar8 = *(undefined4 *)(local_2c + 0x78)" identifier = (pointer_expression "*(undefined4 *)(local_2c + 0x78)" * (cast_expression "(undefined4 *)(local_2c + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + 0x78)" ( (binary_expression "local_2c + 0x78" identifier + number_literal) ))))) ;) (for_statement "for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }" for ( (assignment_expression "iVar3 = *(int *)(local_2c + 0x60)" identifier = (pointer_expression "*(int *)(local_2c + 0x60)" * (cast_expression "(int *)(local_2c + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + 0x60)" ( (binary_expression "local_2c + 0x60" identifier + number_literal) ))))) ; (binary_expression "iVar3 != 0" identifier != number_literal) ; (assignment_expression "iVar3 = *(int *)(iVar3 + 0xc)" identifier = (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ) (compound_statement "{\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }" { (if_statement "if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }" if (parenthesized_expression "(((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2))" ( (binary_expression "((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)" (parenthesized_expression "((*(byte *)(iVar3 + 0x16) & 2) == 0)" ( (binary_expression "(*(byte *)(iVar3 + 0x16) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x16) & 2)" ( (binary_expression "*(byte *)(iVar3 + 0x16) & 2" (pointer_expression "*(byte *)(iVar3 + 0x16)" * (cast_expression "(byte *)(iVar3 + 0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x16)" ( (binary_expression "iVar3 + 0x16" identifier + number_literal) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(undefined **)(iVar3 + 0x54) != puVar2)" ( (binary_expression "*(undefined **)(iVar3 + 0x54) != puVar2" (pointer_expression "*(undefined **)(iVar3 + 0x54)" * (cast_expression "(undefined **)(iVar3 + 0x54)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x54)" ( (binary_expression "iVar3 + 0x54" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }" { (expression_statement "DAT_001d124c = iVar3;" (assignment_expression "DAT_001d124c = iVar3" identifier = identifier) ;) (expression_statement "uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);" (assignment_expression "uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3)" identifier = (call_expression "bfd_get_reloc_upper_bound(local_2c,iVar3)" identifier (argument_list "(local_2c,iVar3)" ( identifier , identifier )))) ;) (expression_statement "__ptr = (undefined4 *)xmalloc(uVar4);" (assignment_expression "__ptr = (undefined4 *)xmalloc(uVar4)" identifier = (cast_expression "(undefined4 *)xmalloc(uVar4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))))) ;) (expression_statement "iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);" (assignment_expression "iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8)" identifier = (call_expression "bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8)" identifier (argument_list "(local_2c,iVar3,__ptr,uVar8)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "puVar9 = __ptr;" (assignment_expression "puVar9 = __ptr" identifier = identifier) ;) (if_statement "if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }" if (parenthesized_expression "(0 < iVar5)" ( (binary_expression "0 < iVar5" number_literal < identifier) )) (compound_statement "{\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }" { (do_statement "do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);" do (compound_statement "{\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            }" { (while_statement "while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }" { (expression_statement "puVar1 = (undefined4 *)*puVar9;" (assignment_expression "puVar1 = (undefined4 *)*puVar9" identifier = (cast_expression "(undefined4 *)*puVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;) (expression_statement "iVar7 = *(int *)*puVar1;" (assignment_expression "iVar7 = *(int *)*puVar1" identifier = (pointer_expression "*(int *)*puVar1" * (cast_expression "(int *)*puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier)))) ;) (expression_statement "__s2 = *(char **)(iVar7 + 4);" (assignment_expression "__s2 = *(char **)(iVar7 + 4)" identifier = (pointer_expression "*(char **)(iVar7 + 4)" * (cast_expression "(char **)(iVar7 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (if_statement "if (param_4 == 0) break;" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = bfd_hash_lookup(param_4,__s2,0,0);" (assignment_expression "iVar6 = bfd_hash_lookup(param_4,__s2,0,0)" identifier = (call_expression "bfd_hash_lookup(param_4,__s2,0,0)" identifier (argument_list "(param_4,__s2,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }" { (expression_statement "strcpy(param_2,*(char **)(iVar7 + 4));" (call_expression "strcpy(param_2,*(char **)(iVar7 + 4))" identifier (argument_list "(param_2,*(char **)(iVar7 + 4))" ( identifier , (pointer_expression "*(char **)(iVar7 + 4)" * (cast_expression "(char **)(iVar7 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) ))) ;) (expression_statement "(*param_5)(*puVar9,iVar3,param_2,param_3);" (call_expression "(*param_5)(*puVar9,iVar3,param_2,param_3)" (parenthesized_expression "(*param_5)" ( (pointer_expression "*param_5" * identifier) )) (argument_list "(*puVar9,iVar3,param_2,param_3)" ( (pointer_expression "*puVar9" * identifier) , identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_00062534:\n                puVar9 = puVar9 + 1;" statement_identifier : (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;)) (if_statement "if (__ptr + iVar5 == puVar9) goto LAB_00062585;" if (parenthesized_expression "(__ptr + iVar5 == puVar9)" ( (binary_expression "__ptr + iVar5 == puVar9" (binary_expression "__ptr + iVar5" identifier + identifier) == identifier) )) (goto_statement "goto LAB_00062585;" goto statement_identifier ;)) })) (expression_statement "iVar7 = strcmp(param_2,__s2);" (assignment_expression "iVar7 = strcmp(param_2,__s2)" identifier = (call_expression "strcmp(param_2,__s2)" identifier (argument_list "(param_2,__s2)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) goto LAB_00062534;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062534;" goto statement_identifier ;)) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" identifier = (binary_expression "puVar9 + 1" identifier + number_literal)) ;) (expression_statement "(*param_5)(puVar1,iVar3,param_2,param_3);" (call_expression "(*param_5)(puVar1,iVar3,param_2,param_3)" (parenthesized_expression "(*param_5)" ( (pointer_expression "*param_5" * identifier) )) (argument_list "(puVar1,iVar3,param_2,param_3)" ( identifier , identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "(__ptr + iVar5 != puVar9)" ( (binary_expression "__ptr + iVar5 != puVar9" (binary_expression "__ptr + iVar5" identifier + identifier) != identifier) )) ;) })) (labeled_statement "LAB_00062585:\n          free(__ptr);" statement_identifier : (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;)) })) })) (expression_statement "local_2c = *(int *)(local_2c + 0x9c);" (assignment_expression "local_2c = *(int *)(local_2c + 0x9c)" identifier = (pointer_expression "*(int *)(local_2c + 0x9c)" * (cast_expression "(int *)(local_2c + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c + 0x9c)" ( (binary_expression "local_2c + 0x9c" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(local_2c != 0)" ( (binary_expression "local_2c != 0" identifier != number_literal) )) ;) })) (return_statement "return;" return ;) })))
(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 IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT , IDENT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_00062430(int param_1,char *param_2,undefined4 param_3,int param_4,code *param_5)\n\n{\n  undefined4 *puVar1;\n  char *__s2;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 *__ptr;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  int local_2c;\n  \n  puVar2 = PTR__bfd_std_section_001cefbc + 0x180;\n  local_2c = param_1;\n  if (param_1 != 0) {\n    do {\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    } while (local_2c != 0);\n  }\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00062430(int param_1,char *param_2,undefined4 param_3,int param_4,code *param_5)" (identifier "FUN_00062430") (parameter_list "(int param_1,char *param_2,undefined4 param_3,int param_4,code *param_5)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "code *param_5" (type_identifier "code") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  char *__s2;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 *__ptr;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  undefined4 uVar8;\n  undefined4 *puVar9;\n  int local_2c;\n  \n  puVar2 = PTR__bfd_std_section_001cefbc + 0x180;\n  local_2c = param_1;\n  if (param_1 != 0) {\n    do {\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    } while (local_2c != 0);\n  }\n  return;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "char *__s2;" (primitive_type "char") (pointer_declarator "*__s2" (* "*") (identifier "__s2")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 *__ptr;" (type_identifier "undefined4") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar2 = PTR__bfd_std_section_001cefbc + 0x180;" (assignment_expression "puVar2 = PTR__bfd_std_section_001cefbc + 0x180" (identifier "puVar2") (= "=") (binary_expression "PTR__bfd_std_section_001cefbc + 0x180" (identifier "PTR__bfd_std_section_001cefbc") (+ "+") (number_literal "0x180"))) (; ";")) (expression_statement "local_2c = param_1;" (assignment_expression "local_2c = param_1" (identifier "local_2c") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (param_1 != 0) {\n    do {\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    } while (local_2c != 0);\n  }" (if "if") (parenthesized_expression "(param_1 != 0)" (( "(") (binary_expression "param_1 != 0" (identifier "param_1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    } while (local_2c != 0);\n  }" ({ "{") (do_statement "do {\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    } while (local_2c != 0);" (do "do") (compound_statement "{\n      iVar3 = bfd_generic_link_read_symbols(local_2c);\n      if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }\n      uVar8 = *(undefined4 *)(local_2c + 0x78);\n      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }\n      local_2c = *(int *)(local_2c + 0x9c);\n    }" ({ "{") (expression_statement "iVar3 = bfd_generic_link_read_symbols(local_2c);" (assignment_expression "iVar3 = bfd_generic_link_read_symbols(local_2c)" (identifier "iVar3") (= "=") (call_expression "bfd_generic_link_read_symbols(local_2c)" (identifier "bfd_generic_link_read_symbols") (argument_list "(local_2c)" (( "(") (identifier "local_2c") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n        FUN_00034d20(uVar8,local_2c);\n        return;\n      }" ({ "{") (expression_statement "uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);" (assignment_expression "uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5)" (identifier "uVar8") (= "=") (call_expression "dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: %pB: could not read symbols: %E\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: %pB: could not read symbols: %E\n"" (" """) (string_content "%F%P: %pB: could not read symbols: %E") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar8,local_2c);" (call_expression "FUN_00034d20(uVar8,local_2c)" (identifier "FUN_00034d20") (argument_list "(uVar8,local_2c)" (( "(") (identifier "uVar8") (, ",") (identifier "local_2c") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar8 = *(undefined4 *)(local_2c + 0x78);" (assignment_expression "uVar8 = *(undefined4 *)(local_2c + 0x78)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)(local_2c + 0x78)" (* "*") (cast_expression "(undefined4 *)(local_2c + 0x78)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2c + 0x78)" (( "(") (binary_expression "local_2c + 0x78" (identifier "local_2c") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (for_statement "for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }" (for "for") (( "(") (assignment_expression "iVar3 = *(int *)(local_2c + 0x60)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(local_2c + 0x60)" (* "*") (cast_expression "(int *)(local_2c + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2c + 0x60)" (( "(") (binary_expression "local_2c + 0x60" (identifier "local_2c") (+ "+") (number_literal "0x60")) () ")"))))) (; ";") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar3 = *(int *)(iVar3 + 0xc)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar3 + 0xc)" (* "*") (cast_expression "(int *)(iVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")"))))) () ")") (compound_statement "{\n        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }\n      }" ({ "{") (if_statement "if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }" (if "if") (parenthesized_expression "(((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2))" (( "(") (binary_expression "((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)" (parenthesized_expression "((*(byte *)(iVar3 + 0x16) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(iVar3 + 0x16) & 2) == 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x16) & 2)" (( "(") (binary_expression "*(byte *)(iVar3 + 0x16) & 2" (pointer_expression "*(byte *)(iVar3 + 0x16)" (* "*") (cast_expression "(byte *)(iVar3 + 0x16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x16)" (( "(") (binary_expression "iVar3 + 0x16" (identifier "iVar3") (+ "+") (number_literal "0x16")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(undefined **)(iVar3 + 0x54) != puVar2)" (( "(") (binary_expression "*(undefined **)(iVar3 + 0x54) != puVar2" (pointer_expression "*(undefined **)(iVar3 + 0x54)" (* "*") (cast_expression "(undefined **)(iVar3 + 0x54)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 0x54)" (( "(") (binary_expression "iVar3 + 0x54" (identifier "iVar3") (+ "+") (number_literal "0x54")) () ")")))) (!= "!=") (identifier "puVar2")) () ")"))) () ")")) (compound_statement "{\n          DAT_001d124c = iVar3;\n          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);\n          __ptr = (undefined4 *)xmalloc(uVar4);\n          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);\n          puVar9 = __ptr;\n          if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }\nLAB_00062585:\n          free(__ptr);\n        }" ({ "{") (expression_statement "DAT_001d124c = iVar3;" (assignment_expression "DAT_001d124c = iVar3" (identifier "DAT_001d124c") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);" (assignment_expression "uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3)" (identifier "uVar4") (= "=") (call_expression "bfd_get_reloc_upper_bound(local_2c,iVar3)" (identifier "bfd_get_reloc_upper_bound") (argument_list "(local_2c,iVar3)" (( "(") (identifier "local_2c") (, ",") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "__ptr = (undefined4 *)xmalloc(uVar4);" (assignment_expression "__ptr = (undefined4 *)xmalloc(uVar4)" (identifier "__ptr") (= "=") (cast_expression "(undefined4 *)xmalloc(uVar4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(uVar4)" (identifier "xmalloc") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))))) (; ";")) (expression_statement "iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);" (assignment_expression "iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8)" (identifier "iVar5") (= "=") (call_expression "bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8)" (identifier "bfd_canonicalize_reloc") (argument_list "(local_2c,iVar3,__ptr,uVar8)" (( "(") (identifier "local_2c") (, ",") (identifier "iVar3") (, ",") (identifier "__ptr") (, ",") (identifier "uVar8") () ")")))) (; ";")) (expression_statement "puVar9 = __ptr;" (assignment_expression "puVar9 = __ptr" (identifier "puVar9") (= "=") (identifier "__ptr")) (; ";")) (if_statement "if (0 < iVar5) {\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }" (if "if") (parenthesized_expression "(0 < iVar5)" (( "(") (binary_expression "0 < iVar5" (number_literal "0") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n            do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);\n          }" ({ "{") (do_statement "do {\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            } while (__ptr + iVar5 != puVar9);" (do "do") (compound_statement "{\n              while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }\n              iVar7 = strcmp(param_2,__s2);\n              if (iVar7 != 0) goto LAB_00062534;\n              puVar9 = puVar9 + 1;\n              (*param_5)(puVar1,iVar3,param_2,param_3);\n            }" ({ "{") (while_statement "while( true ) {\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                puVar1 = (undefined4 *)*puVar9;\n                iVar7 = *(int *)*puVar1;\n                __s2 = *(char **)(iVar7 + 4);\n                if (param_4 == 0) break;\n                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);\n                if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }\nLAB_00062534:\n                puVar9 = puVar9 + 1;\n                if (__ptr + iVar5 == puVar9) goto LAB_00062585;\n              }" ({ "{") (expression_statement "puVar1 = (undefined4 *)*puVar9;" (assignment_expression "puVar1 = (undefined4 *)*puVar9" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)*puVar9" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar9" (* "*") (identifier "puVar9")))) (; ";")) (expression_statement "iVar7 = *(int *)*puVar1;" (assignment_expression "iVar7 = *(int *)*puVar1" (identifier "iVar7") (= "=") (pointer_expression "*(int *)*puVar1" (* "*") (cast_expression "(int *)*puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))))) (; ";")) (expression_statement "__s2 = *(char **)(iVar7 + 4);" (assignment_expression "__s2 = *(char **)(iVar7 + 4)" (identifier "__s2") (= "=") (pointer_expression "*(char **)(iVar7 + 4)" (* "*") (cast_expression "(char **)(iVar7 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (param_4 == 0) break;" (if "if") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar6 = bfd_hash_lookup(param_4,__s2,0,0);" (assignment_expression "iVar6 = bfd_hash_lookup(param_4,__s2,0,0)" (identifier "iVar6") (= "=") (call_expression "bfd_hash_lookup(param_4,__s2,0,0)" (identifier "bfd_hash_lookup") (argument_list "(param_4,__s2,0,0)" (( "(") (identifier "param_4") (, ",") (identifier "__s2") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar6 != 0) {\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  strcpy(param_2,*(char **)(iVar7 + 4));\n                  (*param_5)(*puVar9,iVar3,param_2,param_3);\n                }" ({ "{") (expression_statement "strcpy(param_2,*(char **)(iVar7 + 4));" (call_expression "strcpy(param_2,*(char **)(iVar7 + 4))" (identifier "strcpy") (argument_list "(param_2,*(char **)(iVar7 + 4))" (( "(") (identifier "param_2") (, ",") (pointer_expression "*(char **)(iVar7 + 4)" (* "*") (cast_expression "(char **)(iVar7 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")")))) () ")"))) (; ";")) (expression_statement "(*param_5)(*puVar9,iVar3,param_2,param_3);" (call_expression "(*param_5)(*puVar9,iVar3,param_2,param_3)" (parenthesized_expression "(*param_5)" (( "(") (pointer_expression "*param_5" (* "*") (identifier "param_5")) () ")")) (argument_list "(*puVar9,iVar3,param_2,param_3)" (( "(") (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (, ",") (identifier "iVar3") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00062534:\n                puVar9 = puVar9 + 1;" (statement_identifier "LAB_00062534") (: ":") (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (__ptr + iVar5 == puVar9) goto LAB_00062585;" (if "if") (parenthesized_expression "(__ptr + iVar5 == puVar9)" (( "(") (binary_expression "__ptr + iVar5 == puVar9" (binary_expression "__ptr + iVar5" (identifier "__ptr") (+ "+") (identifier "iVar5")) (== "==") (identifier "puVar9")) () ")")) (goto_statement "goto LAB_00062585;" (goto "goto") (statement_identifier "LAB_00062585") (; ";"))) (} "}"))) (expression_statement "iVar7 = strcmp(param_2,__s2);" (assignment_expression "iVar7 = strcmp(param_2,__s2)" (identifier "iVar7") (= "=") (call_expression "strcmp(param_2,__s2)" (identifier "strcmp") (argument_list "(param_2,__s2)" (( "(") (identifier "param_2") (, ",") (identifier "__s2") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) goto LAB_00062534;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062534;" (goto "goto") (statement_identifier "LAB_00062534") (; ";"))) (expression_statement "puVar9 = puVar9 + 1;" (assignment_expression "puVar9 = puVar9 + 1" (identifier "puVar9") (= "=") (binary_expression "puVar9 + 1" (identifier "puVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*param_5)(puVar1,iVar3,param_2,param_3);" (call_expression "(*param_5)(puVar1,iVar3,param_2,param_3)" (parenthesized_expression "(*param_5)" (( "(") (pointer_expression "*param_5" (* "*") (identifier "param_5")) () ")")) (argument_list "(puVar1,iVar3,param_2,param_3)" (( "(") (identifier "puVar1") (, ",") (identifier "iVar3") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(__ptr + iVar5 != puVar9)" (( "(") (binary_expression "__ptr + iVar5 != puVar9" (binary_expression "__ptr + iVar5" (identifier "__ptr") (+ "+") (identifier "iVar5")) (!= "!=") (identifier "puVar9")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00062585:\n          free(__ptr);" (statement_identifier "LAB_00062585") (: ":") (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";"))) (} "}"))) (} "}"))) (expression_statement "local_2c = *(int *)(local_2c + 0x9c);" (assignment_expression "local_2c = *(int *)(local_2c + 0x9c)" (identifier "local_2c") (= "=") (pointer_expression "*(int *)(local_2c + 0x9c)" (* "*") (cast_expression "(int *)(local_2c + 0x9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2c + 0x9c)" (( "(") (binary_expression "local_2c + 0x9c" (identifier "local_2c") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_2c != 0)" (( "(") (binary_expression "local_2c != 0" (identifier "local_2c") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void __regparm3
function_1(type_1 *var_2,char *name,char *symname,type_2 *var_12,
              type_3 *cb)

{
  type_4 uVar1;
  type_5 *var_7;
  type_6 *paVar3;
  type_7 *pbVar4;
  type_8 *var_8;
  int var_4;
  type_4 uVar7;
  type_4 *var_17;
  int var_14;
  char *pcVar9;
  type_4 *var_16;
  type_1 *var_20;
  
  var_8 = (type_8 *)(var_1 + 0x180);
  var_20 = var_2;
  if (var_2 != (type_1 *)0x0) {
    do {
      var_4 = var_3(var_20);
      if (var_4 == 0) {
        pcVar9 = (char *)var_5(0,"%F%P: %pB: could not read symbols: %E\n",5);
        var_6(pcVar9,var_20);
        return;
      }
      uVar1 = *(type_4 *)((int)&var_20->flags + 4);
      for (var_7 = (type_5 *)var_20->extern_protected_data; var_7 != (type_5 *)0x0;
          var_7 = var_7->next) {
        if (((var_7->flags & 0x20000) == 0) || (var_7->output_section != var_8)) {
          current_sec = var_7;
          uVar7 = var_9(var_20,var_7);
          var_17 = (type_4 *)var_10(uVar7);
          var_4 = var_11(var_20,var_7,var_17,uVar1);
          var_16 = var_17;
          if (0 < var_4) {
            do {
              while( true ) {
                paVar3 = (type_6 *)*var_16;
                pbVar4 = *paVar3->sym_ptr_ptr;
                pcVar9 = pbVar4->name;
                if (var_12 == (type_2 *)0x0) break;
                var_14 = var_13(var_12,pcVar9,0,0);
                if (var_14 != 0) {
                  var_15(name,pbVar4->name);
                  (*cb)((type_6 *)*var_16,var_7,name,symname);
                }
LAB_00062534:
                var_16 = var_16 + 1;
                if (var_17 + var_4 == var_16) goto LAB_00062585;
              }
              var_14 = var_18(name,pcVar9);
              if (var_14 != 0) goto LAB_00062534;
              var_16 = var_16 + 1;
              (*cb)(paVar3,var_7,name,symname);
            } while (var_17 + var_4 != var_16);
          }
LAB_00062585:
          var_19(var_17);
        }
      }
      var_20 = *(type_1 **)(var_20 + 1);
    } while (var_20 != (type_1 *)0x0);
  }
  return;
}


(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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (for_statement initializer: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier) (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) consequence: (goto_statement label: (statement_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: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (return_statement))))

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

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

{
  undefined4 *puVar1;
  char *__s2;
  undefined *puVar2;
  int iVar3;
  undefined4 uVar4;
  undefined4 *__ptr;
  int iVar5;
  int iVar6;
  int iVar7;
  undefined4 uVar8;
  undefined4 *puVar9;
  int local_2c;
  
  puVar2 = PTR__bfd_std_section_001cefbc + 0x180;
  local_2c = param_1;
  if (param_1 != 0) {
    do {
      iVar3 = bfd_generic_link_read_symbols(local_2c);
      if (iVar3 == 0) {
        uVar8 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);
        FUN_00034d20(uVar8,local_2c);
        return;
      }
      uVar8 = *(undefined4 *)(local_2c + 0x78);
      for (iVar3 = *(int *)(local_2c + 0x60); iVar3 != 0; iVar3 = *(int *)(iVar3 + 0xc)) {
        if (((*(byte *)(iVar3 + 0x16) & 2) == 0) || (*(undefined **)(iVar3 + 0x54) != puVar2)) {
          DAT_001d124c = iVar3;
          uVar4 = bfd_get_reloc_upper_bound(local_2c,iVar3);
          __ptr = (undefined4 *)xmalloc(uVar4);
          iVar5 = bfd_canonicalize_reloc(local_2c,iVar3,__ptr,uVar8);
          puVar9 = __ptr;
          if (0 < iVar5) {
            do {
              while( true ) {
                puVar1 = (undefined4 *)*puVar9;
                iVar7 = *(int *)*puVar1;
                __s2 = *(char **)(iVar7 + 4);
                if (param_4 == 0) break;
                iVar6 = bfd_hash_lookup(param_4,__s2,0,0);
                if (iVar6 != 0) {
                  strcpy(param_2,*(char **)(iVar7 + 4));
                  (*param_5)(*puVar9,iVar3,param_2,param_3);
                }
LAB_00062534:
                puVar9 = puVar9 + 1;
                if (__ptr + iVar5 == puVar9) goto LAB_00062585;
              }
              iVar7 = strcmp(param_2,__s2);
              if (iVar7 != 0) goto LAB_00062534;
              puVar9 = puVar9 + 1;
              (*param_5)(puVar1,iVar3,param_2,param_3);
            } while (__ptr + iVar5 != puVar9);
          }
LAB_00062585:
          free(__ptr);
        }
      }
      local_2c = *(int *)(local_2c + 0x9c);
    } while (local_2c != 0);
  }
  return;
}

