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

void pep_find_data_imports(char *symhead,_func_void_arelent_ptr_asection_ptr_char_ptr_char_ptr *cb)

{
  undefined4 uVar1;
  bfd *pbVar2;
  int iVar3;
  size_t sVar4;
  undefined4 *puVar5;
  int iVar6;
  char *pcVar7;
  bfd_hash_table *import_hash;
  int iVar8;
  int iVar9;
  bfd_link_hash_entry *pbVar10;
  int *piVar11;
  uint uVar12;
  char *local_40;
  void *local_38;
  
  pbVar10 = (link_info.hash)->undefs;
  if (pbVar10 == (bfd_link_hash_entry *)0x0) {
    return;
  }
  uVar12 = 0;
  do {
    if ((pbVar10->field_0xc == '\x01') && (sVar4 = strlen((pbVar10->root).string), uVar12 < sVar4))
    {
      uVar12 = sVar4;
    }
    pbVar10 = (pbVar10->u).undef.next;
  } while (pbVar10 != (bfd_link_hash_entry *)0x0);
  if (uVar12 == 0) {
    return;
  }
  sVar4 = strlen(symhead);
  if (link_info.pei386_runtime_pseudo_reloc == 2) {
    import_hash = (bfd_hash_table *)xmalloc(0x1c);
    iVar6 = bfd_hash_table_init(import_hash,PTR_bfd_hash_newfunc_001cdf98,0xc);
    if (iVar6 == 0) {
      pcVar7 = (char *)dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);
      einfo(pcVar7);
    }
    local_38 = (void *)xmalloc(uVar12 + 0x21);
    local_40 = (char *)((int)local_38 + 0x20);
    pbVar10 = (link_info.hash)->undefs;
    if (pbVar10 != (bfd_link_hash_entry *)0x0) goto LAB_0005cf05;
  }
  else {
    local_38 = (void *)xmalloc(uVar12 + 0x21);
    local_40 = (char *)((int)local_38 + 0x20);
    pbVar10 = (link_info.hash)->undefs;
    import_hash = (bfd_hash_table *)0x0;
    if (pbVar10 == (bfd_link_hash_entry *)0x0) goto LAB_0005d05d;
LAB_0005cf05:
    puVar5 = (undefined4 *)((int)local_38 + 0x1a);
    do {
      if (pbVar10->field_0xc == '\x01') {
        pcVar7 = (pbVar10->root).string;
        if (pep_dll_extra_pe_debug != 0) {
          printf("%s:%s\n","pep_find_data_imports",pcVar7);
          pcVar7 = (pbVar10->root).string;
        }
        strcpy(local_40,pcVar7);
        *puVar5 = 0x6d695f5f;
        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;
        iVar6 = bfd_link_hash_lookup(link_info.hash,puVar5,0,0,1);
        if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) {
          if (import_hash == (bfd_hash_table *)0x0) {
            iVar3 = *(int *)(*(int *)(iVar6 + 0x14) + 0xac);
            iVar8 = bfd_generic_link_read_symbols(iVar3);
            if (iVar8 == 0) {
              pcVar7 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);
              einfo(pcVar7,iVar3);
              return;
            }
            piVar11 = *(int **)(iVar3 + 0x78);
            iVar3 = *(int *)(iVar3 + 0x7c);
            if (0 < iVar3) {
              iVar8 = 0;
              do {
                pcVar7 = *(char **)(*piVar11 + 4);
                iVar9 = strncmp(pcVar7,symhead,sVar4);
                if (iVar9 == 0) {
                  if (pep_dll_extra_pe_debug != 0) {
                    printf("->%s\n",pcVar7);
                    pcVar7 = *(char **)(*piVar11 + 4);
                  }
                  if (pcVar7 + sVar4 != (char *)0x0) {
                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,
                                   (bfd_hash_table *)0x0,cb);
                    goto LAB_0005cfa1;
                  }
                  break;
                }
                iVar8 = iVar8 + 1;
                piVar11 = piVar11 + 1;
              } while (iVar3 != iVar8);
            }
          }
          else {
            bfd_hash_lookup(import_hash,(pbVar10->root).string,1,0);
LAB_0005cfa1:
            pcVar7 = *(char **)(iVar6 + 0x18);
            uVar1 = *(undefined4 *)(iVar6 + 0x1c);
            pbVar10->field_0xc = 4;
            (pbVar10->u).i.warning = pcVar7;
            pbVar2 = *(bfd **)(iVar6 + 0x14);
            *(undefined4 *)((int)&pbVar10->u + 0xc) = uVar1;
            (pbVar10->u).undef.abfd = pbVar2;
            if (link_info.pei386_auto_import == -1) {
              pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);
              info_msg(pcVar7,local_40,puVar5);
              if (pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0) {
                pcVar7 = (char *)dcgettext(0,
                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"
                                           ,5);
                einfo(pcVar7);
                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;
              }
            }
          }
        }
      }
      pbVar10 = (pbVar10->u).undef.next;
    } while (pbVar10 != (bfd_link_hash_entry *)0x0);
    if (import_hash == (bfd_hash_table *)0x0) goto LAB_0005d05d;
  }
  pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,(char *)0x0,import_hash,cb);
  bfd_hash_table_free(import_hash);
  free(import_hash);
LAB_0005d05d:
  free(local_38);
  return;
}



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

void FUN_0005ce60(char *param_1,undefined4 param_2)

{
  undefined4 uVar1;
  int iVar2;
  size_t sVar3;
  undefined4 *puVar4;
  int iVar5;
  undefined4 uVar6;
  void *__ptr;
  int iVar7;
  int iVar8;
  int iVar9;
  char *pcVar10;
  int *piVar11;
  uint uVar12;
  char *local_40;
  void *local_38;
  
  iVar7 = *(int *)(DAT_001d0400 + 0x1c);
  if (iVar7 == 0) {
    return;
  }
  uVar12 = 0;
  do {
    if ((*(char *)(iVar7 + 0xc) == '\x01') &&
       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)) {
      uVar12 = sVar3;
    }
    iVar7 = *(int *)(iVar7 + 0x10);
  } while (iVar7 != 0);
  if (uVar12 == 0) {
    return;
  }
  sVar3 = strlen(param_1);
  if (DAT_001d044c == 2) {
    __ptr = (void *)xmalloc(0x1c);
    iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc);
    if (iVar7 == 0) {
      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);
      FUN_00034d20(uVar6);
    }
    local_38 = (void *)xmalloc(uVar12 + 0x21);
    iVar7 = *(int *)(DAT_001d0400 + 0x1c);
    if (iVar7 != 0) goto LAB_0005cf05;
  }
  else {
    local_38 = (void *)xmalloc(uVar12 + 0x21);
    iVar7 = *(int *)(DAT_001d0400 + 0x1c);
    __ptr = (void *)0x0;
    if (iVar7 == 0) goto LAB_0005d05d;
LAB_0005cf05:
    local_40 = (char *)((int)local_38 + 0x20);
    puVar4 = (undefined4 *)((int)local_38 + 0x1a);
    do {
      if (*(char *)(iVar7 + 0xc) == '\x01') {
        pcVar10 = *(char **)(iVar7 + 4);
        if (DAT_001d0144 != 0) {
          printf("%s:%s\n","pep_find_data_imports",pcVar10);
          pcVar10 = *(char **)(iVar7 + 4);
        }
        strcpy(local_40,pcVar10);
        *puVar4 = 0x6d695f5f;
        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;
        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);
        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {
          if (__ptr == (void *)0x0) {
            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);
            iVar8 = bfd_generic_link_read_symbols(iVar2);
            if (iVar8 == 0) {
              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);
              FUN_00034d20(uVar6,iVar2);
              return;
            }
            piVar11 = *(int **)(iVar2 + 0x78);
            iVar2 = *(int *)(iVar2 + 0x7c);
            if (0 < iVar2) {
              iVar8 = 0;
              do {
                pcVar10 = *(char **)(*piVar11 + 4);
                iVar9 = strncmp(pcVar10,param_1,sVar3);
                if (iVar9 == 0) {
                  if (DAT_001d0144 != 0) {
                    printf("->%s\n",pcVar10);
                    pcVar10 = *(char **)(*piVar11 + 4);
                  }
                  if (pcVar10 + sVar3 != (char *)0x0) {
                    FUN_0005b620(0,param_2);
                    goto LAB_0005cfa1;
                  }
                  break;
                }
                iVar8 = iVar8 + 1;
                piVar11 = piVar11 + 1;
              } while (iVar2 != iVar8);
            }
          }
          else {
            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);
LAB_0005cfa1:
            uVar6 = *(undefined4 *)(iVar5 + 0x18);
            uVar1 = *(undefined4 *)(iVar5 + 0x1c);
            *(undefined1 *)(iVar7 + 0xc) = 4;
            *(undefined4 *)(iVar7 + 0x18) = uVar6;
            uVar6 = *(undefined4 *)(iVar5 + 0x14);
            *(undefined4 *)(iVar7 + 0x1c) = uVar1;
            *(undefined4 *)(iVar7 + 0x14) = uVar6;
            if (DAT_001d0448 == -1) {
              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);
              FUN_00034cf0(uVar6,local_40,puVar4);
              if (DAT_001d0168 == 0) {
                uVar6 = dcgettext(0,
                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"
                                  ,5);
                FUN_00034d20(uVar6);
                DAT_001d0168 = 1;
              }
            }
          }
        }
      }
      iVar7 = *(int *)(iVar7 + 0x10);
    } while (iVar7 != 0);
    if (__ptr == (void *)0x0) goto LAB_0005d05d;
  }
  FUN_0005b620(__ptr,param_2);
  bfd_hash_table_free(__ptr);
  free(__ptr);
LAB_0005d05d:
  free(local_38);
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00017b80
ADD EBX,0x171197
SUB ESP,0x3c
LEA EAX,[EBX + 0x23e0]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [EAX + 0x20]
MOV EDI,dword ptr [EAX + 0x1c]
TEST EDI,EDI
JZ 0x0005d06c
XOR ESI,ESI
LEA ESI,[ESI]
CMP byte ptr [EDI + 0xc],0x1
JNZ 0x0005cea9
SUB ESP,0xc
PUSH dword ptr [EDI + 0x4]
CALL 0x00016760
ADD ESP,0x10
CMP ESI,EAX
CMOVC ESI,EAX
MOV EDI,dword ptr [EDI + 0x10]
TEST EDI,EDI
JNZ 0x0005ce90
TEST ESI,ESI
JZ 0x0005d06c
SUB ESP,0xc
ADD ESI,0x21
PUSH dword ptr [ESP + 0x5c]
CALL 0x00016760
ADD ESP,0x10
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x8]
CMP dword ptr [EAX + 0x6c],0x2
JZ 0x0005d0a0
SUB ESP,0xc
PUSH ESI
CALL 0x00016dc8
MOV dword ptr [ESP + 0x24],EAX
ADD EAX,0x20
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x18]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0x20]
MOV EBP,dword ptr [EAX + 0x1c]
TEST EBP,EBP
JZ 0x0005d05d
MOV EAX,dword ptr [ESP + 0x14]
LEA ECX,[EBX + 0xfffdf22c]
MOV dword ptr [ESP + 0x10],EDI
MOV dword ptr [ESP + 0x20],ECX
ADD EAX,0x1a
MOV EDI,EAX
JMP 0x0005cf2b
MOV EBP,dword ptr [EBP + 0x10]
TEST EBP,EBP
JZ 0x0005d028
CMP byte ptr [EBP + 0xc],0x1
JNZ 0x0005cf20
MOV EDX,dword ptr [EBX + 0x2144]
MOV EAX,dword ptr [EBP + 0x4]
TEST EDX,EDX
JNZ 0x0005d078
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x18]
CALL 0x00016530
MOV EAX,0x5f70
MOV dword ptr [EDI],0x6d695f5f
MOV word ptr [EDI + 0x4],AX
MOV dword ptr [ESP],0x1
PUSH 0x0
PUSH 0x0
PUSH EDI
MOV EAX,dword ptr [ESP + 0x24]
PUSH dword ptr [EAX + 0x20]
CALL 0x00016590
ADD ESP,0x20
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0005cf20
CMP byte ptr [EAX + 0xc],0x3
JNZ 0x0005cf20
MOV EAX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JZ 0x0005d100
PUSH 0x0
PUSH 0x1
PUSH dword ptr [EBP + 0x4]
PUSH EAX
CALL 0x000166d0
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x18]
MOV EDX,dword ptr [ESI + 0x1c]
MOV byte ptr [EBP + 0xc],0x4
MOV dword ptr [EBP + 0x18],EAX
MOV EAX,dword ptr [ESI + 0x14]
MOV dword ptr [EBP + 0x1c],EDX
MOV dword ptr [EBP + 0x14],EAX
MOV EAX,dword ptr [ESP + 0x8]
CMP dword ptr [EAX + 0x68],-0x1
JNZ 0x0005cf20
SUB ESP,0x4
PUSH 0x5
PUSH dword ptr [ESP + 0x28]
PUSH 0x0
CALL 0x00016310
ADD ESP,0xc
PUSH EDI
PUSH dword ptr [ESP + 0x14]
PUSH EAX
CALL 0x00034cf0
MOV EAX,dword ptr [EBX + 0x2168]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0005cf20
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdf260]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016310
MOV dword ptr [ESP],EAX
CALL 0x00034d20
ADD ESP,0x10
MOV dword ptr [EBX + 0x2168],0x1
JMP 0x0005cf20
MOV EDI,dword ptr [ESP + 0x10]
TEST EDI,EDI
JZ 0x0005d05d
MOV EAX,dword ptr [ESP + 0x8]
SUB ESP,0x8
XOR ECX,ECX
MOV EAX,dword ptr [EAX + 0x3c]
PUSH dword ptr [ESP + 0x5c]
PUSH EDI
MOV EDX,dword ptr [ESP + 0x1c]
CALL 0x0005b620
MOV dword ptr [ESP],EDI
CALL 0x00016400
MOV dword ptr [ESP],EDI
CALL 0x00016db0
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [ESP + 0x20]
CALL 0x00016db0
ADD ESP,0x10
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
PUSH EAX
LEA EAX,[EBX + 0xfffdf730]
PUSH EAX
LEA EAX,[EBX + 0xfffdec9b]
PUSH EAX
CALL 0x00016110
MOV EAX,dword ptr [EBP + 0x4]
ADD ESP,0x10
JMP 0x0005cf42
SUB ESP,0xc
PUSH 0x1c
CALL 0x00016dc8
ADD ESP,0xc
PUSH 0xc
MOV EDI,EAX
PUSH dword ptr [EBX + 0xffffff98]
PUSH EAX
CALL 0x00016bd0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0005d1f0
SUB ESP,0xc
PUSH ESI
CALL 0x00016dc8
MOV dword ptr [ESP + 0x24],EAX
ADD EAX,0x20
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x18]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0x20]
MOV EBP,dword ptr [EAX + 0x1c]
TEST EBP,EBP
JNZ 0x0005cf05
JMP 0x0005d030
MOV EAX,dword ptr [ESI + 0x14]
SUB ESP,0xc
MOV EDX,dword ptr [EAX + 0xac]
PUSH EDX
MOV dword ptr [ESP + 0x2c],EDX
CALL 0x00016180
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x1c]
TEST EAX,EAX
JZ 0x0005d213
MOV EAX,dword ptr [EDX + 0x78]
MOV EDX,dword ptr [EDX + 0x7c]
MOV dword ptr [ESP + 0x1c],EDX
TEST EDX,EDX
JLE 0x0005cf20
XOR EDX,EDX
MOV dword ptr [ESP + 0x24],EBP
MOV EBP,EAX
MOV dword ptr [ESP + 0x28],EDI
MOV EDI,EDX
MOV dword ptr [ESP + 0x2c],ESI
JMP 0x0005d15c
ADD EDI,0x1
ADD EBP,0x4
CMP dword ptr [ESP + 0x1c],EDI
JZ 0x0005d1c1
MOV EAX,dword ptr [EBP]
SUB ESP,0x4
MOV ESI,dword ptr [EAX + 0x4]
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x58]
PUSH ESI
CALL 0x00016c00
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0005d150
MOV EDX,dword ptr [EBX + 0x2144]
MOV EAX,ESI
MOV ECX,EBP
MOV ESI,dword ptr [ESP + 0x2c]
MOV EBP,dword ptr [ESP + 0x24]
MOV EDI,dword ptr [ESP + 0x28]
TEST EDX,EDX
JNZ 0x0005d1ce
MOV ECX,EAX
ADD ECX,dword ptr [ESP + 0x18]
JZ 0x0005cf20
MOV EAX,dword ptr [ESP + 0x8]
SUB ESP,0x8
MOV EAX,dword ptr [EAX + 0x3c]
PUSH dword ptr [ESP + 0x5c]
PUSH 0x0
MOV EDX,dword ptr [ESP + 0x1c]
CALL 0x0005b620
ADD ESP,0x10
JMP 0x0005cfa1
MOV EBP,dword ptr [ESP + 0x24]
MOV EDI,dword ptr [ESP + 0x28]
JMP 0x0005cf20
MOV dword ptr [ESP + 0x1c],ECX
SUB ESP,0x8
PUSH EAX
LEA EAX,[EBX + 0xfffdeca2]
PUSH EAX
CALL 0x00016110
MOV ECX,dword ptr [ESP + 0x2c]
ADD ESP,0x10
MOV EAX,dword ptr [ECX]
MOV EAX,dword ptr [EAX + 0x4]
JMP 0x0005d194
SUB ESP,0x4
LEA EAX,[EBX + 0xffeae9a4]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016310
MOV dword ptr [ESP],EAX
CALL 0x00034d20
ADD ESP,0x10
JMP 0x0005d0c8
MOV dword ptr [ESP + 0x8],EDX
LEA EAX,[EBX + 0xffeae370]
SUB ESP,0x4
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016310
POP ECX
POP ESI
MOV EDX,dword ptr [ESP + 0x10]
PUSH EDX
PUSH EAX
CALL 0x00034d20
ADD ESP,0x10
JMP 0x0005d06c
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0005ce60(char *param_1,undefined4 param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 uVar6;\n  void *__ptr;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  int *piVar11;\n  uint uVar12;\n  char *local_40;\n  void *local_38;\n  \n  iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n  if (iVar7 == 0) {\n    return;\n  }\n  uVar12 = 0;\n  do {\n    if ((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)) {\n      uVar12 = sVar3;\n    }\n    iVar7 = *(int *)(iVar7 + 0x10);\n  } while (iVar7 != 0);\n  if (uVar12 == 0) {\n    return;\n  }\n  sVar3 = strlen(param_1);\n  if (DAT_001d044c == 2) {\n    __ptr = (void *)xmalloc(0x1c);\n    iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc);\n    if (iVar7 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    if (iVar7 != 0) goto LAB_0005cf05;\n  }\n  else {\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    __ptr = (void *)0x0;\n    if (iVar7 == 0) goto LAB_0005d05d;\nLAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);\n    puVar4 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);\n    if (__ptr == (void *)0x0) goto LAB_0005d05d;\n  }\n  FUN_0005b620(__ptr,param_2);\n  bfd_hash_table_free(__ptr);\n  free(__ptr);\nLAB_0005d05d:\n  free(local_38);\n  return;\n}\n\n" comment (function_definition "void FUN_0005ce60(char *param_1,undefined4 param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 uVar6;\n  void *__ptr;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  int *piVar11;\n  uint uVar12;\n  char *local_40;\n  void *local_38;\n  \n  iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n  if (iVar7 == 0) {\n    return;\n  }\n  uVar12 = 0;\n  do {\n    if ((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)) {\n      uVar12 = sVar3;\n    }\n    iVar7 = *(int *)(iVar7 + 0x10);\n  } while (iVar7 != 0);\n  if (uVar12 == 0) {\n    return;\n  }\n  sVar3 = strlen(param_1);\n  if (DAT_001d044c == 2) {\n    __ptr = (void *)xmalloc(0x1c);\n    iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc);\n    if (iVar7 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    if (iVar7 != 0) goto LAB_0005cf05;\n  }\n  else {\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    __ptr = (void *)0x0;\n    if (iVar7 == 0) goto LAB_0005d05d;\nLAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);\n    puVar4 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);\n    if (__ptr == (void *)0x0) goto LAB_0005d05d;\n  }\n  FUN_0005b620(__ptr,param_2);\n  bfd_hash_table_free(__ptr);\n  free(__ptr);\nLAB_0005d05d:\n  free(local_38);\n  return;\n}" primitive_type (function_declarator "FUN_0005ce60(char *param_1,undefined4 param_2)" identifier (parameter_list "(char *param_1,undefined4 param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 uVar6;\n  void *__ptr;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  int *piVar11;\n  uint uVar12;\n  char *local_40;\n  void *local_38;\n  \n  iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n  if (iVar7 == 0) {\n    return;\n  }\n  uVar12 = 0;\n  do {\n    if ((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)) {\n      uVar12 = sVar3;\n    }\n    iVar7 = *(int *)(iVar7 + 0x10);\n  } while (iVar7 != 0);\n  if (uVar12 == 0) {\n    return;\n  }\n  sVar3 = strlen(param_1);\n  if (DAT_001d044c == 2) {\n    __ptr = (void *)xmalloc(0x1c);\n    iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc);\n    if (iVar7 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    if (iVar7 != 0) goto LAB_0005cf05;\n  }\n  else {\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    __ptr = (void *)0x0;\n    if (iVar7 == 0) goto LAB_0005d05d;\nLAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);\n    puVar4 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);\n    if (__ptr == (void *)0x0) goto LAB_0005d05d;\n  }\n  FUN_0005b620(__ptr,param_2);\n  bfd_hash_table_free(__ptr);\n  free(__ptr);\nLAB_0005d05d:\n  free(local_38);\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "char *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "void *local_38;" primitive_type (pointer_declarator "*local_38" * identifier) ;) (expression_statement "iVar7 = *(int *)(DAT_001d0400 + 0x1c);" (assignment_expression "iVar7 = *(int *)(DAT_001d0400 + 0x1c)" identifier = (pointer_expression "*(int *)(DAT_001d0400 + 0x1c)" * (cast_expression "(int *)(DAT_001d0400 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0400 + 0x1c)" ( (binary_expression "DAT_001d0400 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) {\n    return;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n    if ((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)) {\n      uVar12 = sVar3;\n    }\n    iVar7 = *(int *)(iVar7 + 0x10);\n  } while (iVar7 != 0);" do (compound_statement "{\n    if ((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)) {\n      uVar12 = sVar3;\n    }\n    iVar7 = *(int *)(iVar7 + 0x10);\n  }" { (if_statement "if ((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)) {\n      uVar12 = sVar3;\n    }" if (parenthesized_expression "((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3))" ( (binary_expression "(*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)" (parenthesized_expression "(*(char *)(iVar7 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar7 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar7 + 0xc)" * (cast_expression "(char *)(iVar7 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) && (parenthesized_expression "(sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)" ( (comma_expression "sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3" (assignment_expression "sVar3 = strlen(*(char **)(iVar7 + 4))" identifier = (call_expression "strlen(*(char **)(iVar7 + 4))" identifier (argument_list "(*(char **)(iVar7 + 4))" ( (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) )))) )))) , (binary_expression "uVar12 < sVar3" identifier < identifier)) ))) )) (compound_statement "{\n      uVar12 = sVar3;\n    }" { (expression_statement "uVar12 = sVar3;" (assignment_expression "uVar12 = sVar3" identifier = identifier) ;) })) (expression_statement "iVar7 = *(int *)(iVar7 + 0x10);" (assignment_expression "iVar7 = *(int *)(iVar7 + 0x10)" identifier = (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) (if_statement "if (uVar12 == 0) {\n    return;\n  }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "sVar3 = strlen(param_1);" (assignment_expression "sVar3 = strlen(param_1)" identifier = (call_expression "strlen(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (DAT_001d044c == 2) {\n    __ptr = (void *)xmalloc(0x1c);\n    iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc);\n    if (iVar7 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    if (iVar7 != 0) goto LAB_0005cf05;\n  }\n  else {\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    __ptr = (void *)0x0;\n    if (iVar7 == 0) goto LAB_0005d05d;\nLAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);\n    puVar4 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);\n    if (__ptr == (void *)0x0) goto LAB_0005d05d;\n  }" if (parenthesized_expression "(DAT_001d044c == 2)" ( (binary_expression "DAT_001d044c == 2" identifier == number_literal) )) (compound_statement "{\n    __ptr = (void *)xmalloc(0x1c);\n    iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc);\n    if (iVar7 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    if (iVar7 != 0) goto LAB_0005cf05;\n  }" { (expression_statement "__ptr = (void *)xmalloc(0x1c);" (assignment_expression "__ptr = (void *)xmalloc(0x1c)" identifier = (cast_expression "(void *)xmalloc(0x1c)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x1c)" identifier (argument_list "(0x1c)" ( number_literal ))))) ;) (expression_statement "iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc);" (assignment_expression "iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc)" identifier = (call_expression "bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc)" identifier (argument_list "(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar7 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }" { (expression_statement "uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5)" identifier (argument_list "(0,"%F%P: bfd_hash_table_init failed: %E\n",5)" ( number_literal , (string_literal ""%F%P: bfd_hash_table_init failed: %E\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar6);" (call_expression "FUN_00034d20(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) })) (expression_statement "local_38 = (void *)xmalloc(uVar12 + 0x21);" (assignment_expression "local_38 = (void *)xmalloc(uVar12 + 0x21)" identifier = (cast_expression "(void *)xmalloc(uVar12 + 0x21)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar12 + 0x21)" identifier (argument_list "(uVar12 + 0x21)" ( (binary_expression "uVar12 + 0x21" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(DAT_001d0400 + 0x1c);" (assignment_expression "iVar7 = *(int *)(DAT_001d0400 + 0x1c)" identifier = (pointer_expression "*(int *)(DAT_001d0400 + 0x1c)" * (cast_expression "(int *)(DAT_001d0400 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0400 + 0x1c)" ( (binary_expression "DAT_001d0400 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 != 0) goto LAB_0005cf05;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0005cf05;" goto statement_identifier ;)) }) (else_clause "else {\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    __ptr = (void *)0x0;\n    if (iVar7 == 0) goto LAB_0005d05d;\nLAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);\n    puVar4 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);\n    if (__ptr == (void *)0x0) goto LAB_0005d05d;\n  }" else (compound_statement "{\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    __ptr = (void *)0x0;\n    if (iVar7 == 0) goto LAB_0005d05d;\nLAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);\n    puVar4 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);\n    if (__ptr == (void *)0x0) goto LAB_0005d05d;\n  }" { (expression_statement "local_38 = (void *)xmalloc(uVar12 + 0x21);" (assignment_expression "local_38 = (void *)xmalloc(uVar12 + 0x21)" identifier = (cast_expression "(void *)xmalloc(uVar12 + 0x21)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar12 + 0x21)" identifier (argument_list "(uVar12 + 0x21)" ( (binary_expression "uVar12 + 0x21" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(DAT_001d0400 + 0x1c);" (assignment_expression "iVar7 = *(int *)(DAT_001d0400 + 0x1c)" identifier = (pointer_expression "*(int *)(DAT_001d0400 + 0x1c)" * (cast_expression "(int *)(DAT_001d0400 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0400 + 0x1c)" ( (binary_expression "DAT_001d0400 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "__ptr = (void *)0x0;" (assignment_expression "__ptr = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar7 == 0) goto LAB_0005d05d;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0005d05d;" goto statement_identifier ;)) (labeled_statement "LAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);" statement_identifier : (expression_statement "local_40 = (char *)((int)local_38 + 0x20);" (assignment_expression "local_40 = (char *)((int)local_38 + 0x20)" identifier = (cast_expression "(char *)((int)local_38 + 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0x20)" ( (binary_expression "(int)local_38 + 0x20" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "puVar4 = (undefined4 *)((int)local_38 + 0x1a);" (assignment_expression "puVar4 = (undefined4 *)((int)local_38 + 0x1a)" identifier = (cast_expression "(undefined4 *)((int)local_38 + 0x1a)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0x1a)" ( (binary_expression "(int)local_38 + 0x1a" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);" do (compound_statement "{\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    }" { (if_statement "if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar7 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar7 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar7 + 0xc)" * (cast_expression "(char *)(iVar7 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }" { (expression_statement "pcVar10 = *(char **)(iVar7 + 4);" (assignment_expression "pcVar10 = *(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 (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }" if (parenthesized_expression "(DAT_001d0144 != 0)" ( (binary_expression "DAT_001d0144 != 0" identifier != number_literal) )) (compound_statement "{\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }" { (expression_statement "printf("%s:%s\n","pep_find_data_imports",pcVar10);" (call_expression "printf("%s:%s\n","pep_find_data_imports",pcVar10)" identifier (argument_list "("%s:%s\n","pep_find_data_imports",pcVar10)" ( (string_literal ""%s:%s\n"" " string_content escape_sequence ") , (string_literal ""pep_find_data_imports"" " string_content ") , identifier ))) ;) (expression_statement "pcVar10 = *(char **)(iVar7 + 4);" (assignment_expression "pcVar10 = *(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 "strcpy(local_40,pcVar10);" (call_expression "strcpy(local_40,pcVar10)" identifier (argument_list "(local_40,pcVar10)" ( identifier , identifier ))) ;) (expression_statement "*puVar4 = 0x6d695f5f;" (assignment_expression "*puVar4 = 0x6d695f5f" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "*(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;" (assignment_expression "*(undefined2 *)((int)local_38 + 0x1e) = 0x5f70" (pointer_expression "*(undefined2 *)((int)local_38 + 0x1e)" * (cast_expression "(undefined2 *)((int)local_38 + 0x1e)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0x1e)" ( (binary_expression "(int)local_38 + 0x1e" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);" (assignment_expression "iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1)" identifier (argument_list "(DAT_001d0400,puVar4,0,0,1)" ( identifier , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }" if (parenthesized_expression "((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03'))" ( (binary_expression "(iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)(iVar5 + 0xc) == '\x03')" ( (binary_expression "*(char *)(iVar5 + 0xc) == '\x03'" (pointer_expression "*(char *)(iVar5 + 0xc)" * (cast_expression "(char *)(iVar5 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) ))) )) (compound_statement "{\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }" { (if_statement "if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }" if (parenthesized_expression "(__ptr == (void *)0x0)" ( (binary_expression "__ptr == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }" { (expression_statement "iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);" (assignment_expression "iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac)" identifier = (pointer_expression "*(int *)(*(int *)(iVar5 + 0x14) + 0xac)" * (cast_expression "(int *)(*(int *)(iVar5 + 0x14) + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x14) + 0xac)" ( (binary_expression "*(int *)(iVar5 + 0x14) + 0xac" (pointer_expression "*(int *)(iVar5 + 0x14)" * (cast_expression "(int *)(iVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar8 = bfd_generic_link_read_symbols(iVar2);" (assignment_expression "iVar8 = bfd_generic_link_read_symbols(iVar2)" identifier = (call_expression "bfd_generic_link_read_symbols(iVar2)" identifier (argument_list "(iVar2)" ( identifier )))) ;) (if_statement "if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }" { (expression_statement "uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);" (assignment_expression "uVar6 = 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(uVar6,iVar2);" (call_expression "FUN_00034d20(uVar6,iVar2)" identifier (argument_list "(uVar6,iVar2)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "piVar11 = *(int **)(iVar2 + 0x78);" (assignment_expression "piVar11 = *(int **)(iVar2 + 0x78)" identifier = (pointer_expression "*(int **)(iVar2 + 0x78)" * (cast_expression "(int **)(iVar2 + 0x78)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x78)" ( (binary_expression "iVar2 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(iVar2 + 0x7c);" (assignment_expression "iVar2 = *(int *)(iVar2 + 0x7c)" identifier = (pointer_expression "*(int *)(iVar2 + 0x7c)" * (cast_expression "(int *)(iVar2 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x7c)" ( (binary_expression "iVar2 + 0x7c" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }" if (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) (compound_statement "{\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);" do (compound_statement "{\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              }" { (expression_statement "pcVar10 = *(char **)(*piVar11 + 4);" (assignment_expression "pcVar10 = *(char **)(*piVar11 + 4)" identifier = (pointer_expression "*(char **)(*piVar11 + 4)" * (cast_expression "(char **)(*piVar11 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar11 + 4)" ( (binary_expression "*piVar11 + 4" (pointer_expression "*piVar11" * identifier) + number_literal) ))))) ;) (expression_statement "iVar9 = strncmp(pcVar10,param_1,sVar3);" (assignment_expression "iVar9 = strncmp(pcVar10,param_1,sVar3)" identifier = (call_expression "strncmp(pcVar10,param_1,sVar3)" identifier (argument_list "(pcVar10,param_1,sVar3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }" { (if_statement "if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }" if (parenthesized_expression "(DAT_001d0144 != 0)" ( (binary_expression "DAT_001d0144 != 0" identifier != number_literal) )) (compound_statement "{\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }" { (expression_statement "printf("->%s\n",pcVar10);" (call_expression "printf("->%s\n",pcVar10)" identifier (argument_list "("->%s\n",pcVar10)" ( (string_literal ""->%s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "pcVar10 = *(char **)(*piVar11 + 4);" (assignment_expression "pcVar10 = *(char **)(*piVar11 + 4)" identifier = (pointer_expression "*(char **)(*piVar11 + 4)" * (cast_expression "(char **)(*piVar11 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar11 + 4)" ( (binary_expression "*piVar11 + 4" (pointer_expression "*piVar11" * identifier) + number_literal) ))))) ;) })) (if_statement "if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }" if (parenthesized_expression "(pcVar10 + sVar3 != (char *)0x0)" ( (binary_expression "pcVar10 + sVar3 != (char *)0x0" (binary_expression "pcVar10 + sVar3" identifier + identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }" { (expression_statement "FUN_0005b620(0,param_2);" (call_expression "FUN_0005b620(0,param_2)" identifier (argument_list "(0,param_2)" ( number_literal , identifier ))) ;) (goto_statement "goto LAB_0005cfa1;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar2 != iVar8)" ( (binary_expression "iVar2 != iVar8" identifier != identifier) )) ;) })) }) (else_clause "else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }" else (compound_statement "{\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }" { (expression_statement "bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);" (call_expression "bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0)" identifier (argument_list "(__ptr,*(undefined4 *)(iVar7 + 4),1,0)" ( identifier , (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) , number_literal , number_literal ))) ;) (labeled_statement "LAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);" statement_identifier : (expression_statement "uVar6 = *(undefined4 *)(iVar5 + 0x18);" (assignment_expression "uVar6 = *(undefined4 *)(iVar5 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x18)" * (cast_expression "(undefined4 *)(iVar5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) ;)) (expression_statement "uVar1 = *(undefined4 *)(iVar5 + 0x1c);" (assignment_expression "uVar1 = *(undefined4 *)(iVar5 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x1c)" * (cast_expression "(undefined4 *)(iVar5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar7 + 0xc) = 4;" (assignment_expression "*(undefined1 *)(iVar7 + 0xc) = 4" (pointer_expression "*(undefined1 *)(iVar7 + 0xc)" * (cast_expression "(undefined1 *)(iVar7 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x18) = uVar6;" (assignment_expression "*(undefined4 *)(iVar7 + 0x18) = uVar6" (pointer_expression "*(undefined4 *)(iVar7 + 0x18)" * (cast_expression "(undefined4 *)(iVar7 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar6 = *(undefined4 *)(iVar5 + 0x14);" (assignment_expression "uVar6 = *(undefined4 *)(iVar5 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" * (cast_expression "(undefined4 *)(iVar5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x1c) = uVar1;" (assignment_expression "*(undefined4 *)(iVar7 + 0x1c) = uVar1" (pointer_expression "*(undefined4 *)(iVar7 + 0x1c)" * (cast_expression "(undefined4 *)(iVar7 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x14) = uVar6;" (assignment_expression "*(undefined4 *)(iVar7 + 0x14) = uVar6" (pointer_expression "*(undefined4 *)(iVar7 + 0x14)" * (cast_expression "(undefined4 *)(iVar7 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }" if (parenthesized_expression "(DAT_001d0448 == -1)" ( (binary_expression "DAT_001d0448 == -1" identifier == number_literal) )) (compound_statement "{\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }" { (expression_statement "uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);" (assignment_expression "uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5)" identifier = (call_expression "dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5)" identifier (argument_list "(0,"Info: resolving %s by linking to %s (auto-import)\n",5)" ( number_literal , (string_literal ""Info: resolving %s by linking to %s (auto-import)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034cf0(uVar6,local_40,puVar4);" (call_expression "FUN_00034cf0(uVar6,local_40,puVar4)" identifier (argument_list "(uVar6,local_40,puVar4)" ( identifier , identifier , identifier ))) ;) (if_statement "if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }" if (parenthesized_expression "(DAT_001d0168 == 0)" ( (binary_expression "DAT_001d0168 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }" { (expression_statement "uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);" (assignment_expression "uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5)" identifier = (call_expression "dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5)" identifier (argument_list "(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5)" ( number_literal , (string_literal ""%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar6);" (call_expression "FUN_00034d20(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) (expression_statement "DAT_001d0168 = 1;" (assignment_expression "DAT_001d0168 = 1" identifier = number_literal) ;) })) })) }))) })) })) (expression_statement "iVar7 = *(int *)(iVar7 + 0x10);" (assignment_expression "iVar7 = *(int *)(iVar7 + 0x10)" identifier = (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) (if_statement "if (__ptr == (void *)0x0) goto LAB_0005d05d;" if (parenthesized_expression "(__ptr == (void *)0x0)" ( (binary_expression "__ptr == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0005d05d;" goto statement_identifier ;)) }))) (expression_statement "FUN_0005b620(__ptr,param_2);" (call_expression "FUN_0005b620(__ptr,param_2)" identifier (argument_list "(__ptr,param_2)" ( identifier , identifier ))) ;) (expression_statement "bfd_hash_table_free(__ptr);" (call_expression "bfd_hash_table_free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (labeled_statement "LAB_0005d05d:\n  free(local_38);" statement_identifier : (expression_statement "free(local_38);" (call_expression "free(local_38)" identifier (argument_list "(local_38)" ( identifier ))) ;)) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid pep_find_data_imports(char *symhead,_func_void_arelent_ptr_asection_ptr_char_ptr_char_ptr *cb)\n\n{\n  undefined4 uVar1;\n  bfd *pbVar2;\n  int iVar3;\n  size_t sVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  char *pcVar7;\n  bfd_hash_table *import_hash;\n  int iVar8;\n  int iVar9;\n  bfd_link_hash_entry *pbVar10;\n  int *piVar11;\n  uint uVar12;\n  char *local_40;\n  void *local_38;\n  \n  pbVar10 = (link_info.hash)->undefs;\n  if (pbVar10 == (bfd_link_hash_entry *)0x0) {\n    return;\n  }\n  uVar12 = 0;\n  do {\n    if ((pbVar10->field_0xc == '\x01') && (sVar4 = strlen((pbVar10->root).string), uVar12 < sVar4))\n    {\n      uVar12 = sVar4;\n    }\n    pbVar10 = (pbVar10->u).undef.next;\n  } while (pbVar10 != (bfd_link_hash_entry *)0x0);\n  if (uVar12 == 0) {\n    return;\n  }\n  sVar4 = strlen(symhead);\n  if (link_info.pei386_runtime_pseudo_reloc == 2) {\n    import_hash = (bfd_hash_table *)xmalloc(0x1c);\n    iVar6 = bfd_hash_table_init(import_hash,PTR_bfd_hash_newfunc_001cdf98,0xc);\n    if (iVar6 == 0) {\n      pcVar7 = (char *)dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      einfo(pcVar7);\n    }\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    local_40 = (char *)((int)local_38 + 0x20);\n    pbVar10 = (link_info.hash)->undefs;\n    if (pbVar10 != (bfd_link_hash_entry *)0x0) goto LAB_0005cf05;\n  }\n  else {\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    local_40 = (char *)((int)local_38 + 0x20);\n    pbVar10 = (link_info.hash)->undefs;\n    import_hash = (bfd_hash_table *)0x0;\n    if (pbVar10 == (bfd_link_hash_entry *)0x0) goto LAB_0005d05d;\nLAB_0005cf05:\n    puVar5 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (pbVar10->field_0xc == '\x01') {\n        pcVar7 = (pbVar10->root).string;\n        if (pep_dll_extra_pe_debug != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar7);\n          pcVar7 = (pbVar10->root).string;\n        }\n        strcpy(local_40,pcVar7);\n        *puVar5 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar6 = bfd_link_hash_lookup(link_info.hash,puVar5,0,0,1);\n        if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) {\n          if (import_hash == (bfd_hash_table *)0x0) {\n            iVar3 = *(int *)(*(int *)(iVar6 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar3);\n            if (iVar8 == 0) {\n              pcVar7 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              einfo(pcVar7,iVar3);\n              return;\n            }\n            piVar11 = *(int **)(iVar3 + 0x78);\n            iVar3 = *(int *)(iVar3 + 0x7c);\n            if (0 < iVar3) {\n              iVar8 = 0;\n              do {\n                pcVar7 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar7,symhead,sVar4);\n                if (iVar9 == 0) {\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar3 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(import_hash,(pbVar10->root).string,1,0);\nLAB_0005cfa1:\n            pcVar7 = *(char **)(iVar6 + 0x18);\n            uVar1 = *(undefined4 *)(iVar6 + 0x1c);\n            pbVar10->field_0xc = 4;\n            (pbVar10->u).i.warning = pcVar7;\n            pbVar2 = *(bfd **)(iVar6 + 0x14);\n            *(undefined4 *)((int)&pbVar10->u + 0xc) = uVar1;\n            (pbVar10->u).undef.abfd = pbVar2;\n            if (link_info.pei386_auto_import == -1) {\n              pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              info_msg(pcVar7,local_40,puVar5);\n              if (pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0) {\n                pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);\n                einfo(pcVar7);\n                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;\n              }\n            }\n          }\n        }\n      }\n      pbVar10 = (pbVar10->u).undef.next;\n    } while (pbVar10 != (bfd_link_hash_entry *)0x0);\n    if (import_hash == (bfd_hash_table *)0x0) goto LAB_0005d05d;\n  }\n  pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,(char *)0x0,import_hash,cb);\n  bfd_hash_table_free(import_hash);\n  free(import_hash);\nLAB_0005d05d:\n  free(local_38);\n  return;\n}\n\n" comment comment (function_definition "void pep_find_data_imports(char *symhead,_func_void_arelent_ptr_asection_ptr_char_ptr_char_ptr *cb)\n\n{\n  undefined4 uVar1;\n  bfd *pbVar2;\n  int iVar3;\n  size_t sVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  char *pcVar7;\n  bfd_hash_table *import_hash;\n  int iVar8;\n  int iVar9;\n  bfd_link_hash_entry *pbVar10;\n  int *piVar11;\n  uint uVar12;\n  char *local_40;\n  void *local_38;\n  \n  pbVar10 = (link_info.hash)->undefs;\n  if (pbVar10 == (bfd_link_hash_entry *)0x0) {\n    return;\n  }\n  uVar12 = 0;\n  do {\n    if ((pbVar10->field_0xc == '\x01') && (sVar4 = strlen((pbVar10->root).string), uVar12 < sVar4))\n    {\n      uVar12 = sVar4;\n    }\n    pbVar10 = (pbVar10->u).undef.next;\n  } while (pbVar10 != (bfd_link_hash_entry *)0x0);\n  if (uVar12 == 0) {\n    return;\n  }\n  sVar4 = strlen(symhead);\n  if (link_info.pei386_runtime_pseudo_reloc == 2) {\n    import_hash = (bfd_hash_table *)xmalloc(0x1c);\n    iVar6 = bfd_hash_table_init(import_hash,PTR_bfd_hash_newfunc_001cdf98,0xc);\n    if (iVar6 == 0) {\n      pcVar7 = (char *)dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      einfo(pcVar7);\n    }\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    local_40 = (char *)((int)local_38 + 0x20);\n    pbVar10 = (link_info.hash)->undefs;\n    if (pbVar10 != (bfd_link_hash_entry *)0x0) goto LAB_0005cf05;\n  }\n  else {\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    local_40 = (char *)((int)local_38 + 0x20);\n    pbVar10 = (link_info.hash)->undefs;\n    import_hash = (bfd_hash_table *)0x0;\n    if (pbVar10 == (bfd_link_hash_entry *)0x0) goto LAB_0005d05d;\nLAB_0005cf05:\n    puVar5 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (pbVar10->field_0xc == '\x01') {\n        pcVar7 = (pbVar10->root).string;\n        if (pep_dll_extra_pe_debug != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar7);\n          pcVar7 = (pbVar10->root).string;\n        }\n        strcpy(local_40,pcVar7);\n        *puVar5 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar6 = bfd_link_hash_lookup(link_info.hash,puVar5,0,0,1);\n        if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) {\n          if (import_hash == (bfd_hash_table *)0x0) {\n            iVar3 = *(int *)(*(int *)(iVar6 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar3);\n            if (iVar8 == 0) {\n              pcVar7 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              einfo(pcVar7,iVar3);\n              return;\n            }\n            piVar11 = *(int **)(iVar3 + 0x78);\n            iVar3 = *(int *)(iVar3 + 0x7c);\n            if (0 < iVar3) {\n              iVar8 = 0;\n              do {\n                pcVar7 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar7,symhead,sVar4);\n                if (iVar9 == 0) {\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar3 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(import_hash,(pbVar10->root).string,1,0);\nLAB_0005cfa1:\n            pcVar7 = *(char **)(iVar6 + 0x18);\n            uVar1 = *(undefined4 *)(iVar6 + 0x1c);\n            pbVar10->field_0xc = 4;\n            (pbVar10->u).i.warning = pcVar7;\n            pbVar2 = *(bfd **)(iVar6 + 0x14);\n            *(undefined4 *)((int)&pbVar10->u + 0xc) = uVar1;\n            (pbVar10->u).undef.abfd = pbVar2;\n            if (link_info.pei386_auto_import == -1) {\n              pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              info_msg(pcVar7,local_40,puVar5);\n              if (pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0) {\n                pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);\n                einfo(pcVar7);\n                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;\n              }\n            }\n          }\n        }\n      }\n      pbVar10 = (pbVar10->u).undef.next;\n    } while (pbVar10 != (bfd_link_hash_entry *)0x0);\n    if (import_hash == (bfd_hash_table *)0x0) goto LAB_0005d05d;\n  }\n  pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,(char *)0x0,import_hash,cb);\n  bfd_hash_table_free(import_hash);\n  free(import_hash);\nLAB_0005d05d:\n  free(local_38);\n  return;\n}" primitive_type (function_declarator "pep_find_data_imports(char *symhead,_func_void_arelent_ptr_asection_ptr_char_ptr_char_ptr *cb)" identifier (parameter_list "(char *symhead,_func_void_arelent_ptr_asection_ptr_char_ptr_char_ptr *cb)" ( (parameter_declaration "char *symhead" primitive_type (pointer_declarator "*symhead" * 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  bfd *pbVar2;\n  int iVar3;\n  size_t sVar4;\n  undefined4 *puVar5;\n  int iVar6;\n  char *pcVar7;\n  bfd_hash_table *import_hash;\n  int iVar8;\n  int iVar9;\n  bfd_link_hash_entry *pbVar10;\n  int *piVar11;\n  uint uVar12;\n  char *local_40;\n  void *local_38;\n  \n  pbVar10 = (link_info.hash)->undefs;\n  if (pbVar10 == (bfd_link_hash_entry *)0x0) {\n    return;\n  }\n  uVar12 = 0;\n  do {\n    if ((pbVar10->field_0xc == '\x01') && (sVar4 = strlen((pbVar10->root).string), uVar12 < sVar4))\n    {\n      uVar12 = sVar4;\n    }\n    pbVar10 = (pbVar10->u).undef.next;\n  } while (pbVar10 != (bfd_link_hash_entry *)0x0);\n  if (uVar12 == 0) {\n    return;\n  }\n  sVar4 = strlen(symhead);\n  if (link_info.pei386_runtime_pseudo_reloc == 2) {\n    import_hash = (bfd_hash_table *)xmalloc(0x1c);\n    iVar6 = bfd_hash_table_init(import_hash,PTR_bfd_hash_newfunc_001cdf98,0xc);\n    if (iVar6 == 0) {\n      pcVar7 = (char *)dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      einfo(pcVar7);\n    }\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    local_40 = (char *)((int)local_38 + 0x20);\n    pbVar10 = (link_info.hash)->undefs;\n    if (pbVar10 != (bfd_link_hash_entry *)0x0) goto LAB_0005cf05;\n  }\n  else {\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    local_40 = (char *)((int)local_38 + 0x20);\n    pbVar10 = (link_info.hash)->undefs;\n    import_hash = (bfd_hash_table *)0x0;\n    if (pbVar10 == (bfd_link_hash_entry *)0x0) goto LAB_0005d05d;\nLAB_0005cf05:\n    puVar5 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (pbVar10->field_0xc == '\x01') {\n        pcVar7 = (pbVar10->root).string;\n        if (pep_dll_extra_pe_debug != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar7);\n          pcVar7 = (pbVar10->root).string;\n        }\n        strcpy(local_40,pcVar7);\n        *puVar5 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar6 = bfd_link_hash_lookup(link_info.hash,puVar5,0,0,1);\n        if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) {\n          if (import_hash == (bfd_hash_table *)0x0) {\n            iVar3 = *(int *)(*(int *)(iVar6 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar3);\n            if (iVar8 == 0) {\n              pcVar7 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              einfo(pcVar7,iVar3);\n              return;\n            }\n            piVar11 = *(int **)(iVar3 + 0x78);\n            iVar3 = *(int *)(iVar3 + 0x7c);\n            if (0 < iVar3) {\n              iVar8 = 0;\n              do {\n                pcVar7 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar7,symhead,sVar4);\n                if (iVar9 == 0) {\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar3 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(import_hash,(pbVar10->root).string,1,0);\nLAB_0005cfa1:\n            pcVar7 = *(char **)(iVar6 + 0x18);\n            uVar1 = *(undefined4 *)(iVar6 + 0x1c);\n            pbVar10->field_0xc = 4;\n            (pbVar10->u).i.warning = pcVar7;\n            pbVar2 = *(bfd **)(iVar6 + 0x14);\n            *(undefined4 *)((int)&pbVar10->u + 0xc) = uVar1;\n            (pbVar10->u).undef.abfd = pbVar2;\n            if (link_info.pei386_auto_import == -1) {\n              pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              info_msg(pcVar7,local_40,puVar5);\n              if (pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0) {\n                pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);\n                einfo(pcVar7);\n                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;\n              }\n            }\n          }\n        }\n      }\n      pbVar10 = (pbVar10->u).undef.next;\n    } while (pbVar10 != (bfd_link_hash_entry *)0x0);\n    if (import_hash == (bfd_hash_table *)0x0) goto LAB_0005d05d;\n  }\n  pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,(char *)0x0,import_hash,cb);\n  bfd_hash_table_free(import_hash);\n  free(import_hash);\nLAB_0005d05d:\n  free(local_38);\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "bfd *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "bfd_hash_table *import_hash;" type_identifier (pointer_declarator "*import_hash" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "bfd_link_hash_entry *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "char *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "void *local_38;" primitive_type (pointer_declarator "*local_38" * identifier) ;) (expression_statement "pbVar10 = (link_info.hash)->undefs;" (assignment_expression "pbVar10 = (link_info.hash)->undefs" identifier = (field_expression "(link_info.hash)->undefs" (parenthesized_expression "(link_info.hash)" ( (field_expression "link_info.hash" identifier . field_identifier) )) -> field_identifier)) ;) (if_statement "if (pbVar10 == (bfd_link_hash_entry *)0x0) {\n    return;\n  }" if (parenthesized_expression "(pbVar10 == (bfd_link_hash_entry *)0x0)" ( (binary_expression "pbVar10 == (bfd_link_hash_entry *)0x0" identifier == (cast_expression "(bfd_link_hash_entry *)0x0" ( (type_descriptor "bfd_link_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n    if ((pbVar10->field_0xc == '\x01') && (sVar4 = strlen((pbVar10->root).string), uVar12 < sVar4))\n    {\n      uVar12 = sVar4;\n    }\n    pbVar10 = (pbVar10->u).undef.next;\n  } while (pbVar10 != (bfd_link_hash_entry *)0x0);" do (compound_statement "{\n    if ((pbVar10->field_0xc == '\x01') && (sVar4 = strlen((pbVar10->root).string), uVar12 < sVar4))\n    {\n      uVar12 = sVar4;\n    }\n    pbVar10 = (pbVar10->u).undef.next;\n  }" { (if_statement "if ((pbVar10->field_0xc == '\x01') && (sVar4 = strlen((pbVar10->root).string), uVar12 < sVar4))\n    {\n      uVar12 = sVar4;\n    }" if (parenthesized_expression "((pbVar10->field_0xc == '\x01') && (sVar4 = strlen((pbVar10->root).string), uVar12 < sVar4))" ( (binary_expression "(pbVar10->field_0xc == '\x01') && (sVar4 = strlen((pbVar10->root).string), uVar12 < sVar4)" (parenthesized_expression "(pbVar10->field_0xc == '\x01')" ( (binary_expression "pbVar10->field_0xc == '\x01'" (field_expression "pbVar10->field_0xc" identifier -> field_identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) && (parenthesized_expression "(sVar4 = strlen((pbVar10->root).string), uVar12 < sVar4)" ( (comma_expression "sVar4 = strlen((pbVar10->root).string), uVar12 < sVar4" (assignment_expression "sVar4 = strlen((pbVar10->root).string)" identifier = (call_expression "strlen((pbVar10->root).string)" identifier (argument_list "((pbVar10->root).string)" ( (field_expression "(pbVar10->root).string" (parenthesized_expression "(pbVar10->root)" ( (field_expression "pbVar10->root" identifier -> field_identifier) )) . field_identifier) )))) , (binary_expression "uVar12 < sVar4" identifier < identifier)) ))) )) (compound_statement "{\n      uVar12 = sVar4;\n    }" { (expression_statement "uVar12 = sVar4;" (assignment_expression "uVar12 = sVar4" identifier = identifier) ;) })) (expression_statement "pbVar10 = (pbVar10->u).undef.next;" (assignment_expression "pbVar10 = (pbVar10->u).undef.next" identifier = (field_expression "(pbVar10->u).undef.next" (field_expression "(pbVar10->u).undef" (parenthesized_expression "(pbVar10->u)" ( (field_expression "pbVar10->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) while (parenthesized_expression "(pbVar10 != (bfd_link_hash_entry *)0x0)" ( (binary_expression "pbVar10 != (bfd_link_hash_entry *)0x0" identifier != (cast_expression "(bfd_link_hash_entry *)0x0" ( (type_descriptor "bfd_link_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if (uVar12 == 0) {\n    return;\n  }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "sVar4 = strlen(symhead);" (assignment_expression "sVar4 = strlen(symhead)" identifier = (call_expression "strlen(symhead)" identifier (argument_list "(symhead)" ( identifier )))) ;) (if_statement "if (link_info.pei386_runtime_pseudo_reloc == 2) {\n    import_hash = (bfd_hash_table *)xmalloc(0x1c);\n    iVar6 = bfd_hash_table_init(import_hash,PTR_bfd_hash_newfunc_001cdf98,0xc);\n    if (iVar6 == 0) {\n      pcVar7 = (char *)dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      einfo(pcVar7);\n    }\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    local_40 = (char *)((int)local_38 + 0x20);\n    pbVar10 = (link_info.hash)->undefs;\n    if (pbVar10 != (bfd_link_hash_entry *)0x0) goto LAB_0005cf05;\n  }\n  else {\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    local_40 = (char *)((int)local_38 + 0x20);\n    pbVar10 = (link_info.hash)->undefs;\n    import_hash = (bfd_hash_table *)0x0;\n    if (pbVar10 == (bfd_link_hash_entry *)0x0) goto LAB_0005d05d;\nLAB_0005cf05:\n    puVar5 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (pbVar10->field_0xc == '\x01') {\n        pcVar7 = (pbVar10->root).string;\n        if (pep_dll_extra_pe_debug != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar7);\n          pcVar7 = (pbVar10->root).string;\n        }\n        strcpy(local_40,pcVar7);\n        *puVar5 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar6 = bfd_link_hash_lookup(link_info.hash,puVar5,0,0,1);\n        if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) {\n          if (import_hash == (bfd_hash_table *)0x0) {\n            iVar3 = *(int *)(*(int *)(iVar6 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar3);\n            if (iVar8 == 0) {\n              pcVar7 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              einfo(pcVar7,iVar3);\n              return;\n            }\n            piVar11 = *(int **)(iVar3 + 0x78);\n            iVar3 = *(int *)(iVar3 + 0x7c);\n            if (0 < iVar3) {\n              iVar8 = 0;\n              do {\n                pcVar7 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar7,symhead,sVar4);\n                if (iVar9 == 0) {\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar3 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(import_hash,(pbVar10->root).string,1,0);\nLAB_0005cfa1:\n            pcVar7 = *(char **)(iVar6 + 0x18);\n            uVar1 = *(undefined4 *)(iVar6 + 0x1c);\n            pbVar10->field_0xc = 4;\n            (pbVar10->u).i.warning = pcVar7;\n            pbVar2 = *(bfd **)(iVar6 + 0x14);\n            *(undefined4 *)((int)&pbVar10->u + 0xc) = uVar1;\n            (pbVar10->u).undef.abfd = pbVar2;\n            if (link_info.pei386_auto_import == -1) {\n              pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              info_msg(pcVar7,local_40,puVar5);\n              if (pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0) {\n                pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);\n                einfo(pcVar7);\n                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;\n              }\n            }\n          }\n        }\n      }\n      pbVar10 = (pbVar10->u).undef.next;\n    } while (pbVar10 != (bfd_link_hash_entry *)0x0);\n    if (import_hash == (bfd_hash_table *)0x0) goto LAB_0005d05d;\n  }" if (parenthesized_expression "(link_info.pei386_runtime_pseudo_reloc == 2)" ( (binary_expression "link_info.pei386_runtime_pseudo_reloc == 2" (field_expression "link_info.pei386_runtime_pseudo_reloc" identifier . field_identifier) == number_literal) )) (compound_statement "{\n    import_hash = (bfd_hash_table *)xmalloc(0x1c);\n    iVar6 = bfd_hash_table_init(import_hash,PTR_bfd_hash_newfunc_001cdf98,0xc);\n    if (iVar6 == 0) {\n      pcVar7 = (char *)dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      einfo(pcVar7);\n    }\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    local_40 = (char *)((int)local_38 + 0x20);\n    pbVar10 = (link_info.hash)->undefs;\n    if (pbVar10 != (bfd_link_hash_entry *)0x0) goto LAB_0005cf05;\n  }" { (expression_statement "import_hash = (bfd_hash_table *)xmalloc(0x1c);" (assignment_expression "import_hash = (bfd_hash_table *)xmalloc(0x1c)" identifier = (cast_expression "(bfd_hash_table *)xmalloc(0x1c)" ( (type_descriptor "bfd_hash_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x1c)" identifier (argument_list "(0x1c)" ( number_literal ))))) ;) (expression_statement "iVar6 = bfd_hash_table_init(import_hash,PTR_bfd_hash_newfunc_001cdf98,0xc);" (assignment_expression "iVar6 = bfd_hash_table_init(import_hash,PTR_bfd_hash_newfunc_001cdf98,0xc)" identifier = (call_expression "bfd_hash_table_init(import_hash,PTR_bfd_hash_newfunc_001cdf98,0xc)" identifier (argument_list "(import_hash,PTR_bfd_hash_newfunc_001cdf98,0xc)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar6 == 0) {\n      pcVar7 = (char *)dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      einfo(pcVar7);\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar7 = (char *)dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      einfo(pcVar7);\n    }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5)" identifier (argument_list "(0,"%F%P: bfd_hash_table_init failed: %E\n",5)" ( number_literal , (string_literal ""%F%P: bfd_hash_table_init failed: %E\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar7);" (call_expression "einfo(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) })) (expression_statement "local_38 = (void *)xmalloc(uVar12 + 0x21);" (assignment_expression "local_38 = (void *)xmalloc(uVar12 + 0x21)" identifier = (cast_expression "(void *)xmalloc(uVar12 + 0x21)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar12 + 0x21)" identifier (argument_list "(uVar12 + 0x21)" ( (binary_expression "uVar12 + 0x21" identifier + number_literal) ))))) ;) (expression_statement "local_40 = (char *)((int)local_38 + 0x20);" (assignment_expression "local_40 = (char *)((int)local_38 + 0x20)" identifier = (cast_expression "(char *)((int)local_38 + 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0x20)" ( (binary_expression "(int)local_38 + 0x20" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar10 = (link_info.hash)->undefs;" (assignment_expression "pbVar10 = (link_info.hash)->undefs" identifier = (field_expression "(link_info.hash)->undefs" (parenthesized_expression "(link_info.hash)" ( (field_expression "link_info.hash" identifier . field_identifier) )) -> field_identifier)) ;) (if_statement "if (pbVar10 != (bfd_link_hash_entry *)0x0) goto LAB_0005cf05;" if (parenthesized_expression "(pbVar10 != (bfd_link_hash_entry *)0x0)" ( (binary_expression "pbVar10 != (bfd_link_hash_entry *)0x0" identifier != (cast_expression "(bfd_link_hash_entry *)0x0" ( (type_descriptor "bfd_link_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0005cf05;" goto statement_identifier ;)) }) (else_clause "else {\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    local_40 = (char *)((int)local_38 + 0x20);\n    pbVar10 = (link_info.hash)->undefs;\n    import_hash = (bfd_hash_table *)0x0;\n    if (pbVar10 == (bfd_link_hash_entry *)0x0) goto LAB_0005d05d;\nLAB_0005cf05:\n    puVar5 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (pbVar10->field_0xc == '\x01') {\n        pcVar7 = (pbVar10->root).string;\n        if (pep_dll_extra_pe_debug != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar7);\n          pcVar7 = (pbVar10->root).string;\n        }\n        strcpy(local_40,pcVar7);\n        *puVar5 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar6 = bfd_link_hash_lookup(link_info.hash,puVar5,0,0,1);\n        if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) {\n          if (import_hash == (bfd_hash_table *)0x0) {\n            iVar3 = *(int *)(*(int *)(iVar6 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar3);\n            if (iVar8 == 0) {\n              pcVar7 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              einfo(pcVar7,iVar3);\n              return;\n            }\n            piVar11 = *(int **)(iVar3 + 0x78);\n            iVar3 = *(int *)(iVar3 + 0x7c);\n            if (0 < iVar3) {\n              iVar8 = 0;\n              do {\n                pcVar7 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar7,symhead,sVar4);\n                if (iVar9 == 0) {\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar3 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(import_hash,(pbVar10->root).string,1,0);\nLAB_0005cfa1:\n            pcVar7 = *(char **)(iVar6 + 0x18);\n            uVar1 = *(undefined4 *)(iVar6 + 0x1c);\n            pbVar10->field_0xc = 4;\n            (pbVar10->u).i.warning = pcVar7;\n            pbVar2 = *(bfd **)(iVar6 + 0x14);\n            *(undefined4 *)((int)&pbVar10->u + 0xc) = uVar1;\n            (pbVar10->u).undef.abfd = pbVar2;\n            if (link_info.pei386_auto_import == -1) {\n              pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              info_msg(pcVar7,local_40,puVar5);\n              if (pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0) {\n                pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);\n                einfo(pcVar7);\n                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;\n              }\n            }\n          }\n        }\n      }\n      pbVar10 = (pbVar10->u).undef.next;\n    } while (pbVar10 != (bfd_link_hash_entry *)0x0);\n    if (import_hash == (bfd_hash_table *)0x0) goto LAB_0005d05d;\n  }" else (compound_statement "{\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    local_40 = (char *)((int)local_38 + 0x20);\n    pbVar10 = (link_info.hash)->undefs;\n    import_hash = (bfd_hash_table *)0x0;\n    if (pbVar10 == (bfd_link_hash_entry *)0x0) goto LAB_0005d05d;\nLAB_0005cf05:\n    puVar5 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (pbVar10->field_0xc == '\x01') {\n        pcVar7 = (pbVar10->root).string;\n        if (pep_dll_extra_pe_debug != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar7);\n          pcVar7 = (pbVar10->root).string;\n        }\n        strcpy(local_40,pcVar7);\n        *puVar5 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar6 = bfd_link_hash_lookup(link_info.hash,puVar5,0,0,1);\n        if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) {\n          if (import_hash == (bfd_hash_table *)0x0) {\n            iVar3 = *(int *)(*(int *)(iVar6 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar3);\n            if (iVar8 == 0) {\n              pcVar7 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              einfo(pcVar7,iVar3);\n              return;\n            }\n            piVar11 = *(int **)(iVar3 + 0x78);\n            iVar3 = *(int *)(iVar3 + 0x7c);\n            if (0 < iVar3) {\n              iVar8 = 0;\n              do {\n                pcVar7 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar7,symhead,sVar4);\n                if (iVar9 == 0) {\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar3 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(import_hash,(pbVar10->root).string,1,0);\nLAB_0005cfa1:\n            pcVar7 = *(char **)(iVar6 + 0x18);\n            uVar1 = *(undefined4 *)(iVar6 + 0x1c);\n            pbVar10->field_0xc = 4;\n            (pbVar10->u).i.warning = pcVar7;\n            pbVar2 = *(bfd **)(iVar6 + 0x14);\n            *(undefined4 *)((int)&pbVar10->u + 0xc) = uVar1;\n            (pbVar10->u).undef.abfd = pbVar2;\n            if (link_info.pei386_auto_import == -1) {\n              pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              info_msg(pcVar7,local_40,puVar5);\n              if (pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0) {\n                pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);\n                einfo(pcVar7);\n                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;\n              }\n            }\n          }\n        }\n      }\n      pbVar10 = (pbVar10->u).undef.next;\n    } while (pbVar10 != (bfd_link_hash_entry *)0x0);\n    if (import_hash == (bfd_hash_table *)0x0) goto LAB_0005d05d;\n  }" { (expression_statement "local_38 = (void *)xmalloc(uVar12 + 0x21);" (assignment_expression "local_38 = (void *)xmalloc(uVar12 + 0x21)" identifier = (cast_expression "(void *)xmalloc(uVar12 + 0x21)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar12 + 0x21)" identifier (argument_list "(uVar12 + 0x21)" ( (binary_expression "uVar12 + 0x21" identifier + number_literal) ))))) ;) (expression_statement "local_40 = (char *)((int)local_38 + 0x20);" (assignment_expression "local_40 = (char *)((int)local_38 + 0x20)" identifier = (cast_expression "(char *)((int)local_38 + 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0x20)" ( (binary_expression "(int)local_38 + 0x20" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar10 = (link_info.hash)->undefs;" (assignment_expression "pbVar10 = (link_info.hash)->undefs" identifier = (field_expression "(link_info.hash)->undefs" (parenthesized_expression "(link_info.hash)" ( (field_expression "link_info.hash" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "import_hash = (bfd_hash_table *)0x0;" (assignment_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)) ;) (if_statement "if (pbVar10 == (bfd_link_hash_entry *)0x0) goto LAB_0005d05d;" if (parenthesized_expression "(pbVar10 == (bfd_link_hash_entry *)0x0)" ( (binary_expression "pbVar10 == (bfd_link_hash_entry *)0x0" identifier == (cast_expression "(bfd_link_hash_entry *)0x0" ( (type_descriptor "bfd_link_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0005d05d;" goto statement_identifier ;)) (labeled_statement "LAB_0005cf05:\n    puVar5 = (undefined4 *)((int)local_38 + 0x1a);" statement_identifier : (expression_statement "puVar5 = (undefined4 *)((int)local_38 + 0x1a);" (assignment_expression "puVar5 = (undefined4 *)((int)local_38 + 0x1a)" identifier = (cast_expression "(undefined4 *)((int)local_38 + 0x1a)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0x1a)" ( (binary_expression "(int)local_38 + 0x1a" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (do_statement "do {\n      if (pbVar10->field_0xc == '\x01') {\n        pcVar7 = (pbVar10->root).string;\n        if (pep_dll_extra_pe_debug != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar7);\n          pcVar7 = (pbVar10->root).string;\n        }\n        strcpy(local_40,pcVar7);\n        *puVar5 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar6 = bfd_link_hash_lookup(link_info.hash,puVar5,0,0,1);\n        if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) {\n          if (import_hash == (bfd_hash_table *)0x0) {\n            iVar3 = *(int *)(*(int *)(iVar6 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar3);\n            if (iVar8 == 0) {\n              pcVar7 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              einfo(pcVar7,iVar3);\n              return;\n            }\n            piVar11 = *(int **)(iVar3 + 0x78);\n            iVar3 = *(int *)(iVar3 + 0x7c);\n            if (0 < iVar3) {\n              iVar8 = 0;\n              do {\n                pcVar7 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar7,symhead,sVar4);\n                if (iVar9 == 0) {\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar3 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(import_hash,(pbVar10->root).string,1,0);\nLAB_0005cfa1:\n            pcVar7 = *(char **)(iVar6 + 0x18);\n            uVar1 = *(undefined4 *)(iVar6 + 0x1c);\n            pbVar10->field_0xc = 4;\n            (pbVar10->u).i.warning = pcVar7;\n            pbVar2 = *(bfd **)(iVar6 + 0x14);\n            *(undefined4 *)((int)&pbVar10->u + 0xc) = uVar1;\n            (pbVar10->u).undef.abfd = pbVar2;\n            if (link_info.pei386_auto_import == -1) {\n              pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              info_msg(pcVar7,local_40,puVar5);\n              if (pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0) {\n                pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);\n                einfo(pcVar7);\n                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;\n              }\n            }\n          }\n        }\n      }\n      pbVar10 = (pbVar10->u).undef.next;\n    } while (pbVar10 != (bfd_link_hash_entry *)0x0);" do (compound_statement "{\n      if (pbVar10->field_0xc == '\x01') {\n        pcVar7 = (pbVar10->root).string;\n        if (pep_dll_extra_pe_debug != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar7);\n          pcVar7 = (pbVar10->root).string;\n        }\n        strcpy(local_40,pcVar7);\n        *puVar5 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar6 = bfd_link_hash_lookup(link_info.hash,puVar5,0,0,1);\n        if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) {\n          if (import_hash == (bfd_hash_table *)0x0) {\n            iVar3 = *(int *)(*(int *)(iVar6 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar3);\n            if (iVar8 == 0) {\n              pcVar7 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              einfo(pcVar7,iVar3);\n              return;\n            }\n            piVar11 = *(int **)(iVar3 + 0x78);\n            iVar3 = *(int *)(iVar3 + 0x7c);\n            if (0 < iVar3) {\n              iVar8 = 0;\n              do {\n                pcVar7 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar7,symhead,sVar4);\n                if (iVar9 == 0) {\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar3 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(import_hash,(pbVar10->root).string,1,0);\nLAB_0005cfa1:\n            pcVar7 = *(char **)(iVar6 + 0x18);\n            uVar1 = *(undefined4 *)(iVar6 + 0x1c);\n            pbVar10->field_0xc = 4;\n            (pbVar10->u).i.warning = pcVar7;\n            pbVar2 = *(bfd **)(iVar6 + 0x14);\n            *(undefined4 *)((int)&pbVar10->u + 0xc) = uVar1;\n            (pbVar10->u).undef.abfd = pbVar2;\n            if (link_info.pei386_auto_import == -1) {\n              pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              info_msg(pcVar7,local_40,puVar5);\n              if (pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0) {\n                pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);\n                einfo(pcVar7);\n                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;\n              }\n            }\n          }\n        }\n      }\n      pbVar10 = (pbVar10->u).undef.next;\n    }" { (if_statement "if (pbVar10->field_0xc == '\x01') {\n        pcVar7 = (pbVar10->root).string;\n        if (pep_dll_extra_pe_debug != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar7);\n          pcVar7 = (pbVar10->root).string;\n        }\n        strcpy(local_40,pcVar7);\n        *puVar5 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar6 = bfd_link_hash_lookup(link_info.hash,puVar5,0,0,1);\n        if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) {\n          if (import_hash == (bfd_hash_table *)0x0) {\n            iVar3 = *(int *)(*(int *)(iVar6 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar3);\n            if (iVar8 == 0) {\n              pcVar7 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              einfo(pcVar7,iVar3);\n              return;\n            }\n            piVar11 = *(int **)(iVar3 + 0x78);\n            iVar3 = *(int *)(iVar3 + 0x7c);\n            if (0 < iVar3) {\n              iVar8 = 0;\n              do {\n                pcVar7 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar7,symhead,sVar4);\n                if (iVar9 == 0) {\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar3 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(import_hash,(pbVar10->root).string,1,0);\nLAB_0005cfa1:\n            pcVar7 = *(char **)(iVar6 + 0x18);\n            uVar1 = *(undefined4 *)(iVar6 + 0x1c);\n            pbVar10->field_0xc = 4;\n            (pbVar10->u).i.warning = pcVar7;\n            pbVar2 = *(bfd **)(iVar6 + 0x14);\n            *(undefined4 *)((int)&pbVar10->u + 0xc) = uVar1;\n            (pbVar10->u).undef.abfd = pbVar2;\n            if (link_info.pei386_auto_import == -1) {\n              pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              info_msg(pcVar7,local_40,puVar5);\n              if (pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0) {\n                pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);\n                einfo(pcVar7);\n                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(pbVar10->field_0xc == '\x01')" ( (binary_expression "pbVar10->field_0xc == '\x01'" (field_expression "pbVar10->field_0xc" identifier -> field_identifier) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar7 = (pbVar10->root).string;\n        if (pep_dll_extra_pe_debug != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar7);\n          pcVar7 = (pbVar10->root).string;\n        }\n        strcpy(local_40,pcVar7);\n        *puVar5 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar6 = bfd_link_hash_lookup(link_info.hash,puVar5,0,0,1);\n        if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) {\n          if (import_hash == (bfd_hash_table *)0x0) {\n            iVar3 = *(int *)(*(int *)(iVar6 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar3);\n            if (iVar8 == 0) {\n              pcVar7 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              einfo(pcVar7,iVar3);\n              return;\n            }\n            piVar11 = *(int **)(iVar3 + 0x78);\n            iVar3 = *(int *)(iVar3 + 0x7c);\n            if (0 < iVar3) {\n              iVar8 = 0;\n              do {\n                pcVar7 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar7,symhead,sVar4);\n                if (iVar9 == 0) {\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar3 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(import_hash,(pbVar10->root).string,1,0);\nLAB_0005cfa1:\n            pcVar7 = *(char **)(iVar6 + 0x18);\n            uVar1 = *(undefined4 *)(iVar6 + 0x1c);\n            pbVar10->field_0xc = 4;\n            (pbVar10->u).i.warning = pcVar7;\n            pbVar2 = *(bfd **)(iVar6 + 0x14);\n            *(undefined4 *)((int)&pbVar10->u + 0xc) = uVar1;\n            (pbVar10->u).undef.abfd = pbVar2;\n            if (link_info.pei386_auto_import == -1) {\n              pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              info_msg(pcVar7,local_40,puVar5);\n              if (pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0) {\n                pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);\n                einfo(pcVar7);\n                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;\n              }\n            }\n          }\n        }\n      }" { (expression_statement "pcVar7 = (pbVar10->root).string;" (assignment_expression "pcVar7 = (pbVar10->root).string" identifier = (field_expression "(pbVar10->root).string" (parenthesized_expression "(pbVar10->root)" ( (field_expression "pbVar10->root" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pep_dll_extra_pe_debug != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar7);\n          pcVar7 = (pbVar10->root).string;\n        }" if (parenthesized_expression "(pep_dll_extra_pe_debug != 0)" ( (binary_expression "pep_dll_extra_pe_debug != 0" identifier != number_literal) )) (compound_statement "{\n          printf("%s:%s\n","pep_find_data_imports",pcVar7);\n          pcVar7 = (pbVar10->root).string;\n        }" { (expression_statement "printf("%s:%s\n","pep_find_data_imports",pcVar7);" (call_expression "printf("%s:%s\n","pep_find_data_imports",pcVar7)" identifier (argument_list "("%s:%s\n","pep_find_data_imports",pcVar7)" ( (string_literal ""%s:%s\n"" " string_content escape_sequence ") , (string_literal ""pep_find_data_imports"" " string_content ") , identifier ))) ;) (expression_statement "pcVar7 = (pbVar10->root).string;" (assignment_expression "pcVar7 = (pbVar10->root).string" identifier = (field_expression "(pbVar10->root).string" (parenthesized_expression "(pbVar10->root)" ( (field_expression "pbVar10->root" identifier -> field_identifier) )) . field_identifier)) ;) })) (expression_statement "strcpy(local_40,pcVar7);" (call_expression "strcpy(local_40,pcVar7)" identifier (argument_list "(local_40,pcVar7)" ( identifier , identifier ))) ;) (expression_statement "*puVar5 = 0x6d695f5f;" (assignment_expression "*puVar5 = 0x6d695f5f" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "*(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;" (assignment_expression "*(undefined2 *)((int)local_38 + 0x1e) = 0x5f70" (pointer_expression "*(undefined2 *)((int)local_38 + 0x1e)" * (cast_expression "(undefined2 *)((int)local_38 + 0x1e)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0x1e)" ( (binary_expression "(int)local_38 + 0x1e" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = bfd_link_hash_lookup(link_info.hash,puVar5,0,0,1);" (assignment_expression "iVar6 = bfd_link_hash_lookup(link_info.hash,puVar5,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(link_info.hash,puVar5,0,0,1)" identifier (argument_list "(link_info.hash,puVar5,0,0,1)" ( (field_expression "link_info.hash" identifier . field_identifier) , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')) {\n          if (import_hash == (bfd_hash_table *)0x0) {\n            iVar3 = *(int *)(*(int *)(iVar6 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar3);\n            if (iVar8 == 0) {\n              pcVar7 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              einfo(pcVar7,iVar3);\n              return;\n            }\n            piVar11 = *(int **)(iVar3 + 0x78);\n            iVar3 = *(int *)(iVar3 + 0x7c);\n            if (0 < iVar3) {\n              iVar8 = 0;\n              do {\n                pcVar7 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar7,symhead,sVar4);\n                if (iVar9 == 0) {\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar3 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(import_hash,(pbVar10->root).string,1,0);\nLAB_0005cfa1:\n            pcVar7 = *(char **)(iVar6 + 0x18);\n            uVar1 = *(undefined4 *)(iVar6 + 0x1c);\n            pbVar10->field_0xc = 4;\n            (pbVar10->u).i.warning = pcVar7;\n            pbVar2 = *(bfd **)(iVar6 + 0x14);\n            *(undefined4 *)((int)&pbVar10->u + 0xc) = uVar1;\n            (pbVar10->u).undef.abfd = pbVar2;\n            if (link_info.pei386_auto_import == -1) {\n              pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              info_msg(pcVar7,local_40,puVar5);\n              if (pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0) {\n                pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);\n                einfo(pcVar7);\n                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;\n              }\n            }\n          }\n        }" if (parenthesized_expression "((iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03'))" ( (binary_expression "(iVar6 != 0) && (*(char *)(iVar6 + 0xc) == '\x03')" (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)(iVar6 + 0xc) == '\x03')" ( (binary_expression "*(char *)(iVar6 + 0xc) == '\x03'" (pointer_expression "*(char *)(iVar6 + 0xc)" * (cast_expression "(char *)(iVar6 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) ))) )) (compound_statement "{\n          if (import_hash == (bfd_hash_table *)0x0) {\n            iVar3 = *(int *)(*(int *)(iVar6 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar3);\n            if (iVar8 == 0) {\n              pcVar7 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              einfo(pcVar7,iVar3);\n              return;\n            }\n            piVar11 = *(int **)(iVar3 + 0x78);\n            iVar3 = *(int *)(iVar3 + 0x7c);\n            if (0 < iVar3) {\n              iVar8 = 0;\n              do {\n                pcVar7 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar7,symhead,sVar4);\n                if (iVar9 == 0) {\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar3 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(import_hash,(pbVar10->root).string,1,0);\nLAB_0005cfa1:\n            pcVar7 = *(char **)(iVar6 + 0x18);\n            uVar1 = *(undefined4 *)(iVar6 + 0x1c);\n            pbVar10->field_0xc = 4;\n            (pbVar10->u).i.warning = pcVar7;\n            pbVar2 = *(bfd **)(iVar6 + 0x14);\n            *(undefined4 *)((int)&pbVar10->u + 0xc) = uVar1;\n            (pbVar10->u).undef.abfd = pbVar2;\n            if (link_info.pei386_auto_import == -1) {\n              pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              info_msg(pcVar7,local_40,puVar5);\n              if (pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0) {\n                pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);\n                einfo(pcVar7);\n                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;\n              }\n            }\n          }\n        }" { (if_statement "if (import_hash == (bfd_hash_table *)0x0) {\n            iVar3 = *(int *)(*(int *)(iVar6 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar3);\n            if (iVar8 == 0) {\n              pcVar7 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              einfo(pcVar7,iVar3);\n              return;\n            }\n            piVar11 = *(int **)(iVar3 + 0x78);\n            iVar3 = *(int *)(iVar3 + 0x7c);\n            if (0 < iVar3) {\n              iVar8 = 0;\n              do {\n                pcVar7 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar7,symhead,sVar4);\n                if (iVar9 == 0) {\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar3 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(import_hash,(pbVar10->root).string,1,0);\nLAB_0005cfa1:\n            pcVar7 = *(char **)(iVar6 + 0x18);\n            uVar1 = *(undefined4 *)(iVar6 + 0x1c);\n            pbVar10->field_0xc = 4;\n            (pbVar10->u).i.warning = pcVar7;\n            pbVar2 = *(bfd **)(iVar6 + 0x14);\n            *(undefined4 *)((int)&pbVar10->u + 0xc) = uVar1;\n            (pbVar10->u).undef.abfd = pbVar2;\n            if (link_info.pei386_auto_import == -1) {\n              pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              info_msg(pcVar7,local_40,puVar5);\n              if (pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0) {\n                pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);\n                einfo(pcVar7);\n                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;\n              }\n            }\n          }" 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)) )) (compound_statement "{\n            iVar3 = *(int *)(*(int *)(iVar6 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar3);\n            if (iVar8 == 0) {\n              pcVar7 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              einfo(pcVar7,iVar3);\n              return;\n            }\n            piVar11 = *(int **)(iVar3 + 0x78);\n            iVar3 = *(int *)(iVar3 + 0x7c);\n            if (0 < iVar3) {\n              iVar8 = 0;\n              do {\n                pcVar7 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar7,symhead,sVar4);\n                if (iVar9 == 0) {\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar3 != iVar8);\n            }\n          }" { (expression_statement "iVar3 = *(int *)(*(int *)(iVar6 + 0x14) + 0xac);" (assignment_expression "iVar3 = *(int *)(*(int *)(iVar6 + 0x14) + 0xac)" identifier = (pointer_expression "*(int *)(*(int *)(iVar6 + 0x14) + 0xac)" * (cast_expression "(int *)(*(int *)(iVar6 + 0x14) + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 0x14) + 0xac)" ( (binary_expression "*(int *)(iVar6 + 0x14) + 0xac" (pointer_expression "*(int *)(iVar6 + 0x14)" * (cast_expression "(int *)(iVar6 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar8 = bfd_generic_link_read_symbols(iVar3);" (assignment_expression "iVar8 = bfd_generic_link_read_symbols(iVar3)" identifier = (call_expression "bfd_generic_link_read_symbols(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (if_statement "if (iVar8 == 0) {\n              pcVar7 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              einfo(pcVar7,iVar3);\n              return;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              pcVar7 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              einfo(pcVar7,iVar3);\n              return;\n            }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);" (assignment_expression "pcVar7 = (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(pcVar7,iVar3);" (call_expression "einfo(pcVar7,iVar3)" identifier (argument_list "(pcVar7,iVar3)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "piVar11 = *(int **)(iVar3 + 0x78);" (assignment_expression "piVar11 = *(int **)(iVar3 + 0x78)" identifier = (pointer_expression "*(int **)(iVar3 + 0x78)" * (cast_expression "(int **)(iVar3 + 0x78)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 0x78)" ( (binary_expression "iVar3 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(iVar3 + 0x7c);" (assignment_expression "iVar3 = *(int *)(iVar3 + 0x7c)" identifier = (pointer_expression "*(int *)(iVar3 + 0x7c)" * (cast_expression "(int *)(iVar3 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x7c)" ( (binary_expression "iVar3 + 0x7c" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar3) {\n              iVar8 = 0;\n              do {\n                pcVar7 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar7,symhead,sVar4);\n                if (iVar9 == 0) {\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar3 != iVar8);\n            }" if (parenthesized_expression "(0 < iVar3)" ( (binary_expression "0 < iVar3" number_literal < identifier) )) (compound_statement "{\n              iVar8 = 0;\n              do {\n                pcVar7 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar7,symhead,sVar4);\n                if (iVar9 == 0) {\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar3 != iVar8);\n            }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n                pcVar7 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar7,symhead,sVar4);\n                if (iVar9 == 0) {\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar3 != iVar8);" do (compound_statement "{\n                pcVar7 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar7,symhead,sVar4);\n                if (iVar9 == 0) {\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              }" { (expression_statement "pcVar7 = *(char **)(*piVar11 + 4);" (assignment_expression "pcVar7 = *(char **)(*piVar11 + 4)" identifier = (pointer_expression "*(char **)(*piVar11 + 4)" * (cast_expression "(char **)(*piVar11 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar11 + 4)" ( (binary_expression "*piVar11 + 4" (pointer_expression "*piVar11" * identifier) + number_literal) ))))) ;) (expression_statement "iVar9 = strncmp(pcVar7,symhead,sVar4);" (assignment_expression "iVar9 = strncmp(pcVar7,symhead,sVar4)" identifier = (call_expression "strncmp(pcVar7,symhead,sVar4)" identifier (argument_list "(pcVar7,symhead,sVar4)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n                  if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }" { (if_statement "if (pep_dll_extra_pe_debug != 0) {\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }" if (parenthesized_expression "(pep_dll_extra_pe_debug != 0)" ( (binary_expression "pep_dll_extra_pe_debug != 0" identifier != number_literal) )) (compound_statement "{\n                    printf("->%s\n",pcVar7);\n                    pcVar7 = *(char **)(*piVar11 + 4);\n                  }" { (expression_statement "printf("->%s\n",pcVar7);" (call_expression "printf("->%s\n",pcVar7)" identifier (argument_list "("->%s\n",pcVar7)" ( (string_literal ""->%s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "pcVar7 = *(char **)(*piVar11 + 4);" (assignment_expression "pcVar7 = *(char **)(*piVar11 + 4)" identifier = (pointer_expression "*(char **)(*piVar11 + 4)" * (cast_expression "(char **)(*piVar11 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar11 + 4)" ( (binary_expression "*piVar11 + 4" (pointer_expression "*piVar11" * identifier) + number_literal) ))))) ;) })) (if_statement "if (pcVar7 + sVar4 != (char *)0x0) {\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }" if (parenthesized_expression "(pcVar7 + sVar4 != (char *)0x0)" ( (binary_expression "pcVar7 + sVar4 != (char *)0x0" (binary_expression "pcVar7 + sVar4" identifier + identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);\n                    goto LAB_0005cfa1;\n                  }" { (expression_statement "pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb);" (call_expression "pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb)" identifier (argument_list "((bfd_link_info *)link_info.input_bfds,local_40,pcVar7 + sVar4,\n                                   (bfd_hash_table *)0x0,cb)" ( (cast_expression "(bfd_link_info *)link_info.input_bfds" ( (type_descriptor "bfd_link_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "link_info.input_bfds" identifier . field_identifier)) , identifier , (binary_expression "pcVar7 + sVar4" identifier + identifier) , (cast_expression "(bfd_hash_table *)0x0" ( (type_descriptor "bfd_hash_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier ))) ;) (goto_statement "goto LAB_0005cfa1;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar3 != iVar8)" ( (binary_expression "iVar3 != iVar8" identifier != identifier) )) ;) })) }) (else_clause "else {\n            bfd_hash_lookup(import_hash,(pbVar10->root).string,1,0);\nLAB_0005cfa1:\n            pcVar7 = *(char **)(iVar6 + 0x18);\n            uVar1 = *(undefined4 *)(iVar6 + 0x1c);\n            pbVar10->field_0xc = 4;\n            (pbVar10->u).i.warning = pcVar7;\n            pbVar2 = *(bfd **)(iVar6 + 0x14);\n            *(undefined4 *)((int)&pbVar10->u + 0xc) = uVar1;\n            (pbVar10->u).undef.abfd = pbVar2;\n            if (link_info.pei386_auto_import == -1) {\n              pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              info_msg(pcVar7,local_40,puVar5);\n              if (pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0) {\n                pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);\n                einfo(pcVar7);\n                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;\n              }\n            }\n          }" else (compound_statement "{\n            bfd_hash_lookup(import_hash,(pbVar10->root).string,1,0);\nLAB_0005cfa1:\n            pcVar7 = *(char **)(iVar6 + 0x18);\n            uVar1 = *(undefined4 *)(iVar6 + 0x1c);\n            pbVar10->field_0xc = 4;\n            (pbVar10->u).i.warning = pcVar7;\n            pbVar2 = *(bfd **)(iVar6 + 0x14);\n            *(undefined4 *)((int)&pbVar10->u + 0xc) = uVar1;\n            (pbVar10->u).undef.abfd = pbVar2;\n            if (link_info.pei386_auto_import == -1) {\n              pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              info_msg(pcVar7,local_40,puVar5);\n              if (pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0) {\n                pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);\n                einfo(pcVar7);\n                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;\n              }\n            }\n          }" { (expression_statement "bfd_hash_lookup(import_hash,(pbVar10->root).string,1,0);" (call_expression "bfd_hash_lookup(import_hash,(pbVar10->root).string,1,0)" identifier (argument_list "(import_hash,(pbVar10->root).string,1,0)" ( identifier , (field_expression "(pbVar10->root).string" (parenthesized_expression "(pbVar10->root)" ( (field_expression "pbVar10->root" identifier -> field_identifier) )) . field_identifier) , number_literal , number_literal ))) ;) (labeled_statement "LAB_0005cfa1:\n            pcVar7 = *(char **)(iVar6 + 0x18);" statement_identifier : (expression_statement "pcVar7 = *(char **)(iVar6 + 0x18);" (assignment_expression "pcVar7 = *(char **)(iVar6 + 0x18)" identifier = (pointer_expression "*(char **)(iVar6 + 0x18)" * (cast_expression "(char **)(iVar6 + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) ))))) ;)) (expression_statement "uVar1 = *(undefined4 *)(iVar6 + 0x1c);" (assignment_expression "uVar1 = *(undefined4 *)(iVar6 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar6 + 0x1c)" * (cast_expression "(undefined4 *)(iVar6 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "pbVar10->field_0xc = 4;" (assignment_expression "pbVar10->field_0xc = 4" (field_expression "pbVar10->field_0xc" identifier -> field_identifier) = number_literal) ;) (expression_statement "(pbVar10->u).i.warning = pcVar7;" (assignment_expression "(pbVar10->u).i.warning = pcVar7" (field_expression "(pbVar10->u).i.warning" (field_expression "(pbVar10->u).i" (parenthesized_expression "(pbVar10->u)" ( (field_expression "pbVar10->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "pbVar2 = *(bfd **)(iVar6 + 0x14);" (assignment_expression "pbVar2 = *(bfd **)(iVar6 + 0x14)" identifier = (pointer_expression "*(bfd **)(iVar6 + 0x14)" * (cast_expression "(bfd **)(iVar6 + 0x14)" ( (type_descriptor "bfd **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)&pbVar10->u + 0xc) = uVar1;" (assignment_expression "*(undefined4 *)((int)&pbVar10->u + 0xc) = uVar1" (pointer_expression "*(undefined4 *)((int)&pbVar10->u + 0xc)" * (cast_expression "(undefined4 *)((int)&pbVar10->u + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pbVar10->u + 0xc)" ( (binary_expression "(int)&pbVar10->u + 0xc" (cast_expression "(int)&pbVar10->u" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar10->u" & (field_expression "pbVar10->u" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "(pbVar10->u).undef.abfd = pbVar2;" (assignment_expression "(pbVar10->u).undef.abfd = pbVar2" (field_expression "(pbVar10->u).undef.abfd" (field_expression "(pbVar10->u).undef" (parenthesized_expression "(pbVar10->u)" ( (field_expression "pbVar10->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (link_info.pei386_auto_import == -1) {\n              pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              info_msg(pcVar7,local_40,puVar5);\n              if (pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0) {\n                pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);\n                einfo(pcVar7);\n                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;\n              }\n            }" if (parenthesized_expression "(link_info.pei386_auto_import == -1)" ( (binary_expression "link_info.pei386_auto_import == -1" (field_expression "link_info.pei386_auto_import" identifier . field_identifier) == number_literal) )) (compound_statement "{\n              pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              info_msg(pcVar7,local_40,puVar5);\n              if (pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0) {\n                pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);\n                einfo(pcVar7);\n                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;\n              }\n            }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5)" identifier (argument_list "(0,"Info: resolving %s by linking to %s (auto-import)\n",5)" ( number_literal , (string_literal ""Info: resolving %s by linking to %s (auto-import)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "info_msg(pcVar7,local_40,puVar5);" (call_expression "info_msg(pcVar7,local_40,puVar5)" identifier (argument_list "(pcVar7,local_40,puVar5)" ( identifier , identifier , identifier ))) ;) (if_statement "if (pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0) {\n                pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);\n                einfo(pcVar7);\n                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;\n              }" if (parenthesized_expression "(pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0)" ( (binary_expression "pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned == 0" identifier (ERROR "::lexical_block_10::lexical_block_10_3::warned" : : identifier : : identifier : : identifier) == number_literal) )) (compound_statement "{\n                pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);\n                einfo(pcVar7);\n                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;\n              }" { (expression_statement "pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5)" identifier (argument_list "(0,\n                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                           ,5)" ( number_literal , (string_literal ""%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar7);" (call_expression "einfo(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier ))) ;) (labeled_statement "pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10::lexical_block_10_3::warned = 1;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10_3::warned = 1;" statement_identifier : (ERROR ":" :) (expression_statement "warned = 1;" (assignment_expression "warned = 1" identifier = number_literal) ;)))) })) })) }))) })) })) (expression_statement "pbVar10 = (pbVar10->u).undef.next;" (assignment_expression "pbVar10 = (pbVar10->u).undef.next" identifier = (field_expression "(pbVar10->u).undef.next" (field_expression "(pbVar10->u).undef" (parenthesized_expression "(pbVar10->u)" ( (field_expression "pbVar10->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) while (parenthesized_expression "(pbVar10 != (bfd_link_hash_entry *)0x0)" ( (binary_expression "pbVar10 != (bfd_link_hash_entry *)0x0" identifier != (cast_expression "(bfd_link_hash_entry *)0x0" ( (type_descriptor "bfd_link_hash_entry *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if (import_hash == (bfd_hash_table *)0x0) goto LAB_0005d05d;" 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)) )) (goto_statement "goto LAB_0005d05d;" goto statement_identifier ;)) }))) (expression_statement "pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,(char *)0x0,import_hash,cb);" (call_expression "pe_walk_relocs((bfd_link_info *)link_info.input_bfds,local_40,(char *)0x0,import_hash,cb)" identifier (argument_list "((bfd_link_info *)link_info.input_bfds,local_40,(char *)0x0,import_hash,cb)" ( (cast_expression "(bfd_link_info *)link_info.input_bfds" ( (type_descriptor "bfd_link_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "link_info.input_bfds" identifier . field_identifier)) , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier ))) ;) (expression_statement "bfd_hash_table_free(import_hash);" (call_expression "bfd_hash_table_free(import_hash)" identifier (argument_list "(import_hash)" ( identifier ))) ;) (expression_statement "free(import_hash);" (call_expression "free(import_hash)" identifier (argument_list "(import_hash)" ( identifier ))) ;) (labeled_statement "LAB_0005d05d:\n  free(local_38);" statement_identifier : (expression_statement "free(local_38);" (call_expression "free(local_38)" identifier (argument_list "(local_38)" ( identifier ))) ;)) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0005ce60(char *param_1,undefined4 param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 uVar6;\n  void *__ptr;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  int *piVar11;\n  uint uVar12;\n  char *local_40;\n  void *local_38;\n  \n  iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n  if (iVar7 == 0) {\n    return;\n  }\n  uVar12 = 0;\n  do {\n    if ((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)) {\n      uVar12 = sVar3;\n    }\n    iVar7 = *(int *)(iVar7 + 0x10);\n  } while (iVar7 != 0);\n  if (uVar12 == 0) {\n    return;\n  }\n  sVar3 = strlen(param_1);\n  if (DAT_001d044c == 2) {\n    __ptr = (void *)xmalloc(0x1c);\n    iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc);\n    if (iVar7 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    if (iVar7 != 0) goto LAB_0005cf05;\n  }\n  else {\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    __ptr = (void *)0x0;\n    if (iVar7 == 0) goto LAB_0005d05d;\nLAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);\n    puVar4 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);\n    if (__ptr == (void *)0x0) goto LAB_0005d05d;\n  }\n  FUN_0005b620(__ptr,param_2);\n  bfd_hash_table_free(__ptr);\n  free(__ptr);\nLAB_0005d05d:\n  free(local_38);\n  return;\n}\n\n" (function_definition "void FUN_0005ce60(char *param_1,undefined4 param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 uVar6;\n  void *__ptr;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  int *piVar11;\n  uint uVar12;\n  char *local_40;\n  void *local_38;\n  \n  iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n  if (iVar7 == 0) {\n    return;\n  }\n  uVar12 = 0;\n  do {\n    if ((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)) {\n      uVar12 = sVar3;\n    }\n    iVar7 = *(int *)(iVar7 + 0x10);\n  } while (iVar7 != 0);\n  if (uVar12 == 0) {\n    return;\n  }\n  sVar3 = strlen(param_1);\n  if (DAT_001d044c == 2) {\n    __ptr = (void *)xmalloc(0x1c);\n    iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc);\n    if (iVar7 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    if (iVar7 != 0) goto LAB_0005cf05;\n  }\n  else {\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    __ptr = (void *)0x0;\n    if (iVar7 == 0) goto LAB_0005d05d;\nLAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);\n    puVar4 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);\n    if (__ptr == (void *)0x0) goto LAB_0005d05d;\n  }\n  FUN_0005b620(__ptr,param_2);\n  bfd_hash_table_free(__ptr);\n  free(__ptr);\nLAB_0005d05d:\n  free(local_38);\n  return;\n}" primitive_type (function_declarator "FUN_0005ce60(char *param_1,undefined4 param_2)" identifier (parameter_list "(char *param_1,undefined4 param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 uVar6;\n  void *__ptr;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  int *piVar11;\n  uint uVar12;\n  char *local_40;\n  void *local_38;\n  \n  iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n  if (iVar7 == 0) {\n    return;\n  }\n  uVar12 = 0;\n  do {\n    if ((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)) {\n      uVar12 = sVar3;\n    }\n    iVar7 = *(int *)(iVar7 + 0x10);\n  } while (iVar7 != 0);\n  if (uVar12 == 0) {\n    return;\n  }\n  sVar3 = strlen(param_1);\n  if (DAT_001d044c == 2) {\n    __ptr = (void *)xmalloc(0x1c);\n    iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc);\n    if (iVar7 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    if (iVar7 != 0) goto LAB_0005cf05;\n  }\n  else {\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    __ptr = (void *)0x0;\n    if (iVar7 == 0) goto LAB_0005d05d;\nLAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);\n    puVar4 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);\n    if (__ptr == (void *)0x0) goto LAB_0005d05d;\n  }\n  FUN_0005b620(__ptr,param_2);\n  bfd_hash_table_free(__ptr);\n  free(__ptr);\nLAB_0005d05d:\n  free(local_38);\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "char *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "void *local_38;" primitive_type (pointer_declarator "*local_38" * identifier) ;) (expression_statement "iVar7 = *(int *)(DAT_001d0400 + 0x1c);" (assignment_expression "iVar7 = *(int *)(DAT_001d0400 + 0x1c)" identifier = (pointer_expression "*(int *)(DAT_001d0400 + 0x1c)" * (cast_expression "(int *)(DAT_001d0400 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0400 + 0x1c)" ( (binary_expression "DAT_001d0400 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) {\n    return;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n    if ((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)) {\n      uVar12 = sVar3;\n    }\n    iVar7 = *(int *)(iVar7 + 0x10);\n  } while (iVar7 != 0);" do (compound_statement "{\n    if ((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)) {\n      uVar12 = sVar3;\n    }\n    iVar7 = *(int *)(iVar7 + 0x10);\n  }" { (if_statement "if ((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)) {\n      uVar12 = sVar3;\n    }" if (parenthesized_expression "((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3))" ( (binary_expression "(*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)" (parenthesized_expression "(*(char *)(iVar7 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar7 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar7 + 0xc)" * (cast_expression "(char *)(iVar7 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) && (parenthesized_expression "(sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)" ( (comma_expression "sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3" (assignment_expression "sVar3 = strlen(*(char **)(iVar7 + 4))" identifier = (call_expression "strlen(*(char **)(iVar7 + 4))" identifier (argument_list "(*(char **)(iVar7 + 4))" ( (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) )))) )))) , (binary_expression "uVar12 < sVar3" identifier < identifier)) ))) )) (compound_statement "{\n      uVar12 = sVar3;\n    }" { (expression_statement "uVar12 = sVar3;" (assignment_expression "uVar12 = sVar3" identifier = identifier) ;) })) (expression_statement "iVar7 = *(int *)(iVar7 + 0x10);" (assignment_expression "iVar7 = *(int *)(iVar7 + 0x10)" identifier = (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) (if_statement "if (uVar12 == 0) {\n    return;\n  }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "sVar3 = strlen(param_1);" (assignment_expression "sVar3 = strlen(param_1)" identifier = (call_expression "strlen(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (DAT_001d044c == 2) {\n    __ptr = (void *)xmalloc(0x1c);\n    iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc);\n    if (iVar7 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    if (iVar7 != 0) goto LAB_0005cf05;\n  }\n  else {\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    __ptr = (void *)0x0;\n    if (iVar7 == 0) goto LAB_0005d05d;\nLAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);\n    puVar4 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);\n    if (__ptr == (void *)0x0) goto LAB_0005d05d;\n  }" if (parenthesized_expression "(DAT_001d044c == 2)" ( (binary_expression "DAT_001d044c == 2" identifier == number_literal) )) (compound_statement "{\n    __ptr = (void *)xmalloc(0x1c);\n    iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc);\n    if (iVar7 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    if (iVar7 != 0) goto LAB_0005cf05;\n  }" { (expression_statement "__ptr = (void *)xmalloc(0x1c);" (assignment_expression "__ptr = (void *)xmalloc(0x1c)" identifier = (cast_expression "(void *)xmalloc(0x1c)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x1c)" identifier (argument_list "(0x1c)" ( number_literal ))))) ;) (expression_statement "iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc);" (assignment_expression "iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc)" identifier = (call_expression "bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc)" identifier (argument_list "(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (iVar7 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }" { (expression_statement "uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5)" identifier (argument_list "(0,"%F%P: bfd_hash_table_init failed: %E\n",5)" ( number_literal , (string_literal ""%F%P: bfd_hash_table_init failed: %E\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar6);" (call_expression "FUN_00034d20(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) })) (expression_statement "local_38 = (void *)xmalloc(uVar12 + 0x21);" (assignment_expression "local_38 = (void *)xmalloc(uVar12 + 0x21)" identifier = (cast_expression "(void *)xmalloc(uVar12 + 0x21)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar12 + 0x21)" identifier (argument_list "(uVar12 + 0x21)" ( (binary_expression "uVar12 + 0x21" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(DAT_001d0400 + 0x1c);" (assignment_expression "iVar7 = *(int *)(DAT_001d0400 + 0x1c)" identifier = (pointer_expression "*(int *)(DAT_001d0400 + 0x1c)" * (cast_expression "(int *)(DAT_001d0400 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0400 + 0x1c)" ( (binary_expression "DAT_001d0400 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 != 0) goto LAB_0005cf05;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0005cf05;" goto statement_identifier ;)) }) (else_clause "else {\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    __ptr = (void *)0x0;\n    if (iVar7 == 0) goto LAB_0005d05d;\nLAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);\n    puVar4 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);\n    if (__ptr == (void *)0x0) goto LAB_0005d05d;\n  }" else (compound_statement "{\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    __ptr = (void *)0x0;\n    if (iVar7 == 0) goto LAB_0005d05d;\nLAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);\n    puVar4 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);\n    if (__ptr == (void *)0x0) goto LAB_0005d05d;\n  }" { (expression_statement "local_38 = (void *)xmalloc(uVar12 + 0x21);" (assignment_expression "local_38 = (void *)xmalloc(uVar12 + 0x21)" identifier = (cast_expression "(void *)xmalloc(uVar12 + 0x21)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar12 + 0x21)" identifier (argument_list "(uVar12 + 0x21)" ( (binary_expression "uVar12 + 0x21" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(DAT_001d0400 + 0x1c);" (assignment_expression "iVar7 = *(int *)(DAT_001d0400 + 0x1c)" identifier = (pointer_expression "*(int *)(DAT_001d0400 + 0x1c)" * (cast_expression "(int *)(DAT_001d0400 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0400 + 0x1c)" ( (binary_expression "DAT_001d0400 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "__ptr = (void *)0x0;" (assignment_expression "__ptr = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar7 == 0) goto LAB_0005d05d;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0005d05d;" goto statement_identifier ;)) (labeled_statement "LAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);" statement_identifier : (expression_statement "local_40 = (char *)((int)local_38 + 0x20);" (assignment_expression "local_40 = (char *)((int)local_38 + 0x20)" identifier = (cast_expression "(char *)((int)local_38 + 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0x20)" ( (binary_expression "(int)local_38 + 0x20" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "puVar4 = (undefined4 *)((int)local_38 + 0x1a);" (assignment_expression "puVar4 = (undefined4 *)((int)local_38 + 0x1a)" identifier = (cast_expression "(undefined4 *)((int)local_38 + 0x1a)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0x1a)" ( (binary_expression "(int)local_38 + 0x1a" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (do_statement "do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);" do (compound_statement "{\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    }" { (if_statement "if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "(*(char *)(iVar7 + 0xc) == '\x01')" ( (binary_expression "*(char *)(iVar7 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar7 + 0xc)" * (cast_expression "(char *)(iVar7 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }" { (expression_statement "pcVar10 = *(char **)(iVar7 + 4);" (assignment_expression "pcVar10 = *(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 (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }" if (parenthesized_expression "(DAT_001d0144 != 0)" ( (binary_expression "DAT_001d0144 != 0" identifier != number_literal) )) (compound_statement "{\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }" { (expression_statement "printf("%s:%s\n","pep_find_data_imports",pcVar10);" (call_expression "printf("%s:%s\n","pep_find_data_imports",pcVar10)" identifier (argument_list "("%s:%s\n","pep_find_data_imports",pcVar10)" ( (string_literal ""%s:%s\n"" " string_content escape_sequence ") , (string_literal ""pep_find_data_imports"" " string_content ") , identifier ))) ;) (expression_statement "pcVar10 = *(char **)(iVar7 + 4);" (assignment_expression "pcVar10 = *(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 "strcpy(local_40,pcVar10);" (call_expression "strcpy(local_40,pcVar10)" identifier (argument_list "(local_40,pcVar10)" ( identifier , identifier ))) ;) (expression_statement "*puVar4 = 0x6d695f5f;" (assignment_expression "*puVar4 = 0x6d695f5f" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "*(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;" (assignment_expression "*(undefined2 *)((int)local_38 + 0x1e) = 0x5f70" (pointer_expression "*(undefined2 *)((int)local_38 + 0x1e)" * (cast_expression "(undefined2 *)((int)local_38 + 0x1e)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + 0x1e)" ( (binary_expression "(int)local_38 + 0x1e" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);" (assignment_expression "iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1)" identifier (argument_list "(DAT_001d0400,puVar4,0,0,1)" ( identifier , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }" if (parenthesized_expression "((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03'))" ( (binary_expression "(iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(char *)(iVar5 + 0xc) == '\x03')" ( (binary_expression "*(char *)(iVar5 + 0xc) == '\x03'" (pointer_expression "*(char *)(iVar5 + 0xc)" * (cast_expression "(char *)(iVar5 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) == (char_literal "'\x03'" ' escape_sequence ')) ))) )) (compound_statement "{\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }" { (if_statement "if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }" if (parenthesized_expression "(__ptr == (void *)0x0)" ( (binary_expression "__ptr == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }" { (expression_statement "iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);" (assignment_expression "iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac)" identifier = (pointer_expression "*(int *)(*(int *)(iVar5 + 0x14) + 0xac)" * (cast_expression "(int *)(*(int *)(iVar5 + 0x14) + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x14) + 0xac)" ( (binary_expression "*(int *)(iVar5 + 0x14) + 0xac" (pointer_expression "*(int *)(iVar5 + 0x14)" * (cast_expression "(int *)(iVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar8 = bfd_generic_link_read_symbols(iVar2);" (assignment_expression "iVar8 = bfd_generic_link_read_symbols(iVar2)" identifier = (call_expression "bfd_generic_link_read_symbols(iVar2)" identifier (argument_list "(iVar2)" ( identifier )))) ;) (if_statement "if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }" { (expression_statement "uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);" (assignment_expression "uVar6 = 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(uVar6,iVar2);" (call_expression "FUN_00034d20(uVar6,iVar2)" identifier (argument_list "(uVar6,iVar2)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "piVar11 = *(int **)(iVar2 + 0x78);" (assignment_expression "piVar11 = *(int **)(iVar2 + 0x78)" identifier = (pointer_expression "*(int **)(iVar2 + 0x78)" * (cast_expression "(int **)(iVar2 + 0x78)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x78)" ( (binary_expression "iVar2 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(iVar2 + 0x7c);" (assignment_expression "iVar2 = *(int *)(iVar2 + 0x7c)" identifier = (pointer_expression "*(int *)(iVar2 + 0x7c)" * (cast_expression "(int *)(iVar2 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x7c)" ( (binary_expression "iVar2 + 0x7c" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }" if (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) (compound_statement "{\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);" do (compound_statement "{\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              }" { (expression_statement "pcVar10 = *(char **)(*piVar11 + 4);" (assignment_expression "pcVar10 = *(char **)(*piVar11 + 4)" identifier = (pointer_expression "*(char **)(*piVar11 + 4)" * (cast_expression "(char **)(*piVar11 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar11 + 4)" ( (binary_expression "*piVar11 + 4" (pointer_expression "*piVar11" * identifier) + number_literal) ))))) ;) (expression_statement "iVar9 = strncmp(pcVar10,param_1,sVar3);" (assignment_expression "iVar9 = strncmp(pcVar10,param_1,sVar3)" identifier = (call_expression "strncmp(pcVar10,param_1,sVar3)" identifier (argument_list "(pcVar10,param_1,sVar3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }" { (if_statement "if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }" if (parenthesized_expression "(DAT_001d0144 != 0)" ( (binary_expression "DAT_001d0144 != 0" identifier != number_literal) )) (compound_statement "{\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }" { (expression_statement "printf("->%s\n",pcVar10);" (call_expression "printf("->%s\n",pcVar10)" identifier (argument_list "("->%s\n",pcVar10)" ( (string_literal ""->%s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "pcVar10 = *(char **)(*piVar11 + 4);" (assignment_expression "pcVar10 = *(char **)(*piVar11 + 4)" identifier = (pointer_expression "*(char **)(*piVar11 + 4)" * (cast_expression "(char **)(*piVar11 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar11 + 4)" ( (binary_expression "*piVar11 + 4" (pointer_expression "*piVar11" * identifier) + number_literal) ))))) ;) })) (if_statement "if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }" if (parenthesized_expression "(pcVar10 + sVar3 != (char *)0x0)" ( (binary_expression "pcVar10 + sVar3 != (char *)0x0" (binary_expression "pcVar10 + sVar3" identifier + identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }" { (expression_statement "FUN_0005b620(0,param_2);" (call_expression "FUN_0005b620(0,param_2)" identifier (argument_list "(0,param_2)" ( number_literal , identifier ))) ;) (goto_statement "goto LAB_0005cfa1;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar2 != iVar8)" ( (binary_expression "iVar2 != iVar8" identifier != identifier) )) ;) })) }) (else_clause "else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }" else (compound_statement "{\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }" { (expression_statement "bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);" (call_expression "bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0)" identifier (argument_list "(__ptr,*(undefined4 *)(iVar7 + 4),1,0)" ( identifier , (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) , number_literal , number_literal ))) ;) (labeled_statement "LAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);" statement_identifier : (expression_statement "uVar6 = *(undefined4 *)(iVar5 + 0x18);" (assignment_expression "uVar6 = *(undefined4 *)(iVar5 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x18)" * (cast_expression "(undefined4 *)(iVar5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) ;)) (expression_statement "uVar1 = *(undefined4 *)(iVar5 + 0x1c);" (assignment_expression "uVar1 = *(undefined4 *)(iVar5 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x1c)" * (cast_expression "(undefined4 *)(iVar5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar7 + 0xc) = 4;" (assignment_expression "*(undefined1 *)(iVar7 + 0xc) = 4" (pointer_expression "*(undefined1 *)(iVar7 + 0xc)" * (cast_expression "(undefined1 *)(iVar7 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x18) = uVar6;" (assignment_expression "*(undefined4 *)(iVar7 + 0x18) = uVar6" (pointer_expression "*(undefined4 *)(iVar7 + 0x18)" * (cast_expression "(undefined4 *)(iVar7 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar6 = *(undefined4 *)(iVar5 + 0x14);" (assignment_expression "uVar6 = *(undefined4 *)(iVar5 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" * (cast_expression "(undefined4 *)(iVar5 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x1c) = uVar1;" (assignment_expression "*(undefined4 *)(iVar7 + 0x1c) = uVar1" (pointer_expression "*(undefined4 *)(iVar7 + 0x1c)" * (cast_expression "(undefined4 *)(iVar7 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x14) = uVar6;" (assignment_expression "*(undefined4 *)(iVar7 + 0x14) = uVar6" (pointer_expression "*(undefined4 *)(iVar7 + 0x14)" * (cast_expression "(undefined4 *)(iVar7 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }" if (parenthesized_expression "(DAT_001d0448 == -1)" ( (binary_expression "DAT_001d0448 == -1" identifier == number_literal) )) (compound_statement "{\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }" { (expression_statement "uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);" (assignment_expression "uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5)" identifier = (call_expression "dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5)" identifier (argument_list "(0,"Info: resolving %s by linking to %s (auto-import)\n",5)" ( number_literal , (string_literal ""Info: resolving %s by linking to %s (auto-import)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034cf0(uVar6,local_40,puVar4);" (call_expression "FUN_00034cf0(uVar6,local_40,puVar4)" identifier (argument_list "(uVar6,local_40,puVar4)" ( identifier , identifier , identifier ))) ;) (if_statement "if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }" if (parenthesized_expression "(DAT_001d0168 == 0)" ( (binary_expression "DAT_001d0168 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }" { (expression_statement "uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);" (assignment_expression "uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5)" identifier = (call_expression "dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5)" identifier (argument_list "(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5)" ( number_literal , (string_literal ""%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar6);" (call_expression "FUN_00034d20(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) (expression_statement "DAT_001d0168 = 1;" (assignment_expression "DAT_001d0168 = 1" identifier = number_literal) ;) })) })) }))) })) })) (expression_statement "iVar7 = *(int *)(iVar7 + 0x10);" (assignment_expression "iVar7 = *(int *)(iVar7 + 0x10)" identifier = (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) (if_statement "if (__ptr == (void *)0x0) goto LAB_0005d05d;" if (parenthesized_expression "(__ptr == (void *)0x0)" ( (binary_expression "__ptr == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0005d05d;" goto statement_identifier ;)) }))) (expression_statement "FUN_0005b620(__ptr,param_2);" (call_expression "FUN_0005b620(__ptr,param_2)" identifier (argument_list "(__ptr,param_2)" ( identifier , identifier ))) ;) (expression_statement "bfd_hash_table_free(__ptr);" (call_expression "bfd_hash_table_free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (labeled_statement "LAB_0005d05d:\n  free(local_38);" statement_identifier : (expression_statement "free(local_38);" (call_expression "free(local_38)" identifier (argument_list "(local_38)" ( identifier ))) ;)) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) , (binary_expression IDENT < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = 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) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (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) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (string_literal " string_content ") , 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) ))))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 , 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 ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) })) }))) })) })) (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) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (return_statement return ;) })))
(function_definition "void FUN_0005ce60(char *param_1,undefined4 param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 uVar6;\n  void *__ptr;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  int *piVar11;\n  uint uVar12;\n  char *local_40;\n  void *local_38;\n  \n  iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n  if (iVar7 == 0) {\n    return;\n  }\n  uVar12 = 0;\n  do {\n    if ((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)) {\n      uVar12 = sVar3;\n    }\n    iVar7 = *(int *)(iVar7 + 0x10);\n  } while (iVar7 != 0);\n  if (uVar12 == 0) {\n    return;\n  }\n  sVar3 = strlen(param_1);\n  if (DAT_001d044c == 2) {\n    __ptr = (void *)xmalloc(0x1c);\n    iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc);\n    if (iVar7 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    if (iVar7 != 0) goto LAB_0005cf05;\n  }\n  else {\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    __ptr = (void *)0x0;\n    if (iVar7 == 0) goto LAB_0005d05d;\nLAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);\n    puVar4 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);\n    if (__ptr == (void *)0x0) goto LAB_0005d05d;\n  }\n  FUN_0005b620(__ptr,param_2);\n  bfd_hash_table_free(__ptr);\n  free(__ptr);\nLAB_0005d05d:\n  free(local_38);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0005ce60(char *param_1,undefined4 param_2)" (identifier "FUN_0005ce60") (parameter_list "(char *param_1,undefined4 param_2)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  undefined4 uVar6;\n  void *__ptr;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  int *piVar11;\n  uint uVar12;\n  char *local_40;\n  void *local_38;\n  \n  iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n  if (iVar7 == 0) {\n    return;\n  }\n  uVar12 = 0;\n  do {\n    if ((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)) {\n      uVar12 = sVar3;\n    }\n    iVar7 = *(int *)(iVar7 + 0x10);\n  } while (iVar7 != 0);\n  if (uVar12 == 0) {\n    return;\n  }\n  sVar3 = strlen(param_1);\n  if (DAT_001d044c == 2) {\n    __ptr = (void *)xmalloc(0x1c);\n    iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc);\n    if (iVar7 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    if (iVar7 != 0) goto LAB_0005cf05;\n  }\n  else {\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    __ptr = (void *)0x0;\n    if (iVar7 == 0) goto LAB_0005d05d;\nLAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);\n    puVar4 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);\n    if (__ptr == (void *)0x0) goto LAB_0005d05d;\n  }\n  FUN_0005b620(__ptr,param_2);\n  bfd_hash_table_free(__ptr);\n  free(__ptr);\nLAB_0005d05d:\n  free(local_38);\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "size_t sVar3;" (primitive_type "size_t") (identifier "sVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "char *local_40;" (primitive_type "char") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "void *local_38;" (primitive_type "void") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (expression_statement "iVar7 = *(int *)(DAT_001d0400 + 0x1c);" (assignment_expression "iVar7 = *(int *)(DAT_001d0400 + 0x1c)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(DAT_001d0400 + 0x1c)" (* "*") (cast_expression "(int *)(DAT_001d0400 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d0400 + 0x1c)" (( "(") (binary_expression "DAT_001d0400 + 0x1c" (identifier "DAT_001d0400") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (iVar7 == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n    if ((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)) {\n      uVar12 = sVar3;\n    }\n    iVar7 = *(int *)(iVar7 + 0x10);\n  } while (iVar7 != 0);" (do "do") (compound_statement "{\n    if ((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)) {\n      uVar12 = sVar3;\n    }\n    iVar7 = *(int *)(iVar7 + 0x10);\n  }" ({ "{") (if_statement "if ((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)) {\n      uVar12 = sVar3;\n    }" (if "if") (parenthesized_expression "((*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3))" (( "(") (binary_expression "(*(char *)(iVar7 + 0xc) == '\x01') &&\n       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)" (parenthesized_expression "(*(char *)(iVar7 + 0xc) == '\x01')" (( "(") (binary_expression "*(char *)(iVar7 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar7 + 0xc)" (* "*") (cast_expression "(char *)(iVar7 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)" (( "(") (comma_expression "sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3" (assignment_expression "sVar3 = strlen(*(char **)(iVar7 + 4))" (identifier "sVar3") (= "=") (call_expression "strlen(*(char **)(iVar7 + 4))" (identifier "strlen") (argument_list "(*(char **)(iVar7 + 4))" (( "(") (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")) () ")")))) () ")")))) (, ",") (binary_expression "uVar12 < sVar3" (identifier "uVar12") (< "<") (identifier "sVar3"))) () ")"))) () ")")) (compound_statement "{\n      uVar12 = sVar3;\n    }" ({ "{") (expression_statement "uVar12 = sVar3;" (assignment_expression "uVar12 = sVar3" (identifier "uVar12") (= "=") (identifier "sVar3")) (; ";")) (} "}"))) (expression_statement "iVar7 = *(int *)(iVar7 + 0x10);" (assignment_expression "iVar7 = *(int *)(iVar7 + 0x10)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar7 + 0x10)" (* "*") (cast_expression "(int *)(iVar7 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (uVar12 == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "sVar3 = strlen(param_1);" (assignment_expression "sVar3 = strlen(param_1)" (identifier "sVar3") (= "=") (call_expression "strlen(param_1)" (identifier "strlen") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (DAT_001d044c == 2) {\n    __ptr = (void *)xmalloc(0x1c);\n    iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc);\n    if (iVar7 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    if (iVar7 != 0) goto LAB_0005cf05;\n  }\n  else {\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    __ptr = (void *)0x0;\n    if (iVar7 == 0) goto LAB_0005d05d;\nLAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);\n    puVar4 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);\n    if (__ptr == (void *)0x0) goto LAB_0005d05d;\n  }" (if "if") (parenthesized_expression "(DAT_001d044c == 2)" (( "(") (binary_expression "DAT_001d044c == 2" (identifier "DAT_001d044c") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    __ptr = (void *)xmalloc(0x1c);\n    iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc);\n    if (iVar7 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    if (iVar7 != 0) goto LAB_0005cf05;\n  }" ({ "{") (expression_statement "__ptr = (void *)xmalloc(0x1c);" (assignment_expression "__ptr = (void *)xmalloc(0x1c)" (identifier "__ptr") (= "=") (cast_expression "(void *)xmalloc(0x1c)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x1c)" (identifier "xmalloc") (argument_list "(0x1c)" (( "(") (number_literal "0x1c") () ")"))))) (; ";")) (expression_statement "iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc);" (assignment_expression "iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc)" (identifier "iVar7") (= "=") (call_expression "bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc)" (identifier "bfd_hash_table_init") (argument_list "(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc)" (( "(") (identifier "__ptr") (, ",") (identifier "PTR_bfd_hash_newfunc_001cdf98") (, ",") (number_literal "0xc") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);\n      FUN_00034d20(uVar6);\n    }" ({ "{") (expression_statement "uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: bfd_hash_table_init failed: %E\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: bfd_hash_table_init failed: %E\n"" (" """) (string_content "%F%P: bfd_hash_table_init failed: %E") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar6);" (call_expression "FUN_00034d20(uVar6)" (identifier "FUN_00034d20") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (expression_statement "local_38 = (void *)xmalloc(uVar12 + 0x21);" (assignment_expression "local_38 = (void *)xmalloc(uVar12 + 0x21)" (identifier "local_38") (= "=") (cast_expression "(void *)xmalloc(uVar12 + 0x21)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(uVar12 + 0x21)" (identifier "xmalloc") (argument_list "(uVar12 + 0x21)" (( "(") (binary_expression "uVar12 + 0x21" (identifier "uVar12") (+ "+") (number_literal "0x21")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(DAT_001d0400 + 0x1c);" (assignment_expression "iVar7 = *(int *)(DAT_001d0400 + 0x1c)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(DAT_001d0400 + 0x1c)" (* "*") (cast_expression "(int *)(DAT_001d0400 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d0400 + 0x1c)" (( "(") (binary_expression "DAT_001d0400 + 0x1c" (identifier "DAT_001d0400") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (iVar7 != 0) goto LAB_0005cf05;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005cf05;" (goto "goto") (statement_identifier "LAB_0005cf05") (; ";"))) (} "}")) (else_clause "else {\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    __ptr = (void *)0x0;\n    if (iVar7 == 0) goto LAB_0005d05d;\nLAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);\n    puVar4 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);\n    if (__ptr == (void *)0x0) goto LAB_0005d05d;\n  }" (else "else") (compound_statement "{\n    local_38 = (void *)xmalloc(uVar12 + 0x21);\n    iVar7 = *(int *)(DAT_001d0400 + 0x1c);\n    __ptr = (void *)0x0;\n    if (iVar7 == 0) goto LAB_0005d05d;\nLAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);\n    puVar4 = (undefined4 *)((int)local_38 + 0x1a);\n    do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);\n    if (__ptr == (void *)0x0) goto LAB_0005d05d;\n  }" ({ "{") (expression_statement "local_38 = (void *)xmalloc(uVar12 + 0x21);" (assignment_expression "local_38 = (void *)xmalloc(uVar12 + 0x21)" (identifier "local_38") (= "=") (cast_expression "(void *)xmalloc(uVar12 + 0x21)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(uVar12 + 0x21)" (identifier "xmalloc") (argument_list "(uVar12 + 0x21)" (( "(") (binary_expression "uVar12 + 0x21" (identifier "uVar12") (+ "+") (number_literal "0x21")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(DAT_001d0400 + 0x1c);" (assignment_expression "iVar7 = *(int *)(DAT_001d0400 + 0x1c)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(DAT_001d0400 + 0x1c)" (* "*") (cast_expression "(int *)(DAT_001d0400 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d0400 + 0x1c)" (( "(") (binary_expression "DAT_001d0400 + 0x1c" (identifier "DAT_001d0400") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "__ptr = (void *)0x0;" (assignment_expression "__ptr = (void *)0x0" (identifier "__ptr") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar7 == 0) goto LAB_0005d05d;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0005d05d;" (goto "goto") (statement_identifier "LAB_0005d05d") (; ";"))) (labeled_statement "LAB_0005cf05:\n    local_40 = (char *)((int)local_38 + 0x20);" (statement_identifier "LAB_0005cf05") (: ":") (expression_statement "local_40 = (char *)((int)local_38 + 0x20);" (assignment_expression "local_40 = (char *)((int)local_38 + 0x20)" (identifier "local_40") (= "=") (cast_expression "(char *)((int)local_38 + 0x20)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_38 + 0x20)" (( "(") (binary_expression "(int)local_38 + 0x20" (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38")) (+ "+") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "puVar4 = (undefined4 *)((int)local_38 + 0x1a);" (assignment_expression "puVar4 = (undefined4 *)((int)local_38 + 0x1a)" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)((int)local_38 + 0x1a)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_38 + 0x1a)" (( "(") (binary_expression "(int)local_38 + 0x1a" (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38")) (+ "+") (number_literal "0x1a")) () ")")))) (; ";")) (do_statement "do {\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    } while (iVar7 != 0);" (do "do") (compound_statement "{\n      if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }\n      iVar7 = *(int *)(iVar7 + 0x10);\n    }" ({ "{") (if_statement "if (*(char *)(iVar7 + 0xc) == '\x01') {\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar7 + 0xc) == '\x01')" (( "(") (binary_expression "*(char *)(iVar7 + 0xc) == '\x01'" (pointer_expression "*(char *)(iVar7 + 0xc)" (* "*") (cast_expression "(char *)(iVar7 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n        pcVar10 = *(char **)(iVar7 + 4);\n        if (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }\n        strcpy(local_40,pcVar10);\n        *puVar4 = 0x6d695f5f;\n        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;\n        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);\n        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "pcVar10 = *(char **)(iVar7 + 4);" (assignment_expression "pcVar10 = *(char **)(iVar7 + 4)" (identifier "pcVar10") (= "=") (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 (DAT_001d0144 != 0) {\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }" (if "if") (parenthesized_expression "(DAT_001d0144 != 0)" (( "(") (binary_expression "DAT_001d0144 != 0" (identifier "DAT_001d0144") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          printf("%s:%s\n","pep_find_data_imports",pcVar10);\n          pcVar10 = *(char **)(iVar7 + 4);\n        }" ({ "{") (expression_statement "printf("%s:%s\n","pep_find_data_imports",pcVar10);" (call_expression "printf("%s:%s\n","pep_find_data_imports",pcVar10)" (identifier "printf") (argument_list "("%s:%s\n","pep_find_data_imports",pcVar10)" (( "(") (string_literal ""%s:%s\n"" (" """) (string_content "%s:%s") (escape_sequence "\n") (" """)) (, ",") (string_literal ""pep_find_data_imports"" (" """) (string_content "pep_find_data_imports") (" """)) (, ",") (identifier "pcVar10") () ")"))) (; ";")) (expression_statement "pcVar10 = *(char **)(iVar7 + 4);" (assignment_expression "pcVar10 = *(char **)(iVar7 + 4)" (identifier "pcVar10") (= "=") (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 "strcpy(local_40,pcVar10);" (call_expression "strcpy(local_40,pcVar10)" (identifier "strcpy") (argument_list "(local_40,pcVar10)" (( "(") (identifier "local_40") (, ",") (identifier "pcVar10") () ")"))) (; ";")) (expression_statement "*puVar4 = 0x6d695f5f;" (assignment_expression "*puVar4 = 0x6d695f5f" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0x6d695f5f")) (; ";")) (expression_statement "*(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;" (assignment_expression "*(undefined2 *)((int)local_38 + 0x1e) = 0x5f70" (pointer_expression "*(undefined2 *)((int)local_38 + 0x1e)" (* "*") (cast_expression "(undefined2 *)((int)local_38 + 0x1e)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_38 + 0x1e)" (( "(") (binary_expression "(int)local_38 + 0x1e" (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38")) (+ "+") (number_literal "0x1e")) () ")")))) (= "=") (number_literal "0x5f70")) (; ";")) (expression_statement "iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);" (assignment_expression "iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1)" (identifier "iVar5") (= "=") (call_expression "bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1)" (identifier "bfd_link_hash_lookup") (argument_list "(DAT_001d0400,puVar4,0,0,1)" (( "(") (identifier "DAT_001d0400") (, ",") (identifier "puVar4") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03'))" (( "(") (binary_expression "(iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')" (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar5 + 0xc) == '\x03')" (( "(") (binary_expression "*(char *)(iVar5 + 0xc) == '\x03'" (pointer_expression "*(char *)(iVar5 + 0xc)" (* "*") (cast_expression "(char *)(iVar5 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }\n        }" ({ "{") (if_statement "if (__ptr == (void *)0x0) {\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }\n          else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(__ptr == (void *)0x0)" (( "(") (binary_expression "__ptr == (void *)0x0" (identifier "__ptr") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);\n            iVar8 = bfd_generic_link_read_symbols(iVar2);\n            if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }\n            piVar11 = *(int **)(iVar2 + 0x78);\n            iVar2 = *(int *)(iVar2 + 0x7c);\n            if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }\n          }" ({ "{") (expression_statement "iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);" (assignment_expression "iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(*(int *)(iVar5 + 0x14) + 0xac)" (* "*") (cast_expression "(int *)(*(int *)(iVar5 + 0x14) + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 0x14) + 0xac)" (( "(") (binary_expression "*(int *)(iVar5 + 0x14) + 0xac" (pointer_expression "*(int *)(iVar5 + 0x14)" (* "*") (cast_expression "(int *)(iVar5 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0xac")) () ")"))))) (; ";")) (expression_statement "iVar8 = bfd_generic_link_read_symbols(iVar2);" (assignment_expression "iVar8 = bfd_generic_link_read_symbols(iVar2)" (identifier "iVar8") (= "=") (call_expression "bfd_generic_link_read_symbols(iVar2)" (identifier "bfd_generic_link_read_symbols") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);\n              FUN_00034d20(uVar6,iVar2);\n              return;\n            }" ({ "{") (expression_statement "uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5)" (identifier "uVar6") (= "=") (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(uVar6,iVar2);" (call_expression "FUN_00034d20(uVar6,iVar2)" (identifier "FUN_00034d20") (argument_list "(uVar6,iVar2)" (( "(") (identifier "uVar6") (, ",") (identifier "iVar2") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "piVar11 = *(int **)(iVar2 + 0x78);" (assignment_expression "piVar11 = *(int **)(iVar2 + 0x78)" (identifier "piVar11") (= "=") (pointer_expression "*(int **)(iVar2 + 0x78)" (* "*") (cast_expression "(int **)(iVar2 + 0x78)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x78)" (( "(") (binary_expression "iVar2 + 0x78" (identifier "iVar2") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (expression_statement "iVar2 = *(int *)(iVar2 + 0x7c);" (assignment_expression "iVar2 = *(int *)(iVar2 + 0x7c)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(iVar2 + 0x7c)" (* "*") (cast_expression "(int *)(iVar2 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x7c)" (( "(") (binary_expression "iVar2 + 0x7c" (identifier "iVar2") (+ "+") (number_literal "0x7c")) () ")"))))) (; ";")) (if_statement "if (0 < iVar2) {\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }" (if "if") (parenthesized_expression "(0 < iVar2)" (( "(") (binary_expression "0 < iVar2" (number_literal "0") (< "<") (identifier "iVar2")) () ")")) (compound_statement "{\n              iVar8 = 0;\n              do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);\n            }" ({ "{") (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              } while (iVar2 != iVar8);" (do "do") (compound_statement "{\n                pcVar10 = *(char **)(*piVar11 + 4);\n                iVar9 = strncmp(pcVar10,param_1,sVar3);\n                if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }\n                iVar8 = iVar8 + 1;\n                piVar11 = piVar11 + 1;\n              }" ({ "{") (expression_statement "pcVar10 = *(char **)(*piVar11 + 4);" (assignment_expression "pcVar10 = *(char **)(*piVar11 + 4)" (identifier "pcVar10") (= "=") (pointer_expression "*(char **)(*piVar11 + 4)" (* "*") (cast_expression "(char **)(*piVar11 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar11 + 4)" (( "(") (binary_expression "*piVar11 + 4" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar9 = strncmp(pcVar10,param_1,sVar3);" (assignment_expression "iVar9 = strncmp(pcVar10,param_1,sVar3)" (identifier "iVar9") (= "=") (call_expression "strncmp(pcVar10,param_1,sVar3)" (identifier "strncmp") (argument_list "(pcVar10,param_1,sVar3)" (( "(") (identifier "pcVar10") (, ",") (identifier "param_1") (, ",") (identifier "sVar3") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }\n                  if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }\n                  break;\n                }" ({ "{") (if_statement "if (DAT_001d0144 != 0) {\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }" (if "if") (parenthesized_expression "(DAT_001d0144 != 0)" (( "(") (binary_expression "DAT_001d0144 != 0" (identifier "DAT_001d0144") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    printf("->%s\n",pcVar10);\n                    pcVar10 = *(char **)(*piVar11 + 4);\n                  }" ({ "{") (expression_statement "printf("->%s\n",pcVar10);" (call_expression "printf("->%s\n",pcVar10)" (identifier "printf") (argument_list "("->%s\n",pcVar10)" (( "(") (string_literal ""->%s\n"" (" """) (string_content "->%s") (escape_sequence "\n") (" """)) (, ",") (identifier "pcVar10") () ")"))) (; ";")) (expression_statement "pcVar10 = *(char **)(*piVar11 + 4);" (assignment_expression "pcVar10 = *(char **)(*piVar11 + 4)" (identifier "pcVar10") (= "=") (pointer_expression "*(char **)(*piVar11 + 4)" (* "*") (cast_expression "(char **)(*piVar11 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar11 + 4)" (( "(") (binary_expression "*piVar11 + 4" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (pcVar10 + sVar3 != (char *)0x0) {\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }" (if "if") (parenthesized_expression "(pcVar10 + sVar3 != (char *)0x0)" (( "(") (binary_expression "pcVar10 + sVar3 != (char *)0x0" (binary_expression "pcVar10 + sVar3" (identifier "pcVar10") (+ "+") (identifier "sVar3")) (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    FUN_0005b620(0,param_2);\n                    goto LAB_0005cfa1;\n                  }" ({ "{") (expression_statement "FUN_0005b620(0,param_2);" (call_expression "FUN_0005b620(0,param_2)" (identifier "FUN_0005b620") (argument_list "(0,param_2)" (( "(") (number_literal "0") (, ",") (identifier "param_2") () ")"))) (; ";")) (goto_statement "goto LAB_0005cfa1;" (goto "goto") (statement_identifier "LAB_0005cfa1") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" (identifier "piVar11") (= "=") (binary_expression "piVar11 + 1" (identifier "piVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar2 != iVar8)" (( "(") (binary_expression "iVar2 != iVar8" (identifier "iVar2") (!= "!=") (identifier "iVar8")) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }" (else "else") (compound_statement "{\n            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);\nLAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);\n            uVar1 = *(undefined4 *)(iVar5 + 0x1c);\n            *(undefined1 *)(iVar7 + 0xc) = 4;\n            *(undefined4 *)(iVar7 + 0x18) = uVar6;\n            uVar6 = *(undefined4 *)(iVar5 + 0x14);\n            *(undefined4 *)(iVar7 + 0x1c) = uVar1;\n            *(undefined4 *)(iVar7 + 0x14) = uVar6;\n            if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }\n          }" ({ "{") (expression_statement "bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);" (call_expression "bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0)" (identifier "bfd_hash_lookup") (argument_list "(__ptr,*(undefined4 *)(iVar7 + 4),1,0)" (( "(") (identifier "__ptr") (, ",") (pointer_expression "*(undefined4 *)(iVar7 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))) (; ";")) (labeled_statement "LAB_0005cfa1:\n            uVar6 = *(undefined4 *)(iVar5 + 0x18);" (statement_identifier "LAB_0005cfa1") (: ":") (expression_statement "uVar6 = *(undefined4 *)(iVar5 + 0x18);" (assignment_expression "uVar6 = *(undefined4 *)(iVar5 + 0x18)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(iVar5 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x18)" (( "(") (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) () ")"))))) (; ";"))) (expression_statement "uVar1 = *(undefined4 *)(iVar5 + 0x1c);" (assignment_expression "uVar1 = *(undefined4 *)(iVar5 + 0x1c)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined4 *)(iVar5 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1c)" (( "(") (binary_expression "iVar5 + 0x1c" (identifier "iVar5") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(iVar7 + 0xc) = 4;" (assignment_expression "*(undefined1 *)(iVar7 + 0xc) = 4" (pointer_expression "*(undefined1 *)(iVar7 + 0xc)" (* "*") (cast_expression "(undefined1 *)(iVar7 + 0xc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0x18) = uVar6;" (assignment_expression "*(undefined4 *)(iVar7 + 0x18) = uVar6" (pointer_expression "*(undefined4 *)(iVar7 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x18)" (( "(") (binary_expression "iVar7 + 0x18" (identifier "iVar7") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "uVar6 = *(undefined4 *)(iVar5 + 0x14);" (assignment_expression "uVar6 = *(undefined4 *)(iVar5 + 0x14)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(iVar5 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0x1c) = uVar1;" (assignment_expression "*(undefined4 *)(iVar7 + 0x1c) = uVar1" (pointer_expression "*(undefined4 *)(iVar7 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x1c)" (( "(") (binary_expression "iVar7 + 0x1c" (identifier "iVar7") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0x14) = uVar6;" (assignment_expression "*(undefined4 *)(iVar7 + 0x14) = uVar6" (pointer_expression "*(undefined4 *)(iVar7 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (DAT_001d0448 == -1) {\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }" (if "if") (parenthesized_expression "(DAT_001d0448 == -1)" (( "(") (binary_expression "DAT_001d0448 == -1" (identifier "DAT_001d0448") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);\n              FUN_00034cf0(uVar6,local_40,puVar4);\n              if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }\n            }" ({ "{") (expression_statement "uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);" (assignment_expression "uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5)" (identifier "dcgettext") (argument_list "(0,"Info: resolving %s by linking to %s (auto-import)\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Info: resolving %s by linking to %s (auto-import)\n"" (" """) (string_content "Info: resolving %s by linking to %s (auto-import)") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034cf0(uVar6,local_40,puVar4);" (call_expression "FUN_00034cf0(uVar6,local_40,puVar4)" (identifier "FUN_00034cf0") (argument_list "(uVar6,local_40,puVar4)" (( "(") (identifier "uVar6") (, ",") (identifier "local_40") (, ",") (identifier "puVar4") () ")"))) (; ";")) (if_statement "if (DAT_001d0168 == 0) {\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }" (if "if") (parenthesized_expression "(DAT_001d0168 == 0)" (( "(") (binary_expression "DAT_001d0168 == 0" (identifier "DAT_001d0168") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);\n                FUN_00034d20(uVar6);\n                DAT_001d0168 = 1;\n              }" ({ "{") (expression_statement "uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5);" (assignment_expression "uVar6 = dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5)" (identifier "dcgettext") (argument_list "(0,\n                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"\n                                  ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"" (" """) (string_content "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar6);" (call_expression "FUN_00034d20(uVar6)" (identifier "FUN_00034d20") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "DAT_001d0168 = 1;" (assignment_expression "DAT_001d0168 = 1" (identifier "DAT_001d0168") (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}"))) (} "}")))) (} "}"))) (} "}"))) (expression_statement "iVar7 = *(int *)(iVar7 + 0x10);" (assignment_expression "iVar7 = *(int *)(iVar7 + 0x10)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar7 + 0x10)" (* "*") (cast_expression "(int *)(iVar7 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (__ptr == (void *)0x0) goto LAB_0005d05d;" (if "if") (parenthesized_expression "(__ptr == (void *)0x0)" (( "(") (binary_expression "__ptr == (void *)0x0" (identifier "__ptr") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0005d05d;" (goto "goto") (statement_identifier "LAB_0005d05d") (; ";"))) (} "}")))) (expression_statement "FUN_0005b620(__ptr,param_2);" (call_expression "FUN_0005b620(__ptr,param_2)" (identifier "FUN_0005b620") (argument_list "(__ptr,param_2)" (( "(") (identifier "__ptr") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "bfd_hash_table_free(__ptr);" (call_expression "bfd_hash_table_free(__ptr)" (identifier "bfd_hash_table_free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (labeled_statement "LAB_0005d05d:\n  free(local_38);" (statement_identifier "LAB_0005d05d") (: ":") (expression_statement "free(local_38);" (call_expression "free(local_38)" (identifier "free") (argument_list "(local_38)" (( "(") (identifier "local_38") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1(char *symhead,type_1 *cb)

{
  type_2 uVar1;
  type_3 *pbVar2;
  int var_17;
  size_t var_4;
  type_2 *puVar5;
  int var_7;
  char *var_20;
  type_4 *var_14;
  int var_16;
  int var_19;
  type_5 *var_1;
  int *var_22;
  type_6 var_3;
  char *local_40;
  void *local_38;
  
  var_1 = (link_info.hash)->undefs;
  if (var_1 == (type_5 *)0x0) {
    return;
  }
  var_3 = 0;
  do {
    if ((var_1->field_0xc == '\x01') && (var_4 = var_2((var_1->root).string), var_3 < var_4))
    {
      var_3 = var_4;
    }
    var_1 = (var_1->u).undef.next;
  } while (var_1 != (type_5 *)0x0);
  if (var_3 == 0) {
    return;
  }
  var_4 = var_2(symhead);
  if (link_info.pei386_runtime_pseudo_reloc == 2) {
    var_14 = (type_4 *)var_5(0x1c);
    var_7 = var_6(var_14,PTR_bfd_hash_newfunc_001cdf98,0xc);
    if (var_7 == 0) {
      var_20 = (char *)var_8(0,"%F%P: bfd_hash_table_init failed: %E\n",5);
      var_9(var_20);
    }
    local_38 = (void *)var_5(var_3 + 0x21);
    local_40 = (char *)((int)local_38 + 0x20);
    var_1 = (link_info.hash)->undefs;
    if (var_1 != (type_5 *)0x0) goto LAB_0005cf05;
  }
  else {
    local_38 = (void *)var_5(var_3 + 0x21);
    local_40 = (char *)((int)local_38 + 0x20);
    var_1 = (link_info.hash)->undefs;
    var_14 = (type_4 *)0x0;
    if (var_1 == (type_5 *)0x0) goto LAB_0005d05d;
LAB_0005cf05:
    puVar5 = (type_2 *)((int)local_38 + 0x1a);
    do {
      if (var_1->field_0xc == '\x01') {
        var_20 = (var_1->root).string;
        if (var_10 != 0) {
          var_11("%s:%s\n","pep_find_data_imports",var_20);
          var_20 = (var_1->root).string;
        }
        var_12(local_40,var_20);
        *puVar5 = 0x6d695f5f;
        *(type_7 *)((int)local_38 + 0x1e) = 0x5f70;
        var_7 = var_13(link_info.hash,puVar5,0,0,1);
        if ((var_7 != 0) && (*(char *)(var_7 + 0xc) == '\x03')) {
          if (var_14 == (type_4 *)0x0) {
            var_17 = *(int *)(*(int *)(var_7 + 0x14) + 0xac);
            var_16 = var_15(var_17);
            if (var_16 == 0) {
              var_20 = (char *)var_8(0,"%F%P: %pB: could not read symbols: %E\n",5);
              var_9(var_20,var_17);
              return;
            }
            var_22 = *(int **)(var_17 + 0x78);
            var_17 = *(int *)(var_17 + 0x7c);
            if (0 < var_17) {
              var_16 = 0;
              do {
                var_20 = *(char **)(*var_22 + 4);
                var_19 = var_18(var_20,symhead,var_4);
                if (var_19 == 0) {
                  if (var_10 != 0) {
                    var_11("->%s\n",var_20);
                    var_20 = *(char **)(*var_22 + 4);
                  }
                  if (var_20 + var_4 != (char *)0x0) {
                    var_21((type_8 *)link_info.input_bfds,local_40,var_20 + var_4,
                                   (type_4 *)0x0,cb);
                    goto LAB_0005cfa1;
                  }
                  break;
                }
                var_16 = var_16 + 1;
                var_22 = var_22 + 1;
              } while (var_17 != var_16);
            }
          }
          else {
            var_23(var_14,(var_1->root).string,1,0);
LAB_0005cfa1:
            var_20 = *(char **)(var_7 + 0x18);
            uVar1 = *(type_2 *)(var_7 + 0x1c);
            var_1->field_0xc = 4;
            (var_1->u).i.warning = var_20;
            pbVar2 = *(type_3 **)(var_7 + 0x14);
            *(type_2 *)((int)&var_1->u + 0xc) = uVar1;
            (var_1->u).undef.abfd = pbVar2;
            if (link_info.pei386_auto_import == -1) {
              var_20 = (char *)var_8(0,"Info: resolving %s by linking to %s (auto-import)\n",5);
              var_24(var_20,local_40,puVar5);
              if (function_1::lexical_block_10::lexical_block_10_3::warned == 0) {
                var_20 = (char *)var_8(0,
                                           "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"
                                           ,5);
                var_9(var_20);
                pep_find_data_imports::lexical_block_10::lexical_block_10_3::warned = 1;
              }
            }
          }
        }
      }
      var_1 = (var_1->u).undef.next;
    } while (var_1 != (type_5 *)0x0);
    if (var_14 == (type_4 *)0x0) goto LAB_0005d05d;
  }
  var_21((type_8 *)link_info.input_bfds,local_40,(char *)0x0,var_14,cb);
  var_25(var_14);
  var_26(var_14);
LAB_0005d05d:
  var_26(local_38);
  return;
}


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

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

void MASKED(char *param_1,undefined4 param_2)

{
  undefined4 uVar1;
  int iVar2;
  size_t sVar3;
  undefined4 *puVar4;
  int iVar5;
  undefined4 uVar6;
  void *__ptr;
  int iVar7;
  int iVar8;
  int iVar9;
  char *pcVar10;
  int *piVar11;
  uint uVar12;
  char *local_40;
  void *local_38;
  
  iVar7 = *(int *)(DAT_001d0400 + 0x1c);
  if (iVar7 == 0) {
    return;
  }
  uVar12 = 0;
  do {
    if ((*(char *)(iVar7 + 0xc) == '\x01') &&
       (sVar3 = strlen(*(char **)(iVar7 + 4)), uVar12 < sVar3)) {
      uVar12 = sVar3;
    }
    iVar7 = *(int *)(iVar7 + 0x10);
  } while (iVar7 != 0);
  if (uVar12 == 0) {
    return;
  }
  sVar3 = strlen(param_1);
  if (DAT_001d044c == 2) {
    __ptr = (void *)xmalloc(0x1c);
    iVar7 = bfd_hash_table_init(__ptr,PTR_bfd_hash_newfunc_001cdf98,0xc);
    if (iVar7 == 0) {
      uVar6 = dcgettext(0,"%F%P: bfd_hash_table_init failed: %E\n",5);
      FUN_00034d20(uVar6);
    }
    local_38 = (void *)xmalloc(uVar12 + 0x21);
    iVar7 = *(int *)(DAT_001d0400 + 0x1c);
    if (iVar7 != 0) goto LAB_0005cf05;
  }
  else {
    local_38 = (void *)xmalloc(uVar12 + 0x21);
    iVar7 = *(int *)(DAT_001d0400 + 0x1c);
    __ptr = (void *)0x0;
    if (iVar7 == 0) goto LAB_0005d05d;
LAB_0005cf05:
    local_40 = (char *)((int)local_38 + 0x20);
    puVar4 = (undefined4 *)((int)local_38 + 0x1a);
    do {
      if (*(char *)(iVar7 + 0xc) == '\x01') {
        pcVar10 = *(char **)(iVar7 + 4);
        if (DAT_001d0144 != 0) {
          printf("%s:%s\n","pep_find_data_imports",pcVar10);
          pcVar10 = *(char **)(iVar7 + 4);
        }
        strcpy(local_40,pcVar10);
        *puVar4 = 0x6d695f5f;
        *(undefined2 *)((int)local_38 + 0x1e) = 0x5f70;
        iVar5 = bfd_link_hash_lookup(DAT_001d0400,puVar4,0,0,1);
        if ((iVar5 != 0) && (*(char *)(iVar5 + 0xc) == '\x03')) {
          if (__ptr == (void *)0x0) {
            iVar2 = *(int *)(*(int *)(iVar5 + 0x14) + 0xac);
            iVar8 = bfd_generic_link_read_symbols(iVar2);
            if (iVar8 == 0) {
              uVar6 = dcgettext(0,"%F%P: %pB: could not read symbols: %E\n",5);
              FUN_00034d20(uVar6,iVar2);
              return;
            }
            piVar11 = *(int **)(iVar2 + 0x78);
            iVar2 = *(int *)(iVar2 + 0x7c);
            if (0 < iVar2) {
              iVar8 = 0;
              do {
                pcVar10 = *(char **)(*piVar11 + 4);
                iVar9 = strncmp(pcVar10,param_1,sVar3);
                if (iVar9 == 0) {
                  if (DAT_001d0144 != 0) {
                    printf("->%s\n",pcVar10);
                    pcVar10 = *(char **)(*piVar11 + 4);
                  }
                  if (pcVar10 + sVar3 != (char *)0x0) {
                    FUN_0005b620(0,param_2);
                    goto LAB_0005cfa1;
                  }
                  break;
                }
                iVar8 = iVar8 + 1;
                piVar11 = piVar11 + 1;
              } while (iVar2 != iVar8);
            }
          }
          else {
            bfd_hash_lookup(__ptr,*(undefined4 *)(iVar7 + 4),1,0);
LAB_0005cfa1:
            uVar6 = *(undefined4 *)(iVar5 + 0x18);
            uVar1 = *(undefined4 *)(iVar5 + 0x1c);
            *(undefined1 *)(iVar7 + 0xc) = 4;
            *(undefined4 *)(iVar7 + 0x18) = uVar6;
            uVar6 = *(undefined4 *)(iVar5 + 0x14);
            *(undefined4 *)(iVar7 + 0x1c) = uVar1;
            *(undefined4 *)(iVar7 + 0x14) = uVar6;
            if (DAT_001d0448 == -1) {
              uVar6 = dcgettext(0,"Info: resolving %s by linking to %s (auto-import)\n",5);
              FUN_00034cf0(uVar6,local_40,puVar4);
              if (DAT_001d0168 == 0) {
                uVar6 = dcgettext(0,
                                  "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"
                                  ,5);
                FUN_00034d20(uVar6);
                DAT_001d0168 = 1;
              }
            }
          }
        }
      }
      iVar7 = *(int *)(iVar7 + 0x10);
    } while (iVar7 != 0);
    if (__ptr == (void *)0x0) goto LAB_0005d05d;
  }
  FUN_0005b620(__ptr,param_2);
  bfd_hash_table_free(__ptr);
  free(__ptr);
LAB_0005d05d:
  free(local_38);
  return;
}

