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

ld_plugin_status __regparm3
get_symbols(void *handle,int nsyms,ld_plugin_symbol *syms,int def_ironly_exp)

{
  bfd *pbVar1;
  bfd *pbVar2;
  char *pcVar3;
  bool bVar4;
  plugin_input_file_t *input;
  int iVar5;
  uint uVar6;
  char *pcVar7;
  int iVar8;
  char cVar9;
  int iVar10;
  int local_3c;
  
                    /* WARNING: Load size is inaccurate */
  pbVar1 = *handle;
  if (called_plugin == (plugin_t *)0x0) {
    info_assert("../../ld/plugin.c",0x29f);
  }
  if (0 < nsyms) {
    local_3c = 0;
    do {
      while (syms->def == 2) {
        iVar5 = bfd_wrapped_link_hash_lookup(link_info.output_bfd,&link_info,syms->name,0,0,1);
        if (iVar5 == 0) goto LAB_00034575;
LAB_0003449b:
        cVar9 = *(char *)(iVar5 + 0xc);
        iVar10 = 1;
        if (1 < (byte)(cVar9 - 1U)) {
          if (2 < (byte)(cVar9 - 3U)) {
            pcVar3 = called_plugin->name;
            pcVar7 = (char *)dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);
            einfo(pcVar7,pcVar3,cVar9);
            cVar9 = *(char *)(iVar5 + 0xc);
          }
          iVar10 = *(int *)(iVar5 + 0x14);
          if (cVar9 == '\x05') {
            iVar10 = *(int *)(iVar10 + 4);
          }
          pbVar2 = *(bfd **)(iVar10 + 0x94);
          if (syms->def - 2U < 3) {
            iVar10 = 7;
            if (pbVar2 != link_info.output_bfd) {
              if (pbVar1 == pbVar2) {
LAB_00034680:
                iVar10 = 2;
                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&
                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {
                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||
                      ((link_info._0_1_ & 3) == 3)) &&
                     (iVar8 = bfd_hide_sym_by_version
                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),
                     iVar8 == 0)) {
                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {
                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||
                              (*(byte *)(iVar5 + 0x31) & 3) == 3;
                    }
                    else {
                      bVar4 = (uint)syms->visibility < 2;
                    }
                    if (bVar4) goto LAB_00034520;
                  }
LAB_000346b8:
                  iVar10 = 3;
                }
              }
              else if (pbVar2 != (bfd *)0x0) {
                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;
                iVar10 = 6;
                if ((uVar6 & 0x10000) == 0) {
                  iVar10 = ((uVar6 & 0x40) != 0) + 7;
                }
              }
            }
          }
          else {
            iVar10 = 4;
            if (pbVar2 != link_info.output_bfd) {
              if (pbVar1 == pbVar2) goto LAB_00034680;
              if (pbVar2 != (bfd *)0x0) {
                iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;
              }
            }
          }
        }
LAB_00034520:
        syms->resolution = iVar10;
        if (report_plugin_symbols != 0) goto LAB_000345b0;
LAB_00034531:
        local_3c = local_3c + 1;
        syms = syms + 1;
        if (nsyms == local_3c) {
          return LDPS_OK;
        }
      }
      iVar5 = bfd_link_hash_lookup(link_info.hash,syms->name,0,0,1);
      if (iVar5 != 0) goto LAB_0003449b;
LAB_00034575:
      if (4 < (uint)syms->def) {
LAB_00034739:
                    /* WARNING: Subroutine does not return */
        ld_abort("../../ld/plugin.c",0x2b5,"get_symbols");
      }
      uVar6 = 1 << ((byte)syms->def & 0x1f);
      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;
      if ((uVar6 & 0xc) == 0) goto LAB_00034739;
      iVar10 = 1;
      syms->resolution = 1;
      if (report_plugin_symbols == 0) goto LAB_00034531;
LAB_000345b0:
      iVar5 = syms->visibility;
      iVar8 = syms->def;
      pcVar3 = syms->name;
      syms = syms + 1;
      pcVar7 = (char *)dcgettext(0,
                                 "%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n"
                                 ,5);
      einfo(pcVar7,pbVar1,pcVar3,iVar8,iVar5,iVar10);
      local_3c = local_3c + 1;
    } while (nsyms != local_3c);
  }
  return LDPS_OK;
}



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

undefined4 __regparm3 FUN_00034410(int *param_1,int param_2,undefined4 *param_3,int param_4)

{
  int iVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  bool bVar4;
  int iVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  int iVar9;
  char cVar10;
  int iVar11;
  int local_3c;
  
  iVar1 = *param_1;
  if (DAT_000bbb68 == 0) {
    FUN_00031780("../../ld/plugin.c",0x29f);
  }
  if (0 < param_2) {
    local_3c = 0;
    do {
      while (param_3[2] == 2) {
        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);
        if (iVar5 == 0) goto LAB_00034575;
LAB_0003449b:
        cVar10 = *(char *)(iVar5 + 0xc);
        iVar11 = 1;
        if (1 < (byte)(cVar10 - 1U)) {
          if (2 < (byte)(cVar10 - 3U)) {
            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);
            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);
            FUN_00031730(uVar8,uVar2,cVar10);
            cVar10 = *(char *)(iVar5 + 0xc);
          }
          iVar11 = *(int *)(iVar5 + 0x14);
          if (cVar10 == '\x05') {
            iVar11 = *(int *)(iVar11 + 4);
          }
          iVar9 = *(int *)(iVar11 + 0x94);
          if (param_3[2] - 2 < 3) {
            iVar11 = 7;
            if (iVar9 != DAT_000bbe30) {
              if (iVar1 == iVar9) {
LAB_00034680:
                iVar11 = 2;
                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&
                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {
                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||
                      (((byte)DAT_000bbe00 & 3) == 3)) &&
                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),
                     iVar9 == 0)) {
                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {
                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||
                              (*(byte *)(iVar5 + 0x31) & 3) == 3;
                    }
                    else {
                      bVar4 = (uint)param_3[3] < 2;
                    }
                    if (bVar4) goto LAB_00034520;
                  }
LAB_000346b8:
                  iVar11 = 3;
                }
              }
              else if (iVar9 != 0) {
                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;
                iVar11 = 6;
                if ((uVar6 & 0x10000) == 0) {
                  iVar11 = ((uVar6 & 0x40) != 0) + 7;
                }
              }
            }
          }
          else {
            iVar11 = 4;
            if (iVar9 != DAT_000bbe30) {
              if (iVar1 == iVar9) goto LAB_00034680;
              if (iVar9 != 0) {
                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;
              }
            }
          }
        }
LAB_00034520:
        param_3[7] = iVar11;
        if (DAT_000bbfe8 != 0) goto LAB_000345b0;
LAB_00034531:
        local_3c = local_3c + 1;
        param_3 = param_3 + 8;
        if (param_2 == local_3c) {
          return 0;
        }
      }
      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);
      if (iVar5 != 0) goto LAB_0003449b;
LAB_00034575:
      if (4 < (uint)param_3[2]) {
LAB_00034739:
                    /* WARNING: Subroutine does not return */
        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");
      }
      uVar6 = 1 << ((byte)param_3[2] & 0x1f);
      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;
      if ((uVar6 & 0xc) == 0) goto LAB_00034739;
      iVar11 = 1;
      param_3[7] = 1;
      if (DAT_000bbfe8 == 0) goto LAB_00034531;
LAB_000345b0:
      uVar2 = param_3[3];
      uVar8 = param_3[2];
      uVar3 = *param_3;
      param_3 = param_3 + 8;
      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5
                       );
      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);
      local_3c = local_3c + 1;
    } while (param_2 != local_3c);
  }
  return 0;
}


PUSH EBP
PUSH EDI
PUSH ESI
MOV ESI,ECX
PUSH EBX
CALL 0x00015a10
ADD EBX,0x86be5
SUB ESP,0x2c
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x8],EDX
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [EBX + 0xb68]
TEST EAX,EAX
JZ 0x00034706
MOV EAX,dword ptr [ESP + 0x8]
TEST EAX,EAX
JLE 0x00034602
LEA EAX,[EBX + 0xe00]
MOV dword ptr [ESP],0x0
MOV dword ptr [ESP + 0x4],EAX
LEA EAX,[EBX + 0xfff96f74]
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[EBX + 0xfe8]
MOV dword ptr [ESP + 0xc],EAX
JMP 0x00034545
SUB ESP,0xc
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH EAX
MOV EAX,dword ptr [ESP + 0x20]
PUSH dword ptr [EAX + 0x1c]
CALL 0x00014520
ADD ESP,0x20
MOV EBP,EAX
TEST EBP,EBP
JZ 0x00034575
MOVZX EDX,byte ptr [EBP + 0xc]
MOV EDI,0x1
LEA EAX,[EDX + -0x1]
CMP AL,0x1
JBE 0x00034520
LEA EAX,[EDX + -0x3]
CMP AL,0x2
JA 0x00034640
MOV EAX,dword ptr [EBP + 0x14]
CMP DL,0x5
JNZ 0x000344c1
MOV EAX,dword ptr [EAX + 0x4]
MOV EDI,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [EAX + 0x94]
MOV EDX,dword ptr [EDI + 0x30]
MOV EDI,dword ptr [ESI + 0x8]
LEA ECX,[EDI + -0x2]
CMP ECX,0x2
JA 0x00034610
MOV EDI,0x7
CMP EAX,EDX
JZ 0x00034520
CMP dword ptr [ESP + 0x10],EAX
JZ 0x00034680
TEST EAX,EAX
JZ 0x00034520
MOV EAX,dword ptr [EAX + 0x28]
MOV EDI,0x6
SHR EAX,0x5
AND EAX,0xfffff
TEST EAX,0x10000
JNZ 0x00034520
TEST AL,0x40
SETNZ AL
MOVZX EAX,AL
MOV EDI,EAX
ADD EDI,0x7
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESI + 0x1c],EDI
MOV EBP,dword ptr [EAX]
TEST EBP,EBP
JNZ 0x000345b0
ADD dword ptr [ESP],0x1
ADD ESI,0x20
MOV EAX,dword ptr [ESP]
CMP dword ptr [ESP + 0x8],EAX
JZ 0x00034602
CMP dword ptr [ESI + 0x8],0x2
MOV EAX,dword ptr [ESI]
JNZ 0x00034478
SUB ESP,0x8
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH EAX
MOV EAX,dword ptr [ESP + 0x1c]
PUSH EAX
PUSH dword ptr [EAX + 0x30]
CALL 0x00014160
ADD ESP,0x20
MOV EBP,EAX
TEST EBP,EBP
JNZ 0x0003449b
MOV ECX,dword ptr [ESI + 0x8]
CMP ECX,0x4
JA 0x00034739
MOV EAX,0x1
SHL EAX,CL
TEST AL,0x13
JNZ 0x000346b8
TEST AL,0xc
JZ 0x00034739
MOV EAX,dword ptr [ESP + 0xc]
MOV EDI,0x1
MOV dword ptr [ESI + 0x1c],EDI
MOV EBP,dword ptr [EAX]
TEST EBP,EBP
JZ 0x00034531
LEA ESI,[ESI]
MOV ECX,dword ptr [ESI + 0xc]
MOV EDX,dword ptr [ESI + 0x8]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff96fac]
MOV EBP,dword ptr [ESI]
ADD ESI,0x20
MOV dword ptr [ESP + 0x1c],ECX
MOV dword ptr [ESP + 0x18],EDX
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
POP EDX
POP ECX
PUSH EDI
MOV ECX,dword ptr [ESP + 0x24]
PUSH ECX
MOV EDX,dword ptr [ESP + 0x24]
PUSH EDX
PUSH EBP
PUSH dword ptr [ESP + 0x28]
PUSH EAX
CALL 0x00031730
ADD ESP,0x20
ADD dword ptr [ESP],0x1
MOV EAX,dword ptr [ESP]
CMP dword ptr [ESP + 0x8],EAX
JNZ 0x00034545
ADD ESP,0x2c
XOR EAX,EAX
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,0x4
CMP EAX,EDX
JZ 0x00034520
CMP dword ptr [ESP + 0x10],EAX
JZ 0x00034680
TEST EAX,EAX
JZ 0x00034520
TEST byte ptr [EAX + 0x2a],0x20
SETNZ AL
MOVZX EAX,AL
MOV EDI,EAX
ADD EDI,0x4
JMP 0x00034520
MOV EAX,dword ptr [EBX + 0xb68]
MOV byte ptr [ESP + 0x14],DL
SUB ESP,0x4
MOV EDI,dword ptr [EAX + 0x4]
PUSH 0x5
PUSH dword ptr [ESP + 0x24]
PUSH 0x0
CALL 0x000142e0
ADD ESP,0xc
MOVZX EDX,byte ptr [ESP + 0x18]
PUSH EDX
PUSH EDI
PUSH EAX
CALL 0x00031730
MOVZX EDX,byte ptr [EBP + 0xc]
ADD ESP,0x10
JMP 0x000344b6
MOVZX EAX,byte ptr [EBP + 0xd]
MOV EDI,0x2
TEST AL,0x1
JNZ 0x00034520
MOV EDI,dword ptr [ESP + 0x4]
MOVZX EDX,byte ptr [EDI]
MOV ECX,EDX
AND ECX,0x3
CMP CL,0x2
JZ 0x000346fd
AND EAX,0x2
AND EDX,0x10
OR AL,DL
JNZ 0x000346c8
CMP CL,0x3
JZ 0x000346c8
LEA ESI,[ESI]
MOV EDI,0x3
JMP 0x00034520
SUB ESP,0x8
PUSH dword ptr [EBP + 0x4]
MOV EDI,dword ptr [ESP + 0x10]
PUSH dword ptr [EDI + 0x84]
CALL 0x00014700
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000346b8
MOV EAX,dword ptr [EDI + 0x30]
MOV EAX,dword ptr [EAX + 0x4]
CMP dword ptr [EAX + 0x4],0x5
JZ 0x00034722
XOR EAX,EAX
CMP dword ptr [ESI + 0xc],0x1
SETBE AL
TEST EAX,EAX
JZ 0x000346b8
MOV EDI,dword ptr [ESP + 0x40]
JMP 0x00034520
SUB ESP,0x8
LEA EAX,[EBX + 0xfff970db]
PUSH 0x29f
PUSH EAX
CALL 0x00031780
ADD ESP,0x10
JMP 0x0003443c
MOVZX EDX,byte ptr [EBP + 0x31]
AND EDX,0x3
SETZ AL
CMP EDX,0x3
SETZ DL
OR EAX,EDX
MOVZX EAX,AL
JMP 0x000346f9
SUB ESP,0x4
LEA EAX,[EBX + 0xfff97220]
PUSH EAX
LEA EAX,[EBX + 0xfff970db]
PUSH 0x2b5
PUSH EAX
CALL 0x00030840
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 __regparm3 FUN_00034410(int *param_1,int param_2,undefined4 *param_3,int param_4)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  bool bVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  char cVar10;\n  int iVar11;\n  int local_3c;\n  \n  iVar1 = *param_1;\n  if (DAT_000bbb68 == 0) {\n    FUN_00031780("../../ld/plugin.c",0x29f);\n  }\n  if (0 < param_2) {\n    local_3c = 0;\n    do {\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    } while (param_2 != local_3c);\n  }\n  return 0;\n}\n\n" comment (function_definition "undefined4 __regparm3 FUN_00034410(int *param_1,int param_2,undefined4 *param_3,int param_4)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  bool bVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  char cVar10;\n  int iVar11;\n  int local_3c;\n  \n  iVar1 = *param_1;\n  if (DAT_000bbb68 == 0) {\n    FUN_00031780("../../ld/plugin.c",0x29f);\n  }\n  if (0 < param_2) {\n    local_3c = 0;\n    do {\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    } while (param_2 != local_3c);\n  }\n  return 0;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00034410(int *param_1,int param_2,undefined4 *param_3,int param_4)" identifier (parameter_list "(int *param_1,int param_2,undefined4 *param_3,int param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  bool bVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  char cVar10;\n  int iVar11;\n  int local_3c;\n  \n  iVar1 = *param_1;\n  if (DAT_000bbb68 == 0) {\n    FUN_00031780("../../ld/plugin.c",0x29f);\n  }\n  if (0 < param_2) {\n    local_3c = 0;\n    do {\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    } while (param_2 != local_3c);\n  }\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (expression_statement "iVar1 = *param_1;" (assignment_expression "iVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (DAT_000bbb68 == 0) {\n    FUN_00031780("../../ld/plugin.c",0x29f);\n  }" if (parenthesized_expression "(DAT_000bbb68 == 0)" ( (binary_expression "DAT_000bbb68 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_00031780("../../ld/plugin.c",0x29f);\n  }" { (expression_statement "FUN_00031780("../../ld/plugin.c",0x29f);" (call_expression "FUN_00031780("../../ld/plugin.c",0x29f)" identifier (argument_list "("../../ld/plugin.c",0x29f)" ( (string_literal ""../../ld/plugin.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (0 < param_2) {\n    local_3c = 0;\n    do {\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    } while (param_2 != local_3c);\n  }" if (parenthesized_expression "(0 < param_2)" ( (binary_expression "0 < param_2" number_literal < identifier) )) (compound_statement "{\n    local_3c = 0;\n    do {\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    } while (param_2 != local_3c);\n  }" { (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (do_statement "do {\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    } while (param_2 != local_3c);" do (compound_statement "{\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    }" { (while_statement "while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }" while (parenthesized_expression "(param_3[2] == 2)" ( (binary_expression "param_3[2] == 2" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }" { (expression_statement "iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);" (assignment_expression "iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1)" identifier = (call_expression "bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1)" identifier (argument_list "(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1)" ( identifier , (pointer_expression "&DAT_000bbe00" & identifier) , (pointer_expression "*param_3" * identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar5 == 0) goto LAB_00034575;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00034575;" goto statement_identifier ;)) (labeled_statement "LAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);" statement_identifier : (expression_statement "cVar10 = *(char *)(iVar5 + 0xc);" (assignment_expression "cVar10 = *(char *)(iVar5 + 0xc)" identifier = (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) ))))) ;)) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (if_statement "if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(1 < (byte)(cVar10 - 1U))" ( (binary_expression "1 < (byte)(cVar10 - 1U)" number_literal < (call_expression "(byte)(cVar10 - 1U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar10 - 1U)" ( (binary_expression "cVar10 - 1U" identifier - number_literal) )))) )) (compound_statement "{\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }" { (if_statement "if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }" if (parenthesized_expression "(2 < (byte)(cVar10 - 3U))" ( (binary_expression "2 < (byte)(cVar10 - 3U)" number_literal < (call_expression "(byte)(cVar10 - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar10 - 3U)" ( (binary_expression "cVar10 - 3U" identifier - number_literal) )))) )) (compound_statement "{\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }" { (expression_statement "uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);" (assignment_expression "uVar2 = *(undefined4 *)(DAT_000bbb68 + 4)" identifier = (pointer_expression "*(undefined4 *)(DAT_000bbb68 + 4)" * (cast_expression "(undefined4 *)(DAT_000bbb68 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000bbb68 + 4)" ( (binary_expression "DAT_000bbb68 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);" (assignment_expression "uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5)" identifier (argument_list "(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5)" ( number_literal , (string_literal ""%F%P: %s: plugin symbol table corrupt (sym type %d)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031730(uVar8,uVar2,cVar10);" (call_expression "FUN_00031730(uVar8,uVar2,cVar10)" identifier (argument_list "(uVar8,uVar2,cVar10)" ( identifier , identifier , identifier ))) ;) (expression_statement "cVar10 = *(char *)(iVar5 + 0xc);" (assignment_expression "cVar10 = *(char *)(iVar5 + 0xc)" identifier = (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) ))))) ;) })) (expression_statement "iVar11 = *(int *)(iVar5 + 0x14);" (assignment_expression "iVar11 = *(int *)(iVar5 + 0x14)" identifier = (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) ))))) ;) (if_statement "if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }" if (parenthesized_expression "(cVar10 == '\x05')" ( (binary_expression "cVar10 == '\x05'" identifier == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n            iVar11 = *(int *)(iVar11 + 4);\n          }" { (expression_statement "iVar11 = *(int *)(iVar11 + 4);" (assignment_expression "iVar11 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) })) (expression_statement "iVar9 = *(int *)(iVar11 + 0x94);" (assignment_expression "iVar9 = *(int *)(iVar11 + 0x94)" identifier = (pointer_expression "*(int *)(iVar11 + 0x94)" * (cast_expression "(int *)(iVar11 + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x94)" ( (binary_expression "iVar11 + 0x94" identifier + number_literal) ))))) ;) (if_statement "if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }" if (parenthesized_expression "(param_3[2] - 2 < 3)" ( (binary_expression "param_3[2] - 2 < 3" (binary_expression "param_3[2] - 2" (subscript_expression "param_3[2]" identifier [ number_literal ]) - number_literal) < number_literal) )) (compound_statement "{\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }" { (expression_statement "iVar11 = 7;" (assignment_expression "iVar11 = 7" identifier = number_literal) ;) (if_statement "if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }" if (parenthesized_expression "(iVar9 != DAT_000bbe30)" ( (binary_expression "iVar9 != DAT_000bbe30" identifier != identifier) )) (compound_statement "{\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }" { (if_statement "if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }" if (parenthesized_expression "(iVar1 == iVar9)" ( (binary_expression "iVar1 == iVar9" identifier == identifier) )) (compound_statement "{\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }" { (labeled_statement "LAB_00034680:\n                iVar11 = 2;" statement_identifier : (expression_statement "iVar11 = 2;" (assignment_expression "iVar11 = 2" identifier = number_literal) ;)) (if_statement "if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }" if (parenthesized_expression "(((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2))" ( (binary_expression "((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)" (parenthesized_expression "((*(byte *)(iVar5 + 0xd) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar5 + 0xd) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0xd) & 1)" ( (binary_expression "*(byte *)(iVar5 + 0xd) & 1" (pointer_expression "*(byte *)(iVar5 + 0xd)" * (cast_expression "(byte *)(iVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xd)" ( (binary_expression "iVar5 + 0xd" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)" ( (comma_expression "iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2" (assignment_expression "iVar11 = param_4" identifier = identifier) , (binary_expression "((byte)DAT_000bbe00 & 3) != 2" (parenthesized_expression "((byte)DAT_000bbe00 & 3)" ( (binary_expression "(byte)DAT_000bbe00 & 3" (cast_expression "(byte)DAT_000bbe00" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }" { (if_statement "if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }" if (parenthesized_expression "((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0))" ( (binary_expression "(((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)" (parenthesized_expression "(((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3))" ( (binary_expression "((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)" (parenthesized_expression "((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0)" ( (binary_expression "(*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0" (binary_expression "(*(byte *)(iVar5 + 0xd) & 2) != 0" (parenthesized_expression "(*(byte *)(iVar5 + 0xd) & 2)" ( (binary_expression "*(byte *)(iVar5 + 0xd) & 2" (pointer_expression "*(byte *)(iVar5 + 0xd)" * (cast_expression "(byte *)(iVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xd)" ( (binary_expression "iVar5 + 0xd" identifier + number_literal) )))) & number_literal) )) != number_literal) || (binary_expression "((byte)DAT_000bbe00 & 0x10) != 0" (parenthesized_expression "((byte)DAT_000bbe00 & 0x10)" ( (binary_expression "(byte)DAT_000bbe00 & 0x10" (cast_expression "(byte)DAT_000bbe00" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal)) )) || (parenthesized_expression "(((byte)DAT_000bbe00 & 3) == 3)" ( (binary_expression "((byte)DAT_000bbe00 & 3) == 3" (parenthesized_expression "((byte)DAT_000bbe00 & 3)" ( (binary_expression "(byte)DAT_000bbe00 & 3" (cast_expression "(byte)DAT_000bbe00" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)" ( (comma_expression "iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0" (assignment_expression "iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4))" identifier = (call_expression "bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4))" identifier (argument_list "(DAT_000bbe84,*(undefined4 *)(iVar5 + 4))" ( identifier , (pointer_expression "*(undefined4 *)(iVar5 + 4)" * (cast_expression "(undefined4 *)(iVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) )))) , (binary_expression "iVar9 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }" { (if_statement "if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }" if (parenthesized_expression "(*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)" ( (binary_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" * (cast_expression "(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_000bbe30 + 4) + 4)" ( (binary_expression "*(int *)(DAT_000bbe30 + 4) + 4" (pointer_expression "*(int *)(DAT_000bbe30 + 4)" * (cast_expression "(int *)(DAT_000bbe30 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000bbe30 + 4)" ( (binary_expression "DAT_000bbe30 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }" { (expression_statement "bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;" (assignment_expression "bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3" identifier = (binary_expression "(*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3" (binary_expression "(*(byte *)(iVar5 + 0x31) & 3) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x31) & 3)" ( (binary_expression "*(byte *)(iVar5 + 0x31) & 3" (pointer_expression "*(byte *)(iVar5 + 0x31)" * (cast_expression "(byte *)(iVar5 + 0x31)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x31)" ( (binary_expression "iVar5 + 0x31" identifier + number_literal) )))) & number_literal) )) == number_literal) || (binary_expression "(*(byte *)(iVar5 + 0x31) & 3) == 3" (parenthesized_expression "(*(byte *)(iVar5 + 0x31) & 3)" ( (binary_expression "*(byte *)(iVar5 + 0x31) & 3" (pointer_expression "*(byte *)(iVar5 + 0x31)" * (cast_expression "(byte *)(iVar5 + 0x31)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x31)" ( (binary_expression "iVar5 + 0x31" identifier + number_literal) )))) & number_literal) )) == number_literal))) ;) }) (else_clause "else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }" else (compound_statement "{\n                      bVar4 = (uint)param_3[3] < 2;\n                    }" { (expression_statement "bVar4 = (uint)param_3[3] < 2;" (assignment_expression "bVar4 = (uint)param_3[3] < 2" identifier = (binary_expression "(uint)param_3[3] < 2" (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ])) < number_literal)) ;) }))) (if_statement "if (bVar4) goto LAB_00034520;" if (parenthesized_expression "(bVar4)" ( identifier )) (goto_statement "goto LAB_00034520;" goto statement_identifier ;)) })) (labeled_statement "LAB_000346b8:\n                  iVar11 = 3;" statement_identifier : (expression_statement "iVar11 = 3;" (assignment_expression "iVar11 = 3" identifier = number_literal) ;)) })) }) (else_clause "else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }" else (if_statement "if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }" { (expression_statement "uVar6 = *(uint *)(iVar9 + 0x28) >> 5;" (assignment_expression "uVar6 = *(uint *)(iVar9 + 0x28) >> 5" identifier = (binary_expression "*(uint *)(iVar9 + 0x28) >> 5" (pointer_expression "*(uint *)(iVar9 + 0x28)" * (cast_expression "(uint *)(iVar9 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) >> number_literal)) ;) (expression_statement "iVar11 = 6;" (assignment_expression "iVar11 = 6" identifier = number_literal) ;) (if_statement "if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }" if (parenthesized_expression "((uVar6 & 0x10000) == 0)" ( (binary_expression "(uVar6 & 0x10000) == 0" (parenthesized_expression "(uVar6 & 0x10000)" ( (binary_expression "uVar6 & 0x10000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }" { (expression_statement "iVar11 = ((uVar6 & 0x40) != 0) + 7;" (assignment_expression "iVar11 = ((uVar6 & 0x40) != 0) + 7" identifier = (binary_expression "((uVar6 & 0x40) != 0) + 7" (parenthesized_expression "((uVar6 & 0x40) != 0)" ( (binary_expression "(uVar6 & 0x40) != 0" (parenthesized_expression "(uVar6 & 0x40)" ( (binary_expression "uVar6 & 0x40" identifier & number_literal) )) != number_literal) )) + number_literal)) ;) })) })))) })) }) (else_clause "else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }" else (compound_statement "{\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }" { (expression_statement "iVar11 = 4;" (assignment_expression "iVar11 = 4" identifier = number_literal) ;) (if_statement "if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }" if (parenthesized_expression "(iVar9 != DAT_000bbe30)" ( (binary_expression "iVar9 != DAT_000bbe30" identifier != identifier) )) (compound_statement "{\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }" { (if_statement "if (iVar1 == iVar9) goto LAB_00034680;" if (parenthesized_expression "(iVar1 == iVar9)" ( (binary_expression "iVar1 == iVar9" identifier == identifier) )) (goto_statement "goto LAB_00034680;" goto statement_identifier ;)) (if_statement "if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }" { (expression_statement "iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;" (assignment_expression "iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4" identifier = (binary_expression "((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4" (parenthesized_expression "((*(byte *)(iVar9 + 0x2a) & 0x20) != 0)" ( (binary_expression "(*(byte *)(iVar9 + 0x2a) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x2a) & 0x20)" ( (binary_expression "*(byte *)(iVar9 + 0x2a) & 0x20" (pointer_expression "*(byte *)(iVar9 + 0x2a)" * (cast_expression "(byte *)(iVar9 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x2a)" ( (binary_expression "iVar9 + 0x2a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) + number_literal)) ;) })) })) }))) })) (labeled_statement "LAB_00034520:\n        param_3[7] = iVar11;" statement_identifier : (expression_statement "param_3[7] = iVar11;" (assignment_expression "param_3[7] = iVar11" (subscript_expression "param_3[7]" identifier [ number_literal ]) = identifier) ;)) (if_statement "if (DAT_000bbfe8 != 0) goto LAB_000345b0;" if (parenthesized_expression "(DAT_000bbfe8 != 0)" ( (binary_expression "DAT_000bbfe8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000345b0;" goto statement_identifier ;)) (labeled_statement "LAB_00034531:\n        local_3c = local_3c + 1;" statement_identifier : (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;)) (expression_statement "param_3 = param_3 + 8;" (assignment_expression "param_3 = param_3 + 8" identifier = (binary_expression "param_3 + 8" identifier + number_literal)) ;) (if_statement "if (param_2 == local_3c) {\n          return 0;\n        }" if (parenthesized_expression "(param_2 == local_3c)" ( (binary_expression "param_2 == local_3c" identifier == identifier) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);" (assignment_expression "iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1)" identifier (argument_list "(DAT_000bbe1c,*param_3,0,0,1)" ( identifier , (pointer_expression "*param_3" * identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar5 != 0) goto LAB_0003449b;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0003449b;" goto statement_identifier ;)) (labeled_statement "LAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }" statement_identifier : (if_statement "if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }" if (parenthesized_expression "(4 < (uint)param_3[2])" ( (binary_expression "4 < (uint)param_3[2]" number_literal < (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) )) (compound_statement "{\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }" { (labeled_statement "LAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");" statement_identifier : comment (expression_statement "FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");" (call_expression "FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols")" identifier (argument_list "("../../ld/plugin.c",0x2b5,"get_symbols")" ( (string_literal ""../../ld/plugin.c"" " string_content ") , number_literal , (string_literal ""get_symbols"" " string_content ") ))) ;)) }))) (expression_statement "uVar6 = 1 << ((byte)param_3[2] & 0x1f);" (assignment_expression "uVar6 = 1 << ((byte)param_3[2] & 0x1f)" identifier = (binary_expression "1 << ((byte)param_3[2] & 0x1f)" number_literal << (parenthesized_expression "((byte)param_3[2] & 0x1f)" ( (binary_expression "(byte)param_3[2] & 0x1f" (cast_expression "(byte)param_3[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) & number_literal) )))) ;) (if_statement "if ((uVar6 & 0x13) != 0) goto LAB_000346b8;" if (parenthesized_expression "((uVar6 & 0x13) != 0)" ( (binary_expression "(uVar6 & 0x13) != 0" (parenthesized_expression "(uVar6 & 0x13)" ( (binary_expression "uVar6 & 0x13" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000346b8;" goto statement_identifier ;)) (if_statement "if ((uVar6 & 0xc) == 0) goto LAB_00034739;" if (parenthesized_expression "((uVar6 & 0xc) == 0)" ( (binary_expression "(uVar6 & 0xc) == 0" (parenthesized_expression "(uVar6 & 0xc)" ( (binary_expression "uVar6 & 0xc" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00034739;" goto statement_identifier ;)) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (expression_statement "param_3[7] = 1;" (assignment_expression "param_3[7] = 1" (subscript_expression "param_3[7]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (DAT_000bbfe8 == 0) goto LAB_00034531;" if (parenthesized_expression "(DAT_000bbfe8 == 0)" ( (binary_expression "DAT_000bbfe8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00034531;" goto statement_identifier ;)) (labeled_statement "LAB_000345b0:\n      uVar2 = param_3[3];" statement_identifier : (expression_statement "uVar2 = param_3[3];" (assignment_expression "uVar2 = param_3[3]" identifier = (subscript_expression "param_3[3]" identifier [ number_literal ])) ;)) (expression_statement "uVar8 = param_3[2];" (assignment_expression "uVar8 = param_3[2]" identifier = (subscript_expression "param_3[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = *param_3;" (assignment_expression "uVar3 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "param_3 = param_3 + 8;" (assignment_expression "param_3 = param_3 + 8" identifier = (binary_expression "param_3 + 8" identifier + number_literal)) ;) (expression_statement "uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );" (assignment_expression "uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       )" identifier = (call_expression "dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       )" identifier (argument_list "(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       )" ( number_literal , (string_literal ""%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);" (call_expression "FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11)" identifier (argument_list "(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_2 != local_3c)" ( (binary_expression "param_2 != local_3c" identifier != identifier) )) ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nld_plugin_status __regparm3\nget_symbols(void *handle,int nsyms,ld_plugin_symbol *syms,int def_ironly_exp)\n\n{\n  bfd *pbVar1;\n  bfd *pbVar2;\n  char *pcVar3;\n  bool bVar4;\n  plugin_input_file_t *input;\n  int iVar5;\n  uint uVar6;\n  char *pcVar7;\n  int iVar8;\n  char cVar9;\n  int iVar10;\n  int local_3c;\n  \n                    /* WARNING: Load size is inaccurate */\n  pbVar1 = *handle;\n  if (called_plugin == (plugin_t *)0x0) {\n    info_assert("../../ld/plugin.c",0x29f);\n  }\n  if (0 < nsyms) {\n    local_3c = 0;\n    do {\n      while (syms->def == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(link_info.output_bfd,&link_info,syms->name,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar9 = *(char *)(iVar5 + 0xc);\n        iVar10 = 1;\n        if (1 < (byte)(cVar9 - 1U)) {\n          if (2 < (byte)(cVar9 - 3U)) {\n            pcVar3 = called_plugin->name;\n            pcVar7 = (char *)dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            einfo(pcVar7,pcVar3,cVar9);\n            cVar9 = *(char *)(iVar5 + 0xc);\n          }\n          iVar10 = *(int *)(iVar5 + 0x14);\n          if (cVar9 == '\x05') {\n            iVar10 = *(int *)(iVar10 + 4);\n          }\n          pbVar2 = *(bfd **)(iVar10 + 0x94);\n          if (syms->def - 2U < 3) {\n            iVar10 = 7;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) {\nLAB_00034680:\n                iVar10 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar10 = 3;\n                }\n              }\n              else if (pbVar2 != (bfd *)0x0) {\n                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;\n                iVar10 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = 4;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) goto LAB_00034680;\n              if (pbVar2 != (bfd *)0x0) {\n                iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        syms->resolution = iVar10;\n        if (report_plugin_symbols != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        syms = syms + 1;\n        if (nsyms == local_3c) {\n          return LDPS_OK;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(link_info.hash,syms->name,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)syms->def) {\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        ld_abort("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)syms->def & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar10 = 1;\n      syms->resolution = 1;\n      if (report_plugin_symbols == 0) goto LAB_00034531;\nLAB_000345b0:\n      iVar5 = syms->visibility;\n      iVar8 = syms->def;\n      pcVar3 = syms->name;\n      syms = syms + 1;\n      pcVar7 = (char *)dcgettext(0,\n                                 "%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n"\n                                 ,5);\n      einfo(pcVar7,pbVar1,pcVar3,iVar8,iVar5,iVar10);\n      local_3c = local_3c + 1;\n    } while (nsyms != local_3c);\n  }\n  return LDPS_OK;\n}\n\n" comment (function_definition "ld_plugin_status __regparm3\nget_symbols(void *handle,int nsyms,ld_plugin_symbol *syms,int def_ironly_exp)\n\n{\n  bfd *pbVar1;\n  bfd *pbVar2;\n  char *pcVar3;\n  bool bVar4;\n  plugin_input_file_t *input;\n  int iVar5;\n  uint uVar6;\n  char *pcVar7;\n  int iVar8;\n  char cVar9;\n  int iVar10;\n  int local_3c;\n  \n                    /* WARNING: Load size is inaccurate */\n  pbVar1 = *handle;\n  if (called_plugin == (plugin_t *)0x0) {\n    info_assert("../../ld/plugin.c",0x29f);\n  }\n  if (0 < nsyms) {\n    local_3c = 0;\n    do {\n      while (syms->def == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(link_info.output_bfd,&link_info,syms->name,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar9 = *(char *)(iVar5 + 0xc);\n        iVar10 = 1;\n        if (1 < (byte)(cVar9 - 1U)) {\n          if (2 < (byte)(cVar9 - 3U)) {\n            pcVar3 = called_plugin->name;\n            pcVar7 = (char *)dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            einfo(pcVar7,pcVar3,cVar9);\n            cVar9 = *(char *)(iVar5 + 0xc);\n          }\n          iVar10 = *(int *)(iVar5 + 0x14);\n          if (cVar9 == '\x05') {\n            iVar10 = *(int *)(iVar10 + 4);\n          }\n          pbVar2 = *(bfd **)(iVar10 + 0x94);\n          if (syms->def - 2U < 3) {\n            iVar10 = 7;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) {\nLAB_00034680:\n                iVar10 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar10 = 3;\n                }\n              }\n              else if (pbVar2 != (bfd *)0x0) {\n                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;\n                iVar10 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = 4;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) goto LAB_00034680;\n              if (pbVar2 != (bfd *)0x0) {\n                iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        syms->resolution = iVar10;\n        if (report_plugin_symbols != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        syms = syms + 1;\n        if (nsyms == local_3c) {\n          return LDPS_OK;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(link_info.hash,syms->name,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)syms->def) {\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        ld_abort("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)syms->def & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar10 = 1;\n      syms->resolution = 1;\n      if (report_plugin_symbols == 0) goto LAB_00034531;\nLAB_000345b0:\n      iVar5 = syms->visibility;\n      iVar8 = syms->def;\n      pcVar3 = syms->name;\n      syms = syms + 1;\n      pcVar7 = (char *)dcgettext(0,\n                                 "%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n"\n                                 ,5);\n      einfo(pcVar7,pbVar1,pcVar3,iVar8,iVar5,iVar10);\n      local_3c = local_3c + 1;\n    } while (nsyms != local_3c);\n  }\n  return LDPS_OK;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "get_symbols(void *handle,int nsyms,ld_plugin_symbol *syms,int def_ironly_exp)" identifier (parameter_list "(void *handle,int nsyms,ld_plugin_symbol *syms,int def_ironly_exp)" ( (parameter_declaration "void *handle" primitive_type (pointer_declarator "*handle" * identifier)) , (parameter_declaration "int nsyms" primitive_type identifier) , (parameter_declaration "ld_plugin_symbol *syms" type_identifier (pointer_declarator "*syms" * identifier)) , (parameter_declaration "int def_ironly_exp" primitive_type identifier) ))) (compound_statement "{\n  bfd *pbVar1;\n  bfd *pbVar2;\n  char *pcVar3;\n  bool bVar4;\n  plugin_input_file_t *input;\n  int iVar5;\n  uint uVar6;\n  char *pcVar7;\n  int iVar8;\n  char cVar9;\n  int iVar10;\n  int local_3c;\n  \n                    /* WARNING: Load size is inaccurate */\n  pbVar1 = *handle;\n  if (called_plugin == (plugin_t *)0x0) {\n    info_assert("../../ld/plugin.c",0x29f);\n  }\n  if (0 < nsyms) {\n    local_3c = 0;\n    do {\n      while (syms->def == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(link_info.output_bfd,&link_info,syms->name,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar9 = *(char *)(iVar5 + 0xc);\n        iVar10 = 1;\n        if (1 < (byte)(cVar9 - 1U)) {\n          if (2 < (byte)(cVar9 - 3U)) {\n            pcVar3 = called_plugin->name;\n            pcVar7 = (char *)dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            einfo(pcVar7,pcVar3,cVar9);\n            cVar9 = *(char *)(iVar5 + 0xc);\n          }\n          iVar10 = *(int *)(iVar5 + 0x14);\n          if (cVar9 == '\x05') {\n            iVar10 = *(int *)(iVar10 + 4);\n          }\n          pbVar2 = *(bfd **)(iVar10 + 0x94);\n          if (syms->def - 2U < 3) {\n            iVar10 = 7;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) {\nLAB_00034680:\n                iVar10 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar10 = 3;\n                }\n              }\n              else if (pbVar2 != (bfd *)0x0) {\n                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;\n                iVar10 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = 4;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) goto LAB_00034680;\n              if (pbVar2 != (bfd *)0x0) {\n                iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        syms->resolution = iVar10;\n        if (report_plugin_symbols != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        syms = syms + 1;\n        if (nsyms == local_3c) {\n          return LDPS_OK;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(link_info.hash,syms->name,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)syms->def) {\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        ld_abort("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)syms->def & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar10 = 1;\n      syms->resolution = 1;\n      if (report_plugin_symbols == 0) goto LAB_00034531;\nLAB_000345b0:\n      iVar5 = syms->visibility;\n      iVar8 = syms->def;\n      pcVar3 = syms->name;\n      syms = syms + 1;\n      pcVar7 = (char *)dcgettext(0,\n                                 "%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n"\n                                 ,5);\n      einfo(pcVar7,pbVar1,pcVar3,iVar8,iVar5,iVar10);\n      local_3c = local_3c + 1;\n    } while (nsyms != local_3c);\n  }\n  return LDPS_OK;\n}" { (declaration "bfd *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "bfd *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "plugin_input_file_t *input;" type_identifier (pointer_declarator "*input" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) comment (expression_statement "pbVar1 = *handle;" (assignment_expression "pbVar1 = *handle" identifier = (pointer_expression "*handle" * identifier)) ;) (if_statement "if (called_plugin == (plugin_t *)0x0) {\n    info_assert("../../ld/plugin.c",0x29f);\n  }" if (parenthesized_expression "(called_plugin == (plugin_t *)0x0)" ( (binary_expression "called_plugin == (plugin_t *)0x0" identifier == (cast_expression "(plugin_t *)0x0" ( (type_descriptor "plugin_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    info_assert("../../ld/plugin.c",0x29f);\n  }" { (expression_statement "info_assert("../../ld/plugin.c",0x29f);" (call_expression "info_assert("../../ld/plugin.c",0x29f)" identifier (argument_list "("../../ld/plugin.c",0x29f)" ( (string_literal ""../../ld/plugin.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (0 < nsyms) {\n    local_3c = 0;\n    do {\n      while (syms->def == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(link_info.output_bfd,&link_info,syms->name,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar9 = *(char *)(iVar5 + 0xc);\n        iVar10 = 1;\n        if (1 < (byte)(cVar9 - 1U)) {\n          if (2 < (byte)(cVar9 - 3U)) {\n            pcVar3 = called_plugin->name;\n            pcVar7 = (char *)dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            einfo(pcVar7,pcVar3,cVar9);\n            cVar9 = *(char *)(iVar5 + 0xc);\n          }\n          iVar10 = *(int *)(iVar5 + 0x14);\n          if (cVar9 == '\x05') {\n            iVar10 = *(int *)(iVar10 + 4);\n          }\n          pbVar2 = *(bfd **)(iVar10 + 0x94);\n          if (syms->def - 2U < 3) {\n            iVar10 = 7;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) {\nLAB_00034680:\n                iVar10 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar10 = 3;\n                }\n              }\n              else if (pbVar2 != (bfd *)0x0) {\n                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;\n                iVar10 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = 4;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) goto LAB_00034680;\n              if (pbVar2 != (bfd *)0x0) {\n                iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        syms->resolution = iVar10;\n        if (report_plugin_symbols != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        syms = syms + 1;\n        if (nsyms == local_3c) {\n          return LDPS_OK;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(link_info.hash,syms->name,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)syms->def) {\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        ld_abort("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)syms->def & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar10 = 1;\n      syms->resolution = 1;\n      if (report_plugin_symbols == 0) goto LAB_00034531;\nLAB_000345b0:\n      iVar5 = syms->visibility;\n      iVar8 = syms->def;\n      pcVar3 = syms->name;\n      syms = syms + 1;\n      pcVar7 = (char *)dcgettext(0,\n                                 "%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n"\n                                 ,5);\n      einfo(pcVar7,pbVar1,pcVar3,iVar8,iVar5,iVar10);\n      local_3c = local_3c + 1;\n    } while (nsyms != local_3c);\n  }" if (parenthesized_expression "(0 < nsyms)" ( (binary_expression "0 < nsyms" number_literal < identifier) )) (compound_statement "{\n    local_3c = 0;\n    do {\n      while (syms->def == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(link_info.output_bfd,&link_info,syms->name,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar9 = *(char *)(iVar5 + 0xc);\n        iVar10 = 1;\n        if (1 < (byte)(cVar9 - 1U)) {\n          if (2 < (byte)(cVar9 - 3U)) {\n            pcVar3 = called_plugin->name;\n            pcVar7 = (char *)dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            einfo(pcVar7,pcVar3,cVar9);\n            cVar9 = *(char *)(iVar5 + 0xc);\n          }\n          iVar10 = *(int *)(iVar5 + 0x14);\n          if (cVar9 == '\x05') {\n            iVar10 = *(int *)(iVar10 + 4);\n          }\n          pbVar2 = *(bfd **)(iVar10 + 0x94);\n          if (syms->def - 2U < 3) {\n            iVar10 = 7;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) {\nLAB_00034680:\n                iVar10 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar10 = 3;\n                }\n              }\n              else if (pbVar2 != (bfd *)0x0) {\n                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;\n                iVar10 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = 4;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) goto LAB_00034680;\n              if (pbVar2 != (bfd *)0x0) {\n                iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        syms->resolution = iVar10;\n        if (report_plugin_symbols != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        syms = syms + 1;\n        if (nsyms == local_3c) {\n          return LDPS_OK;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(link_info.hash,syms->name,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)syms->def) {\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        ld_abort("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)syms->def & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar10 = 1;\n      syms->resolution = 1;\n      if (report_plugin_symbols == 0) goto LAB_00034531;\nLAB_000345b0:\n      iVar5 = syms->visibility;\n      iVar8 = syms->def;\n      pcVar3 = syms->name;\n      syms = syms + 1;\n      pcVar7 = (char *)dcgettext(0,\n                                 "%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n"\n                                 ,5);\n      einfo(pcVar7,pbVar1,pcVar3,iVar8,iVar5,iVar10);\n      local_3c = local_3c + 1;\n    } while (nsyms != local_3c);\n  }" { (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (do_statement "do {\n      while (syms->def == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(link_info.output_bfd,&link_info,syms->name,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar9 = *(char *)(iVar5 + 0xc);\n        iVar10 = 1;\n        if (1 < (byte)(cVar9 - 1U)) {\n          if (2 < (byte)(cVar9 - 3U)) {\n            pcVar3 = called_plugin->name;\n            pcVar7 = (char *)dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            einfo(pcVar7,pcVar3,cVar9);\n            cVar9 = *(char *)(iVar5 + 0xc);\n          }\n          iVar10 = *(int *)(iVar5 + 0x14);\n          if (cVar9 == '\x05') {\n            iVar10 = *(int *)(iVar10 + 4);\n          }\n          pbVar2 = *(bfd **)(iVar10 + 0x94);\n          if (syms->def - 2U < 3) {\n            iVar10 = 7;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) {\nLAB_00034680:\n                iVar10 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar10 = 3;\n                }\n              }\n              else if (pbVar2 != (bfd *)0x0) {\n                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;\n                iVar10 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = 4;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) goto LAB_00034680;\n              if (pbVar2 != (bfd *)0x0) {\n                iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        syms->resolution = iVar10;\n        if (report_plugin_symbols != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        syms = syms + 1;\n        if (nsyms == local_3c) {\n          return LDPS_OK;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(link_info.hash,syms->name,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)syms->def) {\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        ld_abort("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)syms->def & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar10 = 1;\n      syms->resolution = 1;\n      if (report_plugin_symbols == 0) goto LAB_00034531;\nLAB_000345b0:\n      iVar5 = syms->visibility;\n      iVar8 = syms->def;\n      pcVar3 = syms->name;\n      syms = syms + 1;\n      pcVar7 = (char *)dcgettext(0,\n                                 "%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n"\n                                 ,5);\n      einfo(pcVar7,pbVar1,pcVar3,iVar8,iVar5,iVar10);\n      local_3c = local_3c + 1;\n    } while (nsyms != local_3c);" do (compound_statement "{\n      while (syms->def == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(link_info.output_bfd,&link_info,syms->name,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar9 = *(char *)(iVar5 + 0xc);\n        iVar10 = 1;\n        if (1 < (byte)(cVar9 - 1U)) {\n          if (2 < (byte)(cVar9 - 3U)) {\n            pcVar3 = called_plugin->name;\n            pcVar7 = (char *)dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            einfo(pcVar7,pcVar3,cVar9);\n            cVar9 = *(char *)(iVar5 + 0xc);\n          }\n          iVar10 = *(int *)(iVar5 + 0x14);\n          if (cVar9 == '\x05') {\n            iVar10 = *(int *)(iVar10 + 4);\n          }\n          pbVar2 = *(bfd **)(iVar10 + 0x94);\n          if (syms->def - 2U < 3) {\n            iVar10 = 7;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) {\nLAB_00034680:\n                iVar10 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar10 = 3;\n                }\n              }\n              else if (pbVar2 != (bfd *)0x0) {\n                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;\n                iVar10 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = 4;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) goto LAB_00034680;\n              if (pbVar2 != (bfd *)0x0) {\n                iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        syms->resolution = iVar10;\n        if (report_plugin_symbols != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        syms = syms + 1;\n        if (nsyms == local_3c) {\n          return LDPS_OK;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(link_info.hash,syms->name,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)syms->def) {\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        ld_abort("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)syms->def & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar10 = 1;\n      syms->resolution = 1;\n      if (report_plugin_symbols == 0) goto LAB_00034531;\nLAB_000345b0:\n      iVar5 = syms->visibility;\n      iVar8 = syms->def;\n      pcVar3 = syms->name;\n      syms = syms + 1;\n      pcVar7 = (char *)dcgettext(0,\n                                 "%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n"\n                                 ,5);\n      einfo(pcVar7,pbVar1,pcVar3,iVar8,iVar5,iVar10);\n      local_3c = local_3c + 1;\n    }" { (while_statement "while (syms->def == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(link_info.output_bfd,&link_info,syms->name,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar9 = *(char *)(iVar5 + 0xc);\n        iVar10 = 1;\n        if (1 < (byte)(cVar9 - 1U)) {\n          if (2 < (byte)(cVar9 - 3U)) {\n            pcVar3 = called_plugin->name;\n            pcVar7 = (char *)dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            einfo(pcVar7,pcVar3,cVar9);\n            cVar9 = *(char *)(iVar5 + 0xc);\n          }\n          iVar10 = *(int *)(iVar5 + 0x14);\n          if (cVar9 == '\x05') {\n            iVar10 = *(int *)(iVar10 + 4);\n          }\n          pbVar2 = *(bfd **)(iVar10 + 0x94);\n          if (syms->def - 2U < 3) {\n            iVar10 = 7;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) {\nLAB_00034680:\n                iVar10 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar10 = 3;\n                }\n              }\n              else if (pbVar2 != (bfd *)0x0) {\n                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;\n                iVar10 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = 4;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) goto LAB_00034680;\n              if (pbVar2 != (bfd *)0x0) {\n                iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        syms->resolution = iVar10;\n        if (report_plugin_symbols != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        syms = syms + 1;\n        if (nsyms == local_3c) {\n          return LDPS_OK;\n        }\n      }" while (parenthesized_expression "(syms->def == 2)" ( (binary_expression "syms->def == 2" (field_expression "syms->def" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        iVar5 = bfd_wrapped_link_hash_lookup(link_info.output_bfd,&link_info,syms->name,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar9 = *(char *)(iVar5 + 0xc);\n        iVar10 = 1;\n        if (1 < (byte)(cVar9 - 1U)) {\n          if (2 < (byte)(cVar9 - 3U)) {\n            pcVar3 = called_plugin->name;\n            pcVar7 = (char *)dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            einfo(pcVar7,pcVar3,cVar9);\n            cVar9 = *(char *)(iVar5 + 0xc);\n          }\n          iVar10 = *(int *)(iVar5 + 0x14);\n          if (cVar9 == '\x05') {\n            iVar10 = *(int *)(iVar10 + 4);\n          }\n          pbVar2 = *(bfd **)(iVar10 + 0x94);\n          if (syms->def - 2U < 3) {\n            iVar10 = 7;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) {\nLAB_00034680:\n                iVar10 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar10 = 3;\n                }\n              }\n              else if (pbVar2 != (bfd *)0x0) {\n                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;\n                iVar10 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = 4;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) goto LAB_00034680;\n              if (pbVar2 != (bfd *)0x0) {\n                iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        syms->resolution = iVar10;\n        if (report_plugin_symbols != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        syms = syms + 1;\n        if (nsyms == local_3c) {\n          return LDPS_OK;\n        }\n      }" { (expression_statement "iVar5 = bfd_wrapped_link_hash_lookup(link_info.output_bfd,&link_info,syms->name,0,0,1);" (assignment_expression "iVar5 = bfd_wrapped_link_hash_lookup(link_info.output_bfd,&link_info,syms->name,0,0,1)" identifier = (call_expression "bfd_wrapped_link_hash_lookup(link_info.output_bfd,&link_info,syms->name,0,0,1)" identifier (argument_list "(link_info.output_bfd,&link_info,syms->name,0,0,1)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , (pointer_expression "&link_info" & identifier) , (field_expression "syms->name" identifier -> field_identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar5 == 0) goto LAB_00034575;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00034575;" goto statement_identifier ;)) (labeled_statement "LAB_0003449b:\n        cVar9 = *(char *)(iVar5 + 0xc);" statement_identifier : (expression_statement "cVar9 = *(char *)(iVar5 + 0xc);" (assignment_expression "cVar9 = *(char *)(iVar5 + 0xc)" identifier = (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) ))))) ;)) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (if_statement "if (1 < (byte)(cVar9 - 1U)) {\n          if (2 < (byte)(cVar9 - 3U)) {\n            pcVar3 = called_plugin->name;\n            pcVar7 = (char *)dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            einfo(pcVar7,pcVar3,cVar9);\n            cVar9 = *(char *)(iVar5 + 0xc);\n          }\n          iVar10 = *(int *)(iVar5 + 0x14);\n          if (cVar9 == '\x05') {\n            iVar10 = *(int *)(iVar10 + 4);\n          }\n          pbVar2 = *(bfd **)(iVar10 + 0x94);\n          if (syms->def - 2U < 3) {\n            iVar10 = 7;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) {\nLAB_00034680:\n                iVar10 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar10 = 3;\n                }\n              }\n              else if (pbVar2 != (bfd *)0x0) {\n                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;\n                iVar10 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = 4;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) goto LAB_00034680;\n              if (pbVar2 != (bfd *)0x0) {\n                iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(1 < (byte)(cVar9 - 1U))" ( (binary_expression "1 < (byte)(cVar9 - 1U)" number_literal < (call_expression "(byte)(cVar9 - 1U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar9 - 1U)" ( (binary_expression "cVar9 - 1U" identifier - number_literal) )))) )) (compound_statement "{\n          if (2 < (byte)(cVar9 - 3U)) {\n            pcVar3 = called_plugin->name;\n            pcVar7 = (char *)dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            einfo(pcVar7,pcVar3,cVar9);\n            cVar9 = *(char *)(iVar5 + 0xc);\n          }\n          iVar10 = *(int *)(iVar5 + 0x14);\n          if (cVar9 == '\x05') {\n            iVar10 = *(int *)(iVar10 + 4);\n          }\n          pbVar2 = *(bfd **)(iVar10 + 0x94);\n          if (syms->def - 2U < 3) {\n            iVar10 = 7;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) {\nLAB_00034680:\n                iVar10 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar10 = 3;\n                }\n              }\n              else if (pbVar2 != (bfd *)0x0) {\n                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;\n                iVar10 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = 4;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) goto LAB_00034680;\n              if (pbVar2 != (bfd *)0x0) {\n                iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }" { (if_statement "if (2 < (byte)(cVar9 - 3U)) {\n            pcVar3 = called_plugin->name;\n            pcVar7 = (char *)dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            einfo(pcVar7,pcVar3,cVar9);\n            cVar9 = *(char *)(iVar5 + 0xc);\n          }" if (parenthesized_expression "(2 < (byte)(cVar9 - 3U))" ( (binary_expression "2 < (byte)(cVar9 - 3U)" number_literal < (call_expression "(byte)(cVar9 - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar9 - 3U)" ( (binary_expression "cVar9 - 3U" identifier - number_literal) )))) )) (compound_statement "{\n            pcVar3 = called_plugin->name;\n            pcVar7 = (char *)dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            einfo(pcVar7,pcVar3,cVar9);\n            cVar9 = *(char *)(iVar5 + 0xc);\n          }" { (expression_statement "pcVar3 = called_plugin->name;" (assignment_expression "pcVar3 = called_plugin->name" identifier = (field_expression "called_plugin->name" identifier -> field_identifier)) ;) (expression_statement "pcVar7 = (char *)dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5)" identifier (argument_list "(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5)" ( number_literal , (string_literal ""%F%P: %s: plugin symbol table corrupt (sym type %d)\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar7,pcVar3,cVar9);" (call_expression "einfo(pcVar7,pcVar3,cVar9)" identifier (argument_list "(pcVar7,pcVar3,cVar9)" ( identifier , identifier , identifier ))) ;) (expression_statement "cVar9 = *(char *)(iVar5 + 0xc);" (assignment_expression "cVar9 = *(char *)(iVar5 + 0xc)" identifier = (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) ))))) ;) })) (expression_statement "iVar10 = *(int *)(iVar5 + 0x14);" (assignment_expression "iVar10 = *(int *)(iVar5 + 0x14)" identifier = (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) ))))) ;) (if_statement "if (cVar9 == '\x05') {\n            iVar10 = *(int *)(iVar10 + 4);\n          }" if (parenthesized_expression "(cVar9 == '\x05')" ( (binary_expression "cVar9 == '\x05'" identifier == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n            iVar10 = *(int *)(iVar10 + 4);\n          }" { (expression_statement "iVar10 = *(int *)(iVar10 + 4);" (assignment_expression "iVar10 = *(int *)(iVar10 + 4)" identifier = (pointer_expression "*(int *)(iVar10 + 4)" * (cast_expression "(int *)(iVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) ))))) ;) })) (expression_statement "pbVar2 = *(bfd **)(iVar10 + 0x94);" (assignment_expression "pbVar2 = *(bfd **)(iVar10 + 0x94)" identifier = (pointer_expression "*(bfd **)(iVar10 + 0x94)" * (cast_expression "(bfd **)(iVar10 + 0x94)" ( (type_descriptor "bfd **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x94)" ( (binary_expression "iVar10 + 0x94" identifier + number_literal) ))))) ;) (if_statement "if (syms->def - 2U < 3) {\n            iVar10 = 7;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) {\nLAB_00034680:\n                iVar10 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar10 = 3;\n                }\n              }\n              else if (pbVar2 != (bfd *)0x0) {\n                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;\n                iVar10 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar10 = 4;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) goto LAB_00034680;\n              if (pbVar2 != (bfd *)0x0) {\n                iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;\n              }\n            }\n          }" if (parenthesized_expression "(syms->def - 2U < 3)" ( (binary_expression "syms->def - 2U < 3" (binary_expression "syms->def - 2U" (field_expression "syms->def" identifier -> field_identifier) - number_literal) < number_literal) )) (compound_statement "{\n            iVar10 = 7;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) {\nLAB_00034680:\n                iVar10 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar10 = 3;\n                }\n              }\n              else if (pbVar2 != (bfd *)0x0) {\n                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;\n                iVar10 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }" { (expression_statement "iVar10 = 7;" (assignment_expression "iVar10 = 7" identifier = number_literal) ;) (if_statement "if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) {\nLAB_00034680:\n                iVar10 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar10 = 3;\n                }\n              }\n              else if (pbVar2 != (bfd *)0x0) {\n                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;\n                iVar10 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }" if (parenthesized_expression "(pbVar2 != link_info.output_bfd)" ( (binary_expression "pbVar2 != link_info.output_bfd" identifier != (field_expression "link_info.output_bfd" identifier . field_identifier)) )) (compound_statement "{\n              if (pbVar1 == pbVar2) {\nLAB_00034680:\n                iVar10 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar10 = 3;\n                }\n              }\n              else if (pbVar2 != (bfd *)0x0) {\n                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;\n                iVar10 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }" { (if_statement "if (pbVar1 == pbVar2) {\nLAB_00034680:\n                iVar10 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar10 = 3;\n                }\n              }\n              else if (pbVar2 != (bfd *)0x0) {\n                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;\n                iVar10 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }" if (parenthesized_expression "(pbVar1 == pbVar2)" ( (binary_expression "pbVar1 == pbVar2" identifier == identifier) )) (compound_statement "{\nLAB_00034680:\n                iVar10 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar10 = 3;\n                }\n              }" { (labeled_statement "LAB_00034680:\n                iVar10 = 2;" statement_identifier : (expression_statement "iVar10 = 2;" (assignment_expression "iVar10 = 2" identifier = number_literal) ;)) (if_statement "if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar10 = 3;\n                }" if (parenthesized_expression "(((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2))" ( (binary_expression "((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)" (parenthesized_expression "((*(byte *)(iVar5 + 0xd) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar5 + 0xd) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0xd) & 1)" ( (binary_expression "*(byte *)(iVar5 + 0xd) & 1" (pointer_expression "*(byte *)(iVar5 + 0xd)" * (cast_expression "(byte *)(iVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xd)" ( (binary_expression "iVar5 + 0xd" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2)" ( (comma_expression "iVar10 = def_ironly_exp, (link_info._0_1_ & 3) != 2" (assignment_expression "iVar10 = def_ironly_exp" identifier = identifier) , (binary_expression "(link_info._0_1_ & 3) != 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar10 = 3;\n                }" { (if_statement "if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)) {\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }" if (parenthesized_expression "((((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0))" ( (binary_expression "(((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)) &&\n                     (iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)" (parenthesized_expression "(((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3))" ( (binary_expression "((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||\n                      ((link_info._0_1_ & 3) == 3)" (parenthesized_expression "((*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0)" ( (binary_expression "(*(byte *)(iVar5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0" (binary_expression "(*(byte *)(iVar5 + 0xd) & 2) != 0" (parenthesized_expression "(*(byte *)(iVar5 + 0xd) & 2)" ( (binary_expression "*(byte *)(iVar5 + 0xd) & 2" (pointer_expression "*(byte *)(iVar5 + 0xd)" * (cast_expression "(byte *)(iVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xd)" ( (binary_expression "iVar5 + 0xd" identifier + number_literal) )))) & number_literal) )) != number_literal) || (binary_expression "(link_info._0_1_ & 0x10) != 0" (parenthesized_expression "(link_info._0_1_ & 0x10)" ( (binary_expression "link_info._0_1_ & 0x10" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) != number_literal)) )) || (parenthesized_expression "((link_info._0_1_ & 3) == 3)" ( (binary_expression "(link_info._0_1_ & 3) == 3" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0)" ( (comma_expression "iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4)),\n                     iVar8 == 0" (assignment_expression "iVar8 = bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4))" identifier = (call_expression "bfd_hide_sym_by_version\n                                        (link_info.version_info,*(undefined4 *)(iVar5 + 4))" identifier (argument_list "(link_info.version_info,*(undefined4 *)(iVar5 + 4))" ( (field_expression "link_info.version_info" identifier . field_identifier) , (pointer_expression "*(undefined4 *)(iVar5 + 4)" * (cast_expression "(undefined4 *)(iVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) )))) , (binary_expression "iVar8 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                    if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }" { (if_statement "if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }" if (parenthesized_expression "((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)" ( (binary_expression "(link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour" (field_expression "(link_info.output_bfd)->xvec->flavour" (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) -> field_identifier) == identifier) )) (compound_statement "{\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }" { (expression_statement "bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;" (assignment_expression "bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3" identifier = (binary_expression "(*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3" (binary_expression "(*(byte *)(iVar5 + 0x31) & 3) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x31) & 3)" ( (binary_expression "*(byte *)(iVar5 + 0x31) & 3" (pointer_expression "*(byte *)(iVar5 + 0x31)" * (cast_expression "(byte *)(iVar5 + 0x31)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x31)" ( (binary_expression "iVar5 + 0x31" identifier + number_literal) )))) & number_literal) )) == number_literal) || (binary_expression "(*(byte *)(iVar5 + 0x31) & 3) == 3" (parenthesized_expression "(*(byte *)(iVar5 + 0x31) & 3)" ( (binary_expression "*(byte *)(iVar5 + 0x31) & 3" (pointer_expression "*(byte *)(iVar5 + 0x31)" * (cast_expression "(byte *)(iVar5 + 0x31)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x31)" ( (binary_expression "iVar5 + 0x31" identifier + number_literal) )))) & number_literal) )) == number_literal))) ;) }) (else_clause "else {\n                      bVar4 = (uint)syms->visibility < 2;\n                    }" else (compound_statement "{\n                      bVar4 = (uint)syms->visibility < 2;\n                    }" { (expression_statement "bVar4 = (uint)syms->visibility < 2;" (assignment_expression "bVar4 = (uint)syms->visibility < 2" identifier = (binary_expression "(uint)syms->visibility < 2" (cast_expression "(uint)syms->visibility" ( (type_descriptor "uint" type_identifier) ) (field_expression "syms->visibility" identifier -> field_identifier)) < number_literal)) ;) }))) (if_statement "if (bVar4) goto LAB_00034520;" if (parenthesized_expression "(bVar4)" ( identifier )) (goto_statement "goto LAB_00034520;" goto statement_identifier ;)) })) (labeled_statement "LAB_000346b8:\n                  iVar10 = 3;" statement_identifier : (expression_statement "iVar10 = 3;" (assignment_expression "iVar10 = 3" identifier = number_literal) ;)) })) }) (else_clause "else if (pbVar2 != (bfd *)0x0) {\n                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;\n                iVar10 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }" else (if_statement "if (pbVar2 != (bfd *)0x0) {\n                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;\n                iVar10 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }" if (parenthesized_expression "(pbVar2 != (bfd *)0x0)" ( (binary_expression "pbVar2 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;\n                iVar10 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }" { (expression_statement "uVar6 = *(uint *)&pbVar2->field_0x28 >> 5;" (assignment_expression "uVar6 = *(uint *)&pbVar2->field_0x28 >> 5" identifier = (binary_expression "*(uint *)&pbVar2->field_0x28 >> 5" (pointer_expression "*(uint *)&pbVar2->field_0x28" * (cast_expression "(uint *)&pbVar2->field_0x28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pbVar2->field_0x28" & (field_expression "pbVar2->field_0x28" identifier -> field_identifier)))) >> number_literal)) ;) (expression_statement "iVar10 = 6;" (assignment_expression "iVar10 = 6" identifier = number_literal) ;) (if_statement "if ((uVar6 & 0x10000) == 0) {\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }" if (parenthesized_expression "((uVar6 & 0x10000) == 0)" ( (binary_expression "(uVar6 & 0x10000) == 0" (parenthesized_expression "(uVar6 & 0x10000)" ( (binary_expression "uVar6 & 0x10000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  iVar10 = ((uVar6 & 0x40) != 0) + 7;\n                }" { (expression_statement "iVar10 = ((uVar6 & 0x40) != 0) + 7;" (assignment_expression "iVar10 = ((uVar6 & 0x40) != 0) + 7" identifier = (binary_expression "((uVar6 & 0x40) != 0) + 7" (parenthesized_expression "((uVar6 & 0x40) != 0)" ( (binary_expression "(uVar6 & 0x40) != 0" (parenthesized_expression "(uVar6 & 0x40)" ( (binary_expression "uVar6 & 0x40" identifier & number_literal) )) != number_literal) )) + number_literal)) ;) })) })))) })) }) (else_clause "else {\n            iVar10 = 4;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) goto LAB_00034680;\n              if (pbVar2 != (bfd *)0x0) {\n                iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;\n              }\n            }\n          }" else (compound_statement "{\n            iVar10 = 4;\n            if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) goto LAB_00034680;\n              if (pbVar2 != (bfd *)0x0) {\n                iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;\n              }\n            }\n          }" { (expression_statement "iVar10 = 4;" (assignment_expression "iVar10 = 4" identifier = number_literal) ;) (if_statement "if (pbVar2 != link_info.output_bfd) {\n              if (pbVar1 == pbVar2) goto LAB_00034680;\n              if (pbVar2 != (bfd *)0x0) {\n                iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;\n              }\n            }" if (parenthesized_expression "(pbVar2 != link_info.output_bfd)" ( (binary_expression "pbVar2 != link_info.output_bfd" identifier != (field_expression "link_info.output_bfd" identifier . field_identifier)) )) (compound_statement "{\n              if (pbVar1 == pbVar2) goto LAB_00034680;\n              if (pbVar2 != (bfd *)0x0) {\n                iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;\n              }\n            }" { (if_statement "if (pbVar1 == pbVar2) goto LAB_00034680;" if (parenthesized_expression "(pbVar1 == pbVar2)" ( (binary_expression "pbVar1 == pbVar2" identifier == identifier) )) (goto_statement "goto LAB_00034680;" goto statement_identifier ;)) (if_statement "if (pbVar2 != (bfd *)0x0) {\n                iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;\n              }" if (parenthesized_expression "(pbVar2 != (bfd *)0x0)" ( (binary_expression "pbVar2 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;\n              }" { (expression_statement "iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4;" (assignment_expression "iVar10 = ((pbVar2->field_0x2a & 0x20) != 0) + 4" identifier = (binary_expression "((pbVar2->field_0x2a & 0x20) != 0) + 4" (parenthesized_expression "((pbVar2->field_0x2a & 0x20) != 0)" ( (binary_expression "(pbVar2->field_0x2a & 0x20) != 0" (parenthesized_expression "(pbVar2->field_0x2a & 0x20)" ( (binary_expression "pbVar2->field_0x2a & 0x20" (field_expression "pbVar2->field_0x2a" identifier -> field_identifier) & number_literal) )) != number_literal) )) + number_literal)) ;) })) })) }))) })) (labeled_statement "LAB_00034520:\n        syms->resolution = iVar10;" statement_identifier : (expression_statement "syms->resolution = iVar10;" (assignment_expression "syms->resolution = iVar10" (field_expression "syms->resolution" identifier -> field_identifier) = identifier) ;)) (if_statement "if (report_plugin_symbols != 0) goto LAB_000345b0;" if (parenthesized_expression "(report_plugin_symbols != 0)" ( (binary_expression "report_plugin_symbols != 0" identifier != number_literal) )) (goto_statement "goto LAB_000345b0;" goto statement_identifier ;)) (labeled_statement "LAB_00034531:\n        local_3c = local_3c + 1;" statement_identifier : (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;)) (expression_statement "syms = syms + 1;" (assignment_expression "syms = syms + 1" identifier = (binary_expression "syms + 1" identifier + number_literal)) ;) (if_statement "if (nsyms == local_3c) {\n          return LDPS_OK;\n        }" if (parenthesized_expression "(nsyms == local_3c)" ( (binary_expression "nsyms == local_3c" identifier == identifier) )) (compound_statement "{\n          return LDPS_OK;\n        }" { (return_statement "return LDPS_OK;" return identifier ;) })) })) (expression_statement "iVar5 = bfd_link_hash_lookup(link_info.hash,syms->name,0,0,1);" (assignment_expression "iVar5 = bfd_link_hash_lookup(link_info.hash,syms->name,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(link_info.hash,syms->name,0,0,1)" identifier (argument_list "(link_info.hash,syms->name,0,0,1)" ( (field_expression "link_info.hash" identifier . field_identifier) , (field_expression "syms->name" identifier -> field_identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar5 != 0) goto LAB_0003449b;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0003449b;" goto statement_identifier ;)) (labeled_statement "LAB_00034575:\n      if (4 < (uint)syms->def) {\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        ld_abort("../../ld/plugin.c",0x2b5,"get_symbols");\n      }" statement_identifier : (if_statement "if (4 < (uint)syms->def) {\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        ld_abort("../../ld/plugin.c",0x2b5,"get_symbols");\n      }" if (parenthesized_expression "(4 < (uint)syms->def)" ( (binary_expression "4 < (uint)syms->def" number_literal < (cast_expression "(uint)syms->def" ( (type_descriptor "uint" type_identifier) ) (field_expression "syms->def" identifier -> field_identifier))) )) (compound_statement "{\nLAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        ld_abort("../../ld/plugin.c",0x2b5,"get_symbols");\n      }" { (labeled_statement "LAB_00034739:\n                    /* WARNING: Subroutine does not return */\n        ld_abort("../../ld/plugin.c",0x2b5,"get_symbols");" statement_identifier : comment (expression_statement "ld_abort("../../ld/plugin.c",0x2b5,"get_symbols");" (call_expression "ld_abort("../../ld/plugin.c",0x2b5,"get_symbols")" identifier (argument_list "("../../ld/plugin.c",0x2b5,"get_symbols")" ( (string_literal ""../../ld/plugin.c"" " string_content ") , number_literal , (string_literal ""get_symbols"" " string_content ") ))) ;)) }))) (expression_statement "uVar6 = 1 << ((byte)syms->def & 0x1f);" (assignment_expression "uVar6 = 1 << ((byte)syms->def & 0x1f)" identifier = (binary_expression "1 << ((byte)syms->def & 0x1f)" number_literal << (parenthesized_expression "((byte)syms->def & 0x1f)" ( (binary_expression "(byte)syms->def & 0x1f" (cast_expression "(byte)syms->def" ( (type_descriptor "byte" type_identifier) ) (field_expression "syms->def" identifier -> field_identifier)) & number_literal) )))) ;) (if_statement "if ((uVar6 & 0x13) != 0) goto LAB_000346b8;" if (parenthesized_expression "((uVar6 & 0x13) != 0)" ( (binary_expression "(uVar6 & 0x13) != 0" (parenthesized_expression "(uVar6 & 0x13)" ( (binary_expression "uVar6 & 0x13" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000346b8;" goto statement_identifier ;)) (if_statement "if ((uVar6 & 0xc) == 0) goto LAB_00034739;" if (parenthesized_expression "((uVar6 & 0xc) == 0)" ( (binary_expression "(uVar6 & 0xc) == 0" (parenthesized_expression "(uVar6 & 0xc)" ( (binary_expression "uVar6 & 0xc" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00034739;" goto statement_identifier ;)) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (expression_statement "syms->resolution = 1;" (assignment_expression "syms->resolution = 1" (field_expression "syms->resolution" identifier -> field_identifier) = number_literal) ;) (if_statement "if (report_plugin_symbols == 0) goto LAB_00034531;" if (parenthesized_expression "(report_plugin_symbols == 0)" ( (binary_expression "report_plugin_symbols == 0" identifier == number_literal) )) (goto_statement "goto LAB_00034531;" goto statement_identifier ;)) (labeled_statement "LAB_000345b0:\n      iVar5 = syms->visibility;" statement_identifier : (expression_statement "iVar5 = syms->visibility;" (assignment_expression "iVar5 = syms->visibility" identifier = (field_expression "syms->visibility" identifier -> field_identifier)) ;)) (expression_statement "iVar8 = syms->def;" (assignment_expression "iVar8 = syms->def" identifier = (field_expression "syms->def" identifier -> field_identifier)) ;) (expression_statement "pcVar3 = syms->name;" (assignment_expression "pcVar3 = syms->name" identifier = (field_expression "syms->name" identifier -> field_identifier)) ;) (expression_statement "syms = syms + 1;" (assignment_expression "syms = syms + 1" identifier = (binary_expression "syms + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = (char *)dcgettext(0,\n                                 "%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n"\n                                 ,5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,\n                                 "%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n"\n                                 ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                 "%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n"\n                                 ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                 "%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n"\n                                 ,5)" identifier (argument_list "(0,\n                                 "%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n"\n                                 ,5)" ( number_literal , (string_literal ""%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar7,pbVar1,pcVar3,iVar8,iVar5,iVar10);" (call_expression "einfo(pcVar7,pbVar1,pcVar3,iVar8,iVar5,iVar10)" identifier (argument_list "(pcVar7,pbVar1,pcVar3,iVar8,iVar5,iVar10)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(nsyms != local_3c)" ( (binary_expression "nsyms != local_3c" identifier != identifier) )) ;) })) (return_statement "return LDPS_OK;" return identifier ;) })))
(translation_unit "undefined4 __regparm3 FUN_00034410(int *param_1,int param_2,undefined4 *param_3,int param_4)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  bool bVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  char cVar10;\n  int iVar11;\n  int local_3c;\n  \n  iVar1 = *param_1;\n  if (DAT_000bbb68 == 0) {\n    FUN_00031780("../../ld/plugin.c",0x29f);\n  }\n  if (0 < param_2) {\n    local_3c = 0;\n    do {\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    } while (param_2 != local_3c);\n  }\n  return 0;\n}\n\n" (function_definition "undefined4 __regparm3 FUN_00034410(int *param_1,int param_2,undefined4 *param_3,int param_4)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  bool bVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  char cVar10;\n  int iVar11;\n  int local_3c;\n  \n  iVar1 = *param_1;\n  if (DAT_000bbb68 == 0) {\n    FUN_00031780("../../ld/plugin.c",0x29f);\n  }\n  if (0 < param_2) {\n    local_3c = 0;\n    do {\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    } while (param_2 != local_3c);\n  }\n  return 0;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00034410(int *param_1,int param_2,undefined4 *param_3,int param_4)" identifier (parameter_list "(int *param_1,int param_2,undefined4 *param_3,int param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  bool bVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  char cVar10;\n  int iVar11;\n  int local_3c;\n  \n  iVar1 = *param_1;\n  if (DAT_000bbb68 == 0) {\n    FUN_00031780("../../ld/plugin.c",0x29f);\n  }\n  if (0 < param_2) {\n    local_3c = 0;\n    do {\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    } while (param_2 != local_3c);\n  }\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (expression_statement "iVar1 = *param_1;" (assignment_expression "iVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (DAT_000bbb68 == 0) {\n    FUN_00031780("../../ld/plugin.c",0x29f);\n  }" if (parenthesized_expression "(DAT_000bbb68 == 0)" ( (binary_expression "DAT_000bbb68 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_00031780("../../ld/plugin.c",0x29f);\n  }" { (expression_statement "FUN_00031780("../../ld/plugin.c",0x29f);" (call_expression "FUN_00031780("../../ld/plugin.c",0x29f)" identifier (argument_list "("../../ld/plugin.c",0x29f)" ( (string_literal ""../../ld/plugin.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (0 < param_2) {\n    local_3c = 0;\n    do {\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    } while (param_2 != local_3c);\n  }" if (parenthesized_expression "(0 < param_2)" ( (binary_expression "0 < param_2" number_literal < identifier) )) (compound_statement "{\n    local_3c = 0;\n    do {\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    } while (param_2 != local_3c);\n  }" { (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (do_statement "do {\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    } while (param_2 != local_3c);" do (compound_statement "{\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    }" { (while_statement "while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }" while (parenthesized_expression "(param_3[2] == 2)" ( (binary_expression "param_3[2] == 2" (subscript_expression "param_3[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }" { (expression_statement "iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);" (assignment_expression "iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1)" identifier = (call_expression "bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1)" identifier (argument_list "(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1)" ( identifier , (pointer_expression "&DAT_000bbe00" & identifier) , (pointer_expression "*param_3" * identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar5 == 0) goto LAB_00034575;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00034575;" goto statement_identifier ;)) (labeled_statement "LAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);" statement_identifier : (expression_statement "cVar10 = *(char *)(iVar5 + 0xc);" (assignment_expression "cVar10 = *(char *)(iVar5 + 0xc)" identifier = (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) ))))) ;)) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (if_statement "if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(1 < (byte)(cVar10 - 1U))" ( (binary_expression "1 < (byte)(cVar10 - 1U)" number_literal < (call_expression "(byte)(cVar10 - 1U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar10 - 1U)" ( (binary_expression "cVar10 - 1U" identifier - number_literal) )))) )) (compound_statement "{\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }" { (if_statement "if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }" if (parenthesized_expression "(2 < (byte)(cVar10 - 3U))" ( (binary_expression "2 < (byte)(cVar10 - 3U)" number_literal < (call_expression "(byte)(cVar10 - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(cVar10 - 3U)" ( (binary_expression "cVar10 - 3U" identifier - number_literal) )))) )) (compound_statement "{\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }" { (expression_statement "uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);" (assignment_expression "uVar2 = *(undefined4 *)(DAT_000bbb68 + 4)" identifier = (pointer_expression "*(undefined4 *)(DAT_000bbb68 + 4)" * (cast_expression "(undefined4 *)(DAT_000bbb68 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000bbb68 + 4)" ( (binary_expression "DAT_000bbb68 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);" (assignment_expression "uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5)" identifier (argument_list "(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5)" ( number_literal , (string_literal ""%F%P: %s: plugin symbol table corrupt (sym type %d)\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031730(uVar8,uVar2,cVar10);" (call_expression "FUN_00031730(uVar8,uVar2,cVar10)" identifier (argument_list "(uVar8,uVar2,cVar10)" ( identifier , identifier , identifier ))) ;) (expression_statement "cVar10 = *(char *)(iVar5 + 0xc);" (assignment_expression "cVar10 = *(char *)(iVar5 + 0xc)" identifier = (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) ))))) ;) })) (expression_statement "iVar11 = *(int *)(iVar5 + 0x14);" (assignment_expression "iVar11 = *(int *)(iVar5 + 0x14)" identifier = (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) ))))) ;) (if_statement "if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }" if (parenthesized_expression "(cVar10 == '\x05')" ( (binary_expression "cVar10 == '\x05'" identifier == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n            iVar11 = *(int *)(iVar11 + 4);\n          }" { (expression_statement "iVar11 = *(int *)(iVar11 + 4);" (assignment_expression "iVar11 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) })) (expression_statement "iVar9 = *(int *)(iVar11 + 0x94);" (assignment_expression "iVar9 = *(int *)(iVar11 + 0x94)" identifier = (pointer_expression "*(int *)(iVar11 + 0x94)" * (cast_expression "(int *)(iVar11 + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x94)" ( (binary_expression "iVar11 + 0x94" identifier + number_literal) ))))) ;) (if_statement "if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }" if (parenthesized_expression "(param_3[2] - 2 < 3)" ( (binary_expression "param_3[2] - 2 < 3" (binary_expression "param_3[2] - 2" (subscript_expression "param_3[2]" identifier [ number_literal ]) - number_literal) < number_literal) )) (compound_statement "{\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }" { (expression_statement "iVar11 = 7;" (assignment_expression "iVar11 = 7" identifier = number_literal) ;) (if_statement "if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }" if (parenthesized_expression "(iVar9 != DAT_000bbe30)" ( (binary_expression "iVar9 != DAT_000bbe30" identifier != identifier) )) (compound_statement "{\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }" { (if_statement "if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }" if (parenthesized_expression "(iVar1 == iVar9)" ( (binary_expression "iVar1 == iVar9" identifier == identifier) )) (compound_statement "{\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }" { (labeled_statement "LAB_00034680:\n                iVar11 = 2;" statement_identifier : (expression_statement "iVar11 = 2;" (assignment_expression "iVar11 = 2" identifier = number_literal) ;)) (if_statement "if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }" if (parenthesized_expression "(((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2))" ( (binary_expression "((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)" (parenthesized_expression "((*(byte *)(iVar5 + 0xd) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar5 + 0xd) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0xd) & 1)" ( (binary_expression "*(byte *)(iVar5 + 0xd) & 1" (pointer_expression "*(byte *)(iVar5 + 0xd)" * (cast_expression "(byte *)(iVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xd)" ( (binary_expression "iVar5 + 0xd" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)" ( (comma_expression "iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2" (assignment_expression "iVar11 = param_4" identifier = identifier) , (binary_expression "((byte)DAT_000bbe00 & 3) != 2" (parenthesized_expression "((byte)DAT_000bbe00 & 3)" ( (binary_expression "(byte)DAT_000bbe00 & 3" (cast_expression "(byte)DAT_000bbe00" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }" { (if_statement "if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }" if (parenthesized_expression "((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0))" ( (binary_expression "(((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)" (parenthesized_expression "(((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3))" ( (binary_expression "((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)" (parenthesized_expression "((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0)" ( (binary_expression "(*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0" (binary_expression "(*(byte *)(iVar5 + 0xd) & 2) != 0" (parenthesized_expression "(*(byte *)(iVar5 + 0xd) & 2)" ( (binary_expression "*(byte *)(iVar5 + 0xd) & 2" (pointer_expression "*(byte *)(iVar5 + 0xd)" * (cast_expression "(byte *)(iVar5 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xd)" ( (binary_expression "iVar5 + 0xd" identifier + number_literal) )))) & number_literal) )) != number_literal) || (binary_expression "((byte)DAT_000bbe00 & 0x10) != 0" (parenthesized_expression "((byte)DAT_000bbe00 & 0x10)" ( (binary_expression "(byte)DAT_000bbe00 & 0x10" (cast_expression "(byte)DAT_000bbe00" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal)) )) || (parenthesized_expression "(((byte)DAT_000bbe00 & 3) == 3)" ( (binary_expression "((byte)DAT_000bbe00 & 3) == 3" (parenthesized_expression "((byte)DAT_000bbe00 & 3)" ( (binary_expression "(byte)DAT_000bbe00 & 3" (cast_expression "(byte)DAT_000bbe00" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)" ( (comma_expression "iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0" (assignment_expression "iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4))" identifier = (call_expression "bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4))" identifier (argument_list "(DAT_000bbe84,*(undefined4 *)(iVar5 + 4))" ( identifier , (pointer_expression "*(undefined4 *)(iVar5 + 4)" * (cast_expression "(undefined4 *)(iVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) )))) , (binary_expression "iVar9 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }" { (if_statement "if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }" if (parenthesized_expression "(*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)" ( (binary_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" * (cast_expression "(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_000bbe30 + 4) + 4)" ( (binary_expression "*(int *)(DAT_000bbe30 + 4) + 4" (pointer_expression "*(int *)(DAT_000bbe30 + 4)" * (cast_expression "(int *)(DAT_000bbe30 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000bbe30 + 4)" ( (binary_expression "DAT_000bbe30 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }" { (expression_statement "bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;" (assignment_expression "bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3" identifier = (binary_expression "(*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3" (binary_expression "(*(byte *)(iVar5 + 0x31) & 3) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x31) & 3)" ( (binary_expression "*(byte *)(iVar5 + 0x31) & 3" (pointer_expression "*(byte *)(iVar5 + 0x31)" * (cast_expression "(byte *)(iVar5 + 0x31)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x31)" ( (binary_expression "iVar5 + 0x31" identifier + number_literal) )))) & number_literal) )) == number_literal) || (binary_expression "(*(byte *)(iVar5 + 0x31) & 3) == 3" (parenthesized_expression "(*(byte *)(iVar5 + 0x31) & 3)" ( (binary_expression "*(byte *)(iVar5 + 0x31) & 3" (pointer_expression "*(byte *)(iVar5 + 0x31)" * (cast_expression "(byte *)(iVar5 + 0x31)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x31)" ( (binary_expression "iVar5 + 0x31" identifier + number_literal) )))) & number_literal) )) == number_literal))) ;) }) (else_clause "else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }" else (compound_statement "{\n                      bVar4 = (uint)param_3[3] < 2;\n                    }" { (expression_statement "bVar4 = (uint)param_3[3] < 2;" (assignment_expression "bVar4 = (uint)param_3[3] < 2" identifier = (binary_expression "(uint)param_3[3] < 2" (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ])) < number_literal)) ;) }))) (if_statement "if (bVar4) goto LAB_00034520;" if (parenthesized_expression "(bVar4)" ( identifier )) (goto_statement "goto LAB_00034520;" goto statement_identifier ;)) })) (labeled_statement "LAB_000346b8:\n                  iVar11 = 3;" statement_identifier : (expression_statement "iVar11 = 3;" (assignment_expression "iVar11 = 3" identifier = number_literal) ;)) })) }) (else_clause "else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }" else (if_statement "if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }" { (expression_statement "uVar6 = *(uint *)(iVar9 + 0x28) >> 5;" (assignment_expression "uVar6 = *(uint *)(iVar9 + 0x28) >> 5" identifier = (binary_expression "*(uint *)(iVar9 + 0x28) >> 5" (pointer_expression "*(uint *)(iVar9 + 0x28)" * (cast_expression "(uint *)(iVar9 + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) >> number_literal)) ;) (expression_statement "iVar11 = 6;" (assignment_expression "iVar11 = 6" identifier = number_literal) ;) (if_statement "if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }" if (parenthesized_expression "((uVar6 & 0x10000) == 0)" ( (binary_expression "(uVar6 & 0x10000) == 0" (parenthesized_expression "(uVar6 & 0x10000)" ( (binary_expression "uVar6 & 0x10000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }" { (expression_statement "iVar11 = ((uVar6 & 0x40) != 0) + 7;" (assignment_expression "iVar11 = ((uVar6 & 0x40) != 0) + 7" identifier = (binary_expression "((uVar6 & 0x40) != 0) + 7" (parenthesized_expression "((uVar6 & 0x40) != 0)" ( (binary_expression "(uVar6 & 0x40) != 0" (parenthesized_expression "(uVar6 & 0x40)" ( (binary_expression "uVar6 & 0x40" identifier & number_literal) )) != number_literal) )) + number_literal)) ;) })) })))) })) }) (else_clause "else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }" else (compound_statement "{\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }" { (expression_statement "iVar11 = 4;" (assignment_expression "iVar11 = 4" identifier = number_literal) ;) (if_statement "if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }" if (parenthesized_expression "(iVar9 != DAT_000bbe30)" ( (binary_expression "iVar9 != DAT_000bbe30" identifier != identifier) )) (compound_statement "{\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }" { (if_statement "if (iVar1 == iVar9) goto LAB_00034680;" if (parenthesized_expression "(iVar1 == iVar9)" ( (binary_expression "iVar1 == iVar9" identifier == identifier) )) (goto_statement "goto LAB_00034680;" goto statement_identifier ;)) (if_statement "if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }" { (expression_statement "iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;" (assignment_expression "iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4" identifier = (binary_expression "((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4" (parenthesized_expression "((*(byte *)(iVar9 + 0x2a) & 0x20) != 0)" ( (binary_expression "(*(byte *)(iVar9 + 0x2a) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x2a) & 0x20)" ( (binary_expression "*(byte *)(iVar9 + 0x2a) & 0x20" (pointer_expression "*(byte *)(iVar9 + 0x2a)" * (cast_expression "(byte *)(iVar9 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x2a)" ( (binary_expression "iVar9 + 0x2a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) + number_literal)) ;) })) })) }))) })) (labeled_statement "LAB_00034520:\n        param_3[7] = iVar11;" statement_identifier : (expression_statement "param_3[7] = iVar11;" (assignment_expression "param_3[7] = iVar11" (subscript_expression "param_3[7]" identifier [ number_literal ]) = identifier) ;)) (if_statement "if (DAT_000bbfe8 != 0) goto LAB_000345b0;" if (parenthesized_expression "(DAT_000bbfe8 != 0)" ( (binary_expression "DAT_000bbfe8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000345b0;" goto statement_identifier ;)) (labeled_statement "LAB_00034531:\n        local_3c = local_3c + 1;" statement_identifier : (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;)) (expression_statement "param_3 = param_3 + 8;" (assignment_expression "param_3 = param_3 + 8" identifier = (binary_expression "param_3 + 8" identifier + number_literal)) ;) (if_statement "if (param_2 == local_3c) {\n          return 0;\n        }" if (parenthesized_expression "(param_2 == local_3c)" ( (binary_expression "param_2 == local_3c" identifier == identifier) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);" (assignment_expression "iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1)" identifier (argument_list "(DAT_000bbe1c,*param_3,0,0,1)" ( identifier , (pointer_expression "*param_3" * identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if (iVar5 != 0) goto LAB_0003449b;" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0003449b;" goto statement_identifier ;)) (labeled_statement "LAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }" statement_identifier : (if_statement "if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }" if (parenthesized_expression "(4 < (uint)param_3[2])" ( (binary_expression "4 < (uint)param_3[2]" number_literal < (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) )) (compound_statement "{\nLAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }" { (labeled_statement "LAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");" statement_identifier : (expression_statement "FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");" (call_expression "FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols")" identifier (argument_list "("../../ld/plugin.c",0x2b5,"get_symbols")" ( (string_literal ""../../ld/plugin.c"" " string_content ") , number_literal , (string_literal ""get_symbols"" " string_content ") ))) ;)) }))) (expression_statement "uVar6 = 1 << ((byte)param_3[2] & 0x1f);" (assignment_expression "uVar6 = 1 << ((byte)param_3[2] & 0x1f)" identifier = (binary_expression "1 << ((byte)param_3[2] & 0x1f)" number_literal << (parenthesized_expression "((byte)param_3[2] & 0x1f)" ( (binary_expression "(byte)param_3[2] & 0x1f" (cast_expression "(byte)param_3[2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) & number_literal) )))) ;) (if_statement "if ((uVar6 & 0x13) != 0) goto LAB_000346b8;" if (parenthesized_expression "((uVar6 & 0x13) != 0)" ( (binary_expression "(uVar6 & 0x13) != 0" (parenthesized_expression "(uVar6 & 0x13)" ( (binary_expression "uVar6 & 0x13" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000346b8;" goto statement_identifier ;)) (if_statement "if ((uVar6 & 0xc) == 0) goto LAB_00034739;" if (parenthesized_expression "((uVar6 & 0xc) == 0)" ( (binary_expression "(uVar6 & 0xc) == 0" (parenthesized_expression "(uVar6 & 0xc)" ( (binary_expression "uVar6 & 0xc" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00034739;" goto statement_identifier ;)) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" identifier = number_literal) ;) (expression_statement "param_3[7] = 1;" (assignment_expression "param_3[7] = 1" (subscript_expression "param_3[7]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (DAT_000bbfe8 == 0) goto LAB_00034531;" if (parenthesized_expression "(DAT_000bbfe8 == 0)" ( (binary_expression "DAT_000bbfe8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00034531;" goto statement_identifier ;)) (labeled_statement "LAB_000345b0:\n      uVar2 = param_3[3];" statement_identifier : (expression_statement "uVar2 = param_3[3];" (assignment_expression "uVar2 = param_3[3]" identifier = (subscript_expression "param_3[3]" identifier [ number_literal ])) ;)) (expression_statement "uVar8 = param_3[2];" (assignment_expression "uVar8 = param_3[2]" identifier = (subscript_expression "param_3[2]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = *param_3;" (assignment_expression "uVar3 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "param_3 = param_3 + 8;" (assignment_expression "param_3 = param_3 + 8" identifier = (binary_expression "param_3 + 8" identifier + number_literal)) ;) (expression_statement "uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );" (assignment_expression "uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       )" identifier = (call_expression "dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       )" identifier (argument_list "(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       )" ( number_literal , (string_literal ""%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);" (call_expression "FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11)" identifier (argument_list "(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(param_2 != local_3c)" ( (binary_expression "param_2 != local_3c" identifier != identifier) )) ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (pointer_expression * IDENT) , LIT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) )) (compound_statement { (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 = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , 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 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 == (char_literal ' escape_sequence ')) )) (compound_statement { (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) || (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT)) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (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) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) || (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT)) ;) }))) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) + LIT)) ;) })) })))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) + LIT)) ;) })) })) }))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return LIT ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) , LIT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (return_statement return LIT ;) })))
(function_definition "undefined4 __regparm3 FUN_00034410(int *param_1,int param_2,undefined4 *param_3,int param_4)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  bool bVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  char cVar10;\n  int iVar11;\n  int local_3c;\n  \n  iVar1 = *param_1;\n  if (DAT_000bbb68 == 0) {\n    FUN_00031780("../../ld/plugin.c",0x29f);\n  }\n  if (0 < param_2) {\n    local_3c = 0;\n    do {\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    } while (param_2 != local_3c);\n  }\n  return 0;\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00034410(int *param_1,int param_2,undefined4 *param_3,int param_4)" (identifier "FUN_00034410") (parameter_list "(int *param_1,int param_2,undefined4 *param_3,int param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  undefined4 uVar3;\n  bool bVar4;\n  int iVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  int iVar9;\n  char cVar10;\n  int iVar11;\n  int local_3c;\n  \n  iVar1 = *param_1;\n  if (DAT_000bbb68 == 0) {\n    FUN_00031780("../../ld/plugin.c",0x29f);\n  }\n  if (0 < param_2) {\n    local_3c = 0;\n    do {\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    } while (param_2 != local_3c);\n  }\n  return 0;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "bool bVar4;" (primitive_type "bool") (identifier "bVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "char cVar10;" (primitive_type "char") (identifier "cVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (expression_statement "iVar1 = *param_1;" (assignment_expression "iVar1 = *param_1" (identifier "iVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (DAT_000bbb68 == 0) {\n    FUN_00031780("../../ld/plugin.c",0x29f);\n  }" (if "if") (parenthesized_expression "(DAT_000bbb68 == 0)" (( "(") (binary_expression "DAT_000bbb68 == 0" (identifier "DAT_000bbb68") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00031780("../../ld/plugin.c",0x29f);\n  }" ({ "{") (expression_statement "FUN_00031780("../../ld/plugin.c",0x29f);" (call_expression "FUN_00031780("../../ld/plugin.c",0x29f)" (identifier "FUN_00031780") (argument_list "("../../ld/plugin.c",0x29f)" (( "(") (string_literal ""../../ld/plugin.c"" (" """) (string_content "../../ld/plugin.c") (" """)) (, ",") (number_literal "0x29f") () ")"))) (; ";")) (} "}"))) (if_statement "if (0 < param_2) {\n    local_3c = 0;\n    do {\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    } while (param_2 != local_3c);\n  }" (if "if") (parenthesized_expression "(0 < param_2)" (( "(") (binary_expression "0 < param_2" (number_literal "0") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n    local_3c = 0;\n    do {\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    } while (param_2 != local_3c);\n  }" ({ "{") (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    } while (param_2 != local_3c);" (do "do") (compound_statement "{\n      while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }\n      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);\n      if (iVar5 != 0) goto LAB_0003449b;\nLAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }\n      uVar6 = 1 << ((byte)param_3[2] & 0x1f);\n      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;\n      if ((uVar6 & 0xc) == 0) goto LAB_00034739;\n      iVar11 = 1;\n      param_3[7] = 1;\n      if (DAT_000bbfe8 == 0) goto LAB_00034531;\nLAB_000345b0:\n      uVar2 = param_3[3];\n      uVar8 = param_3[2];\n      uVar3 = *param_3;\n      param_3 = param_3 + 8;\n      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );\n      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);\n      local_3c = local_3c + 1;\n    }" ({ "{") (while_statement "while (param_3[2] == 2) {\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }" (while "while") (parenthesized_expression "(param_3[2] == 2)" (( "(") (binary_expression "param_3[2] == 2" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);\n        if (iVar5 == 0) goto LAB_00034575;\nLAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);\n        iVar11 = 1;\n        if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }\nLAB_00034520:\n        param_3[7] = iVar11;\n        if (DAT_000bbfe8 != 0) goto LAB_000345b0;\nLAB_00034531:\n        local_3c = local_3c + 1;\n        param_3 = param_3 + 8;\n        if (param_2 == local_3c) {\n          return 0;\n        }\n      }" ({ "{") (expression_statement "iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);" (assignment_expression "iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1)" (identifier "iVar5") (= "=") (call_expression "bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1)" (identifier "bfd_wrapped_link_hash_lookup") (argument_list "(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1)" (( "(") (identifier "DAT_000bbe30") (, ",") (pointer_expression "&DAT_000bbe00" (& "&") (identifier "DAT_000bbe00")) (, ",") (pointer_expression "*param_3" (* "*") (identifier "param_3")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_00034575;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00034575;" (goto "goto") (statement_identifier "LAB_00034575") (; ";"))) (labeled_statement "LAB_0003449b:\n        cVar10 = *(char *)(iVar5 + 0xc);" (statement_identifier "LAB_0003449b") (: ":") (expression_statement "cVar10 = *(char *)(iVar5 + 0xc);" (assignment_expression "cVar10 = *(char *)(iVar5 + 0xc)" (identifier "cVar10") (= "=") (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")) () ")"))))) (; ";"))) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" (identifier "iVar11") (= "=") (number_literal "1")) (; ";")) (if_statement "if (1 < (byte)(cVar10 - 1U)) {\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(1 < (byte)(cVar10 - 1U))" (( "(") (binary_expression "1 < (byte)(cVar10 - 1U)" (number_literal "1") (< "<") (call_expression "(byte)(cVar10 - 1U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar10 - 1U)" (( "(") (binary_expression "cVar10 - 1U" (identifier "cVar10") (- "-") (number_literal "1U")) () ")")))) () ")")) (compound_statement "{\n          if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }\n          iVar11 = *(int *)(iVar5 + 0x14);\n          if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }\n          iVar9 = *(int *)(iVar11 + 0x94);\n          if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }\n        }" ({ "{") (if_statement "if (2 < (byte)(cVar10 - 3U)) {\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }" (if "if") (parenthesized_expression "(2 < (byte)(cVar10 - 3U))" (( "(") (binary_expression "2 < (byte)(cVar10 - 3U)" (number_literal "2") (< "<") (call_expression "(byte)(cVar10 - 3U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(cVar10 - 3U)" (( "(") (binary_expression "cVar10 - 3U" (identifier "cVar10") (- "-") (number_literal "3U")) () ")")))) () ")")) (compound_statement "{\n            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);\n            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);\n            FUN_00031730(uVar8,uVar2,cVar10);\n            cVar10 = *(char *)(iVar5 + 0xc);\n          }" ({ "{") (expression_statement "uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);" (assignment_expression "uVar2 = *(undefined4 *)(DAT_000bbb68 + 4)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined4 *)(DAT_000bbb68 + 4)" (* "*") (cast_expression "(undefined4 *)(DAT_000bbb68 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000bbb68 + 4)" (( "(") (binary_expression "DAT_000bbb68 + 4" (identifier "DAT_000bbb68") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);" (assignment_expression "uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5)" (identifier "uVar8") (= "=") (call_expression "dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: %s: plugin symbol table corrupt (sym type %d)\n"" (" """) (string_content "%F%P: %s: plugin symbol table corrupt (sym type %d)") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031730(uVar8,uVar2,cVar10);" (call_expression "FUN_00031730(uVar8,uVar2,cVar10)" (identifier "FUN_00031730") (argument_list "(uVar8,uVar2,cVar10)" (( "(") (identifier "uVar8") (, ",") (identifier "uVar2") (, ",") (identifier "cVar10") () ")"))) (; ";")) (expression_statement "cVar10 = *(char *)(iVar5 + 0xc);" (assignment_expression "cVar10 = *(char *)(iVar5 + 0xc)" (identifier "cVar10") (= "=") (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")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar11 = *(int *)(iVar5 + 0x14);" (assignment_expression "iVar11 = *(int *)(iVar5 + 0x14)" (identifier "iVar11") (= "=") (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")) () ")"))))) (; ";")) (if_statement "if (cVar10 == '\x05') {\n            iVar11 = *(int *)(iVar11 + 4);\n          }" (if "if") (parenthesized_expression "(cVar10 == '\x05')" (( "(") (binary_expression "cVar10 == '\x05'" (identifier "cVar10") (== "==") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (compound_statement "{\n            iVar11 = *(int *)(iVar11 + 4);\n          }" ({ "{") (expression_statement "iVar11 = *(int *)(iVar11 + 4);" (assignment_expression "iVar11 = *(int *)(iVar11 + 4)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar9 = *(int *)(iVar11 + 0x94);" (assignment_expression "iVar9 = *(int *)(iVar11 + 0x94)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar11 + 0x94)" (* "*") (cast_expression "(int *)(iVar11 + 0x94)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x94)" (( "(") (binary_expression "iVar11 + 0x94" (identifier "iVar11") (+ "+") (number_literal "0x94")) () ")"))))) (; ";")) (if_statement "if (param_3[2] - 2 < 3) {\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }\n          else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(param_3[2] - 2 < 3)" (( "(") (binary_expression "param_3[2] - 2 < 3" (binary_expression "param_3[2] - 2" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (- "-") (number_literal "2")) (< "<") (number_literal "3")) () ")")) (compound_statement "{\n            iVar11 = 7;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }\n          }" ({ "{") (expression_statement "iVar11 = 7;" (assignment_expression "iVar11 = 7" (identifier "iVar11") (= "=") (number_literal "7")) (; ";")) (if_statement "if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }" (if "if") (parenthesized_expression "(iVar9 != DAT_000bbe30)" (( "(") (binary_expression "iVar9 != DAT_000bbe30" (identifier "iVar9") (!= "!=") (identifier "DAT_000bbe30")) () ")")) (compound_statement "{\n              if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }\n            }" ({ "{") (if_statement "if (iVar1 == iVar9) {\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }\n              else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }" (if "if") (parenthesized_expression "(iVar1 == iVar9)" (( "(") (binary_expression "iVar1 == iVar9" (identifier "iVar1") (== "==") (identifier "iVar9")) () ")")) (compound_statement "{\nLAB_00034680:\n                iVar11 = 2;\n                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }\n              }" ({ "{") (labeled_statement "LAB_00034680:\n                iVar11 = 2;" (statement_identifier "LAB_00034680") (: ":") (expression_statement "iVar11 = 2;" (assignment_expression "iVar11 = 2" (identifier "iVar11") (= "=") (number_literal "2")) (; ";"))) (if_statement "if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }" (if "if") (parenthesized_expression "(((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2))" (( "(") (binary_expression "((*(byte *)(iVar5 + 0xd) & 1) == 0) &&\n                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)" (parenthesized_expression "((*(byte *)(iVar5 + 0xd) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(iVar5 + 0xd) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0xd) & 1)" (( "(") (binary_expression "*(byte *)(iVar5 + 0xd) & 1" (pointer_expression "*(byte *)(iVar5 + 0xd)" (* "*") (cast_expression "(byte *)(iVar5 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xd)" (( "(") (binary_expression "iVar5 + 0xd" (identifier "iVar5") (+ "+") (number_literal "0xd")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)" (( "(") (comma_expression "iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2" (assignment_expression "iVar11 = param_4" (identifier "iVar11") (= "=") (identifier "param_4")) (, ",") (binary_expression "((byte)DAT_000bbe00 & 3) != 2" (parenthesized_expression "((byte)DAT_000bbe00 & 3)" (( "(") (binary_expression "(byte)DAT_000bbe00 & 3" (cast_expression "(byte)DAT_000bbe00" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bbe00")) (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "2"))) () ")"))) () ")")) (compound_statement "{\n                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }\nLAB_000346b8:\n                  iVar11 = 3;\n                }" ({ "{") (if_statement "if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)) {\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }" (if "if") (parenthesized_expression "((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0))" (( "(") (binary_expression "(((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)) &&\n                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)" (parenthesized_expression "(((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3))" (( "(") (binary_expression "((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||\n                      (((byte)DAT_000bbe00 & 3) == 3)" (parenthesized_expression "((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0" (binary_expression "(*(byte *)(iVar5 + 0xd) & 2) != 0" (parenthesized_expression "(*(byte *)(iVar5 + 0xd) & 2)" (( "(") (binary_expression "*(byte *)(iVar5 + 0xd) & 2" (pointer_expression "*(byte *)(iVar5 + 0xd)" (* "*") (cast_expression "(byte *)(iVar5 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xd)" (( "(") (binary_expression "iVar5 + 0xd" (identifier "iVar5") (+ "+") (number_literal "0xd")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "((byte)DAT_000bbe00 & 0x10) != 0" (parenthesized_expression "((byte)DAT_000bbe00 & 0x10)" (( "(") (binary_expression "(byte)DAT_000bbe00 & 0x10" (cast_expression "(byte)DAT_000bbe00" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bbe00")) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0"))) () ")")) (|| "||") (parenthesized_expression "(((byte)DAT_000bbe00 & 3) == 3)" (( "(") (binary_expression "((byte)DAT_000bbe00 & 3) == 3" (parenthesized_expression "((byte)DAT_000bbe00 & 3)" (( "(") (binary_expression "(byte)DAT_000bbe00 & 3" (cast_expression "(byte)DAT_000bbe00" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000bbe00")) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "3")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0)" (( "(") (comma_expression "iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),\n                     iVar9 == 0" (assignment_expression "iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4))" (identifier "iVar9") (= "=") (call_expression "bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4))" (identifier "bfd_hide_sym_by_version") (argument_list "(DAT_000bbe84,*(undefined4 *)(iVar5 + 4))" (( "(") (identifier "DAT_000bbe84") (, ",") (pointer_expression "*(undefined4 *)(iVar5 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")")))) () ")")))) (, ",") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }\n                    if (bVar4) goto LAB_00034520;\n                  }" ({ "{") (if_statement "if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }\n                    else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5)" (( "(") (binary_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" (* "*") (cast_expression "(int *)(*(int *)(DAT_000bbe30 + 4) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_000bbe30 + 4) + 4)" (( "(") (binary_expression "*(int *)(DAT_000bbe30 + 4) + 4" (pointer_expression "*(int *)(DAT_000bbe30 + 4)" (* "*") (cast_expression "(int *)(DAT_000bbe30 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000bbe30 + 4)" (( "(") (binary_expression "DAT_000bbe30 + 4" (identifier "DAT_000bbe30") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "5")) () ")")) (compound_statement "{\n                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;\n                    }" ({ "{") (expression_statement "bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3;" (assignment_expression "bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3" (identifier "bVar4") (= "=") (binary_expression "(*(byte *)(iVar5 + 0x31) & 3) == 0 ||\n                              (*(byte *)(iVar5 + 0x31) & 3) == 3" (binary_expression "(*(byte *)(iVar5 + 0x31) & 3) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x31) & 3)" (( "(") (binary_expression "*(byte *)(iVar5 + 0x31) & 3" (pointer_expression "*(byte *)(iVar5 + 0x31)" (* "*") (cast_expression "(byte *)(iVar5 + 0x31)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x31)" (( "(") (binary_expression "iVar5 + 0x31" (identifier "iVar5") (+ "+") (number_literal "0x31")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) (|| "||") (binary_expression "(*(byte *)(iVar5 + 0x31) & 3) == 3" (parenthesized_expression "(*(byte *)(iVar5 + 0x31) & 3)" (( "(") (binary_expression "*(byte *)(iVar5 + 0x31) & 3" (pointer_expression "*(byte *)(iVar5 + 0x31)" (* "*") (cast_expression "(byte *)(iVar5 + 0x31)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x31)" (( "(") (binary_expression "iVar5 + 0x31" (identifier "iVar5") (+ "+") (number_literal "0x31")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "3")))) (; ";")) (} "}")) (else_clause "else {\n                      bVar4 = (uint)param_3[3] < 2;\n                    }" (else "else") (compound_statement "{\n                      bVar4 = (uint)param_3[3] < 2;\n                    }" ({ "{") (expression_statement "bVar4 = (uint)param_3[3] < 2;" (assignment_expression "bVar4 = (uint)param_3[3] < 2" (identifier "bVar4") (= "=") (binary_expression "(uint)param_3[3] < 2" (cast_expression "(uint)param_3[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]"))) (< "<") (number_literal "2"))) (; ";")) (} "}")))) (if_statement "if (bVar4) goto LAB_00034520;" (if "if") (parenthesized_expression "(bVar4)" (( "(") (identifier "bVar4") () ")")) (goto_statement "goto LAB_00034520;" (goto "goto") (statement_identifier "LAB_00034520") (; ";"))) (} "}"))) (labeled_statement "LAB_000346b8:\n                  iVar11 = 3;" (statement_identifier "LAB_000346b8") (: ":") (expression_statement "iVar11 = 3;" (assignment_expression "iVar11 = 3" (identifier "iVar11") (= "=") (number_literal "3")) (; ";"))) (} "}"))) (} "}")) (else_clause "else if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }" (else "else") (if_statement "if (iVar9 != 0) {\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;\n                iVar11 = 6;\n                if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }\n              }" ({ "{") (expression_statement "uVar6 = *(uint *)(iVar9 + 0x28) >> 5;" (assignment_expression "uVar6 = *(uint *)(iVar9 + 0x28) >> 5" (identifier "uVar6") (= "=") (binary_expression "*(uint *)(iVar9 + 0x28) >> 5" (pointer_expression "*(uint *)(iVar9 + 0x28)" (* "*") (cast_expression "(uint *)(iVar9 + 0x28)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "iVar11 = 6;" (assignment_expression "iVar11 = 6" (identifier "iVar11") (= "=") (number_literal "6")) (; ";")) (if_statement "if ((uVar6 & 0x10000) == 0) {\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }" (if "if") (parenthesized_expression "((uVar6 & 0x10000) == 0)" (( "(") (binary_expression "(uVar6 & 0x10000) == 0" (parenthesized_expression "(uVar6 & 0x10000)" (( "(") (binary_expression "uVar6 & 0x10000" (identifier "uVar6") (& "&") (number_literal "0x10000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar11 = ((uVar6 & 0x40) != 0) + 7;\n                }" ({ "{") (expression_statement "iVar11 = ((uVar6 & 0x40) != 0) + 7;" (assignment_expression "iVar11 = ((uVar6 & 0x40) != 0) + 7" (identifier "iVar11") (= "=") (binary_expression "((uVar6 & 0x40) != 0) + 7" (parenthesized_expression "((uVar6 & 0x40) != 0)" (( "(") (binary_expression "(uVar6 & 0x40) != 0" (parenthesized_expression "(uVar6 & 0x40)" (( "(") (binary_expression "uVar6 & 0x40" (identifier "uVar6") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (+ "+") (number_literal "7"))) (; ";")) (} "}"))) (} "}"))))) (} "}"))) (} "}")) (else_clause "else {\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }" (else "else") (compound_statement "{\n            iVar11 = 4;\n            if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }\n          }" ({ "{") (expression_statement "iVar11 = 4;" (assignment_expression "iVar11 = 4" (identifier "iVar11") (= "=") (number_literal "4")) (; ";")) (if_statement "if (iVar9 != DAT_000bbe30) {\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }" (if "if") (parenthesized_expression "(iVar9 != DAT_000bbe30)" (( "(") (binary_expression "iVar9 != DAT_000bbe30" (identifier "iVar9") (!= "!=") (identifier "DAT_000bbe30")) () ")")) (compound_statement "{\n              if (iVar1 == iVar9) goto LAB_00034680;\n              if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }\n            }" ({ "{") (if_statement "if (iVar1 == iVar9) goto LAB_00034680;" (if "if") (parenthesized_expression "(iVar1 == iVar9)" (( "(") (binary_expression "iVar1 == iVar9" (identifier "iVar1") (== "==") (identifier "iVar9")) () ")")) (goto_statement "goto LAB_00034680;" (goto "goto") (statement_identifier "LAB_00034680") (; ";"))) (if_statement "if (iVar9 != 0) {\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;\n              }" ({ "{") (expression_statement "iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;" (assignment_expression "iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4" (identifier "iVar11") (= "=") (binary_expression "((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4" (parenthesized_expression "((*(byte *)(iVar9 + 0x2a) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)(iVar9 + 0x2a) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x2a) & 0x20)" (( "(") (binary_expression "*(byte *)(iVar9 + 0x2a) & 0x20" (pointer_expression "*(byte *)(iVar9 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar9 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x2a)" (( "(") (binary_expression "iVar9 + 0x2a" (identifier "iVar9") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (+ "+") (number_literal "4"))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (} "}"))) (labeled_statement "LAB_00034520:\n        param_3[7] = iVar11;" (statement_identifier "LAB_00034520") (: ":") (expression_statement "param_3[7] = iVar11;" (assignment_expression "param_3[7] = iVar11" (subscript_expression "param_3[7]" (identifier "param_3") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "iVar11")) (; ";"))) (if_statement "if (DAT_000bbfe8 != 0) goto LAB_000345b0;" (if "if") (parenthesized_expression "(DAT_000bbfe8 != 0)" (( "(") (binary_expression "DAT_000bbfe8 != 0" (identifier "DAT_000bbfe8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000345b0;" (goto "goto") (statement_identifier "LAB_000345b0") (; ";"))) (labeled_statement "LAB_00034531:\n        local_3c = local_3c + 1;" (statement_identifier "LAB_00034531") (: ":") (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" (identifier "local_3c") (= "=") (binary_expression "local_3c + 1" (identifier "local_3c") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "param_3 = param_3 + 8;" (assignment_expression "param_3 = param_3 + 8" (identifier "param_3") (= "=") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8"))) (; ";")) (if_statement "if (param_2 == local_3c) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(param_2 == local_3c)" (( "(") (binary_expression "param_2 == local_3c" (identifier "param_2") (== "==") (identifier "local_3c")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);" (assignment_expression "iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1)" (identifier "iVar5") (= "=") (call_expression "bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1)" (identifier "bfd_link_hash_lookup") (argument_list "(DAT_000bbe1c,*param_3,0,0,1)" (( "(") (identifier "DAT_000bbe1c") (, ",") (pointer_expression "*param_3" (* "*") (identifier "param_3")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if (iVar5 != 0) goto LAB_0003449b;" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003449b;" (goto "goto") (statement_identifier "LAB_0003449b") (; ";"))) (labeled_statement "LAB_00034575:\n      if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }" (statement_identifier "LAB_00034575") (: ":") (if_statement "if (4 < (uint)param_3[2]) {\nLAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }" (if "if") (parenthesized_expression "(4 < (uint)param_3[2])" (( "(") (binary_expression "4 < (uint)param_3[2]" (number_literal "4") (< "<") (cast_expression "(uint)param_3[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\nLAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");\n      }" ({ "{") (labeled_statement "LAB_00034739:\n                    \n        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");" (statement_identifier "LAB_00034739") (: ":") (expression_statement "FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");" (call_expression "FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols")" (identifier "FUN_00030840") (argument_list "("../../ld/plugin.c",0x2b5,"get_symbols")" (( "(") (string_literal ""../../ld/plugin.c"" (" """) (string_content "../../ld/plugin.c") (" """)) (, ",") (number_literal "0x2b5") (, ",") (string_literal ""get_symbols"" (" """) (string_content "get_symbols") (" """)) () ")"))) (; ";"))) (} "}")))) (expression_statement "uVar6 = 1 << ((byte)param_3[2] & 0x1f);" (assignment_expression "uVar6 = 1 << ((byte)param_3[2] & 0x1f)" (identifier "uVar6") (= "=") (binary_expression "1 << ((byte)param_3[2] & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)param_3[2] & 0x1f)" (( "(") (binary_expression "(byte)param_3[2] & 0x1f" (cast_expression "(byte)param_3[2]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if ((uVar6 & 0x13) != 0) goto LAB_000346b8;" (if "if") (parenthesized_expression "((uVar6 & 0x13) != 0)" (( "(") (binary_expression "(uVar6 & 0x13) != 0" (parenthesized_expression "(uVar6 & 0x13)" (( "(") (binary_expression "uVar6 & 0x13" (identifier "uVar6") (& "&") (number_literal "0x13")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000346b8;" (goto "goto") (statement_identifier "LAB_000346b8") (; ";"))) (if_statement "if ((uVar6 & 0xc) == 0) goto LAB_00034739;" (if "if") (parenthesized_expression "((uVar6 & 0xc) == 0)" (( "(") (binary_expression "(uVar6 & 0xc) == 0" (parenthesized_expression "(uVar6 & 0xc)" (( "(") (binary_expression "uVar6 & 0xc" (identifier "uVar6") (& "&") (number_literal "0xc")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00034739;" (goto "goto") (statement_identifier "LAB_00034739") (; ";"))) (expression_statement "iVar11 = 1;" (assignment_expression "iVar11 = 1" (identifier "iVar11") (= "=") (number_literal "1")) (; ";")) (expression_statement "param_3[7] = 1;" (assignment_expression "param_3[7] = 1" (subscript_expression "param_3[7]" (identifier "param_3") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "1")) (; ";")) (if_statement "if (DAT_000bbfe8 == 0) goto LAB_00034531;" (if "if") (parenthesized_expression "(DAT_000bbfe8 == 0)" (( "(") (binary_expression "DAT_000bbfe8 == 0" (identifier "DAT_000bbfe8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00034531;" (goto "goto") (statement_identifier "LAB_00034531") (; ";"))) (labeled_statement "LAB_000345b0:\n      uVar2 = param_3[3];" (statement_identifier "LAB_000345b0") (: ":") (expression_statement "uVar2 = param_3[3];" (assignment_expression "uVar2 = param_3[3]" (identifier "uVar2") (= "=") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]"))) (; ";"))) (expression_statement "uVar8 = param_3[2];" (assignment_expression "uVar8 = param_3[2]" (identifier "uVar8") (= "=") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar3 = *param_3;" (assignment_expression "uVar3 = *param_3" (identifier "uVar3") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "param_3 = param_3 + 8;" (assignment_expression "param_3 = param_3 + 8" (identifier "param_3") (= "=") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       );" (assignment_expression "uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       )" (identifier "uVar7") (= "=") (call_expression "dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       )" (identifier "dcgettext") (argument_list "(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5\n                       )" (( "(") (number_literal "0") (, ",") (string_literal ""%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n"" (" """) (string_content "%P: %pB: symbol `%s") (escape_sequence "\'") (string_content " definition: %d, visibility: %d, resolution: %d") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);" (call_expression "FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11)" (identifier "FUN_00031730") (argument_list "(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11)" (( "(") (identifier "uVar7") (, ",") (identifier "iVar1") (, ",") (identifier "uVar3") (, ",") (identifier "uVar8") (, ",") (identifier "uVar2") (, ",") (identifier "iVar11") () ")"))) (; ";")) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" (identifier "local_3c") (= "=") (binary_expression "local_3c + 1" (identifier "local_3c") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_2 != local_3c)" (( "(") (binary_expression "param_2 != local_3c" (identifier "param_2") (!= "!=") (identifier "local_3c")) () ")")) (; ";")) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

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

type_1 __regparm3
function_1(void *handle,int var_3,type_2 *var_18,int def_ironly_exp)

{
  type_3 *var_11;
  type_3 *var_10;
  char *pcVar3;
  bool bVar4;
  type_4 *input;
  int var_5;
  type_5 var_15;
  char *pcVar7;
  int var_13;
  char var_6;
  int var_9;
  int var_17;
  
                    /* WARNING: Load size is inaccurate */
  var_11 = *handle;
  if (var_1 == (type_6 *)0x0) {
    var_2("../../ld/plugin.c",0x29f);
  }
  if (0 < var_3) {
    var_17 = 0;
    do {
      while (var_18->def == 2) {
        var_5 = var_4(link_info.output_bfd,&link_info,var_18->name,0,0,1);
        if (var_5 == 0) goto LAB_00034575;
LAB_0003449b:
        var_6 = *(char *)(var_5 + 0xc);
        var_9 = 1;
        if (1 < (type_7)(var_6 - 1U)) {
          if (2 < (type_7)(var_6 - 3U)) {
            pcVar3 = var_1->name;
            pcVar7 = (char *)var_7(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);
            var_8(pcVar7,pcVar3,var_6);
            var_6 = *(char *)(var_5 + 0xc);
          }
          var_9 = *(int *)(var_5 + 0x14);
          if (var_6 == '\x05') {
            var_9 = *(int *)(var_9 + 4);
          }
          var_10 = *(type_3 **)(var_9 + 0x94);
          if (var_18->def - 2U < 3) {
            var_9 = 7;
            if (var_10 != link_info.output_bfd) {
              if (var_11 == var_10) {
LAB_00034680:
                var_9 = 2;
                if (((*(type_7 *)(var_5 + 0xd) & 1) == 0) &&
                   (var_9 = def_ironly_exp, (link_info._0_1_ & 3) != 2)) {
                  if ((((*(type_7 *)(var_5 + 0xd) & 2) != 0 || (link_info._0_1_ & 0x10) != 0) ||
                      ((link_info._0_1_ & 3) == 3)) &&
                     (var_13 = var_12
                                        (link_info.version_info,*(type_8 *)(var_5 + 4)),
                     var_13 == 0)) {
                    if ((link_info.output_bfd)->xvec->flavour == var_14) {
                      bVar4 = (*(type_7 *)(var_5 + 0x31) & 3) == 0 ||
                              (*(type_7 *)(var_5 + 0x31) & 3) == 3;
                    }
                    else {
                      bVar4 = (type_5)var_18->visibility < 2;
                    }
                    if (bVar4) goto LAB_00034520;
                  }
LAB_000346b8:
                  var_9 = 3;
                }
              }
              else if (var_10 != (type_3 *)0x0) {
                var_15 = *(type_5 *)&var_10->field_0x28 >> 5;
                var_9 = 6;
                if ((var_15 & 0x10000) == 0) {
                  var_9 = ((var_15 & 0x40) != 0) + 7;
                }
              }
            }
          }
          else {
            var_9 = 4;
            if (var_10 != link_info.output_bfd) {
              if (var_11 == var_10) goto LAB_00034680;
              if (var_10 != (type_3 *)0x0) {
                var_9 = ((var_10->field_0x2a & 0x20) != 0) + 4;
              }
            }
          }
        }
LAB_00034520:
        var_18->resolution = var_9;
        if (var_16 != 0) goto LAB_000345b0;
LAB_00034531:
        var_17 = var_17 + 1;
        var_18 = var_18 + 1;
        if (var_3 == var_17) {
          return LDPS_OK;
        }
      }
      var_5 = var_19(link_info.hash,var_18->name,0,0,1);
      if (var_5 != 0) goto LAB_0003449b;
LAB_00034575:
      if (4 < (type_5)var_18->def) {
LAB_00034739:
                    /* WARNING: Subroutine does not return */
        var_20("../../ld/plugin.c",0x2b5,"get_symbols");
      }
      var_15 = 1 << ((type_7)var_18->def & 0x1f);
      if ((var_15 & 0x13) != 0) goto LAB_000346b8;
      if ((var_15 & 0xc) == 0) goto LAB_00034739;
      var_9 = 1;
      var_18->resolution = 1;
      if (var_16 == 0) goto LAB_00034531;
LAB_000345b0:
      var_5 = var_18->visibility;
      var_13 = var_18->def;
      pcVar3 = var_18->name;
      var_18 = var_18 + 1;
      pcVar7 = (char *)var_7(0,
                                 "%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n"
                                 ,5);
      var_8(pcVar7,var_11,pcVar3,var_13,var_5,var_9);
      var_17 = var_17 + 1;
    } while (var_3 != var_17);
  }
  return LDPS_OK;
}


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

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

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

{
  int iVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  bool bVar4;
  int iVar5;
  uint uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  int iVar9;
  char cVar10;
  int iVar11;
  int local_3c;
  
  iVar1 = *param_1;
  if (DAT_000bbb68 == 0) {
    FUN_00031780("../../ld/plugin.c",0x29f);
  }
  if (0 < param_2) {
    local_3c = 0;
    do {
      while (param_3[2] == 2) {
        iVar5 = bfd_wrapped_link_hash_lookup(DAT_000bbe30,&DAT_000bbe00,*param_3,0,0,1);
        if (iVar5 == 0) goto LAB_00034575;
LAB_0003449b:
        cVar10 = *(char *)(iVar5 + 0xc);
        iVar11 = 1;
        if (1 < (byte)(cVar10 - 1U)) {
          if (2 < (byte)(cVar10 - 3U)) {
            uVar2 = *(undefined4 *)(DAT_000bbb68 + 4);
            uVar8 = dcgettext(0,"%F%P: %s: plugin symbol table corrupt (sym type %d)\n",5);
            FUN_00031730(uVar8,uVar2,cVar10);
            cVar10 = *(char *)(iVar5 + 0xc);
          }
          iVar11 = *(int *)(iVar5 + 0x14);
          if (cVar10 == '\x05') {
            iVar11 = *(int *)(iVar11 + 4);
          }
          iVar9 = *(int *)(iVar11 + 0x94);
          if (param_3[2] - 2 < 3) {
            iVar11 = 7;
            if (iVar9 != DAT_000bbe30) {
              if (iVar1 == iVar9) {
LAB_00034680:
                iVar11 = 2;
                if (((*(byte *)(iVar5 + 0xd) & 1) == 0) &&
                   (iVar11 = param_4, ((byte)DAT_000bbe00 & 3) != 2)) {
                  if ((((*(byte *)(iVar5 + 0xd) & 2) != 0 || ((byte)DAT_000bbe00 & 0x10) != 0) ||
                      (((byte)DAT_000bbe00 & 3) == 3)) &&
                     (iVar9 = bfd_hide_sym_by_version(DAT_000bbe84,*(undefined4 *)(iVar5 + 4)),
                     iVar9 == 0)) {
                    if (*(int *)(*(int *)(DAT_000bbe30 + 4) + 4) == 5) {
                      bVar4 = (*(byte *)(iVar5 + 0x31) & 3) == 0 ||
                              (*(byte *)(iVar5 + 0x31) & 3) == 3;
                    }
                    else {
                      bVar4 = (uint)param_3[3] < 2;
                    }
                    if (bVar4) goto LAB_00034520;
                  }
LAB_000346b8:
                  iVar11 = 3;
                }
              }
              else if (iVar9 != 0) {
                uVar6 = *(uint *)(iVar9 + 0x28) >> 5;
                iVar11 = 6;
                if ((uVar6 & 0x10000) == 0) {
                  iVar11 = ((uVar6 & 0x40) != 0) + 7;
                }
              }
            }
          }
          else {
            iVar11 = 4;
            if (iVar9 != DAT_000bbe30) {
              if (iVar1 == iVar9) goto LAB_00034680;
              if (iVar9 != 0) {
                iVar11 = ((*(byte *)(iVar9 + 0x2a) & 0x20) != 0) + 4;
              }
            }
          }
        }
LAB_00034520:
        param_3[7] = iVar11;
        if (DAT_000bbfe8 != 0) goto LAB_000345b0;
LAB_00034531:
        local_3c = local_3c + 1;
        param_3 = param_3 + 8;
        if (param_2 == local_3c) {
          return 0;
        }
      }
      iVar5 = bfd_link_hash_lookup(DAT_000bbe1c,*param_3,0,0,1);
      if (iVar5 != 0) goto LAB_0003449b;
LAB_00034575:
      if (4 < (uint)param_3[2]) {
LAB_00034739:
                    /* WARNING: Subroutine does not return */
        FUN_00030840("../../ld/plugin.c",0x2b5,"get_symbols");
      }
      uVar6 = 1 << ((byte)param_3[2] & 0x1f);
      if ((uVar6 & 0x13) != 0) goto LAB_000346b8;
      if ((uVar6 & 0xc) == 0) goto LAB_00034739;
      iVar11 = 1;
      param_3[7] = 1;
      if (DAT_000bbfe8 == 0) goto LAB_00034531;
LAB_000345b0:
      uVar2 = param_3[3];
      uVar8 = param_3[2];
      uVar3 = *param_3;
      param_3 = param_3 + 8;
      uVar7 = dcgettext(0,"%P: %pB: symbol `%s\' definition: %d, visibility: %d, resolution: %d\n",5
                       );
      FUN_00031730(uVar7,iVar1,uVar3,uVar8,uVar2,iVar11);
      local_3c = local_3c + 1;
    } while (param_2 != local_3c);
  }
  return 0;
}

