
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void plugin_load_plugins(void)

{
  size_t *psVar1;
  plugin_arg_t *ppVar2;
  char *pcVar3;
  undefined4 *puVar4;
  bfd_link_callbacks *pbVar5;
  ld_plugin_tag lVar6;
  uint uVar7;
  int iVar8;
  plugin *ppVar9;
  undefined4 *puVar10;
  code *pcVar11;
  char *pcVar12;
  undefined8 uVar13;
  ulong uVar14;
  int *piVar15;
  int *piVar16;
  ld_plugin_tag *plVar17;
  
  if (plugins_list == (plugin_t *)0x0) {
    return;
  }
  uVar14 = 0;
  ppVar9 = plugins_list;
  do {
    psVar1 = &ppVar9->n_args;
    ppVar9 = ppVar9->next;
    if (uVar14 < *psVar1) {
      uVar14 = *psVar1 & 0xffffffff;
    }
  } while (ppVar9 != (plugin *)0x0);
  plVar17 = tv_header_tags + 1;
  puVar10 = (undefined4 *)xmalloc(((ulong)((int)uVar14 + 1) + 0x11) * 0x10);
  piVar15 = puVar10 + 2;
  lVar6 = LDPT_MESSAGE;
  *puVar10 = 0xb;
  do {
    switch(lVar6) {
    case LDPT_NULL:
    case LDPT_GOLD_VERSION:
    case LDPT_OPTION:
    case LDPT_GET_INPUT_SECTION_COUNT:
    case LDPT_GET_INPUT_SECTION_TYPE:
    case LDPT_GET_INPUT_SECTION_NAME:
    case LDPT_GET_INPUT_SECTION_CONTENTS:
    case LDPT_UPDATE_SECTION_ORDER:
    case LDPT_ALLOW_SECTION_ORDERING:
      do {
        info_assert("../../ld/plugin.c",0x3b8);
        piVar16 = piVar15;
        if (plVar17 == (ld_plugin_tag *)&DAT_00142404) goto LAB_00128828;
LAB_001287e9:
        piVar15 = piVar16 + 4;
        lVar6 = *plVar17;
        plVar17 = plVar17 + 1;
        piVar16[2] = lVar6;
      } while (LDPT_GET_SYMBOLS_V2 < lVar6);
      break;
    case LDPT_API_VERSION:
      *piVar15 = 1;
LAB_001287e0:
      piVar16 = piVar15;
      if (plVar17 != (ld_plugin_tag *)&DAT_00142404) goto LAB_001287e9;
LAB_00128828:
      pbVar5 = link_info.callbacks;
      for (ppVar9 = plugins_list; ppVar9 != (plugin_t *)0x0; ppVar9 = ppVar9->next) {
        link_info.callbacks = pbVar5;
        pcVar11 = (code *)dlsym(ppVar9->dlhandle,"onload");
        if ((pcVar11 == (code *)0x0) &&
           (pcVar11 = (code *)dlsym(ppVar9->dlhandle,"_onload"), pcVar11 == (code *)0x0)) {
          uVar13 = dlerror();
          pcVar3 = ppVar9->name;
          pcVar12 = (char *)dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);
          einfo(pcVar12,pcVar3,uVar13);
        }
        ppVar2 = ppVar9->args;
        puVar4 = puVar10 + 0x44;
        while (ppVar2 != (plugin_arg_t *)0x0) {
          pcVar3 = ppVar2->arg;
          ppVar2 = ppVar2->next;
          *puVar4 = 4;
          *(char **)(puVar4 + 2) = pcVar3;
          puVar4 = puVar4 + 4;
        }
        *puVar4 = 0;
        puVar4[2] = 0;
        called_plugin = ppVar9;
        uVar7 = (*pcVar11)(puVar10);
        called_plugin = (plugin_t *)0x0;
        if (uVar7 != 0) {
          pcVar3 = ppVar9->name;
          pcVar12 = (char *)dcgettext(0,"%F%P: %s: plugin error: %d\n",5);
          einfo(pcVar12,pcVar3,(ulong)uVar7);
        }
        pbVar5 = link_info.callbacks;
      }
      uVar7 = (uint)(byte)link_info._1_1_;
      link_info._1_1_ = link_info._1_1_ | 3;
      orig_notice_all = uVar7 & 1;
      plugin_callbacks.add_archive_element = pbVar5->add_archive_element;
      plugin_callbacks.multiple_definition = pbVar5->multiple_definition;
      plugin_callbacks.multiple_common = pbVar5->multiple_common;
      plugin_callbacks.add_to_set = pbVar5->add_to_set;
      plugin_callbacks.constructor = pbVar5->constructor;
      plugin_callbacks.warning = pbVar5->warning;
      plugin_callbacks.undefined_symbol = pbVar5->undefined_symbol;
      plugin_callbacks.reloc_overflow = pbVar5->reloc_overflow;
      plugin_callbacks.reloc_dangerous = pbVar5->reloc_dangerous;
      plugin_callbacks.unattached_reloc = pbVar5->unattached_reloc;
      plugin_callbacks.einfo = pbVar5->einfo;
      plugin_callbacks.info = pbVar5->info;
      plugin_callbacks.minfo = pbVar5->minfo;
      plugin_callbacks.override_segment_assignment = pbVar5->override_segment_assignment;
      plugin_callbacks.notice = plugin_notice;
      link_info.callbacks = &plugin_callbacks;
      orig_callbacks = pbVar5;
      register_ld_plugin_object_p(plugin_object_p);
      iVar8 = getpagesize();
      plugin_pagesize = (long)iVar8;
      return;
    case LDPT_LINKER_OUTPUT:
      iVar8 = 0;
      if (((link_info._0_1_ & 3) != 2) && (iVar8 = 1, (link_info._0_1_ & 3) != 0)) {
        iVar8 = ((link_info._0_1_ & 3) == 1) + 2;
      }
      *piVar15 = iVar8;
      goto LAB_001287e0;
    case LDPT_REGISTER_CLAIM_FILE_HOOK:
      *(code **)piVar15 = register_claim_file;
      goto LAB_001287e0;
    case LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK:
      *(code **)piVar15 = register_all_symbols_read;
      goto LAB_001287e0;
    case LDPT_REGISTER_CLEANUP_HOOK:
      *(code **)piVar15 = register_cleanup;
      goto LAB_001287e0;
    case LDPT_ADD_SYMBOLS:
      *(code **)piVar15 = add_symbols;
      goto LAB_001287e0;
    case LDPT_GET_SYMBOLS:
      *(code **)piVar15 = get_symbols_v1;
      goto LAB_001287e0;
    case LDPT_ADD_INPUT_FILE:
      *(code **)piVar15 = add_input_file;
      goto LAB_001287e0;
    default:
      *(code **)piVar15 = message;
      goto LAB_001287e0;
    case LDPT_GET_INPUT_FILE:
      *(code **)piVar15 = get_input_file;
      goto LAB_001287e0;
    case LDPT_RELEASE_INPUT_FILE:
      *(code **)piVar15 = release_input_file;
      goto LAB_001287e0;
    case LDPT_ADD_INPUT_LIBRARY:
      *(code **)piVar15 = add_input_library;
      goto LAB_001287e0;
    case LDPT_OUTPUT_NAME:
      *(char **)piVar15 = output_filename;
      goto LAB_001287e0;
    case LDPT_SET_EXTRA_LIBRARY_PATH:
      *(code **)piVar15 = set_extra_library_path;
      goto LAB_001287e0;
    case LDPT_GNU_LD_VERSION:
      *piVar15 = 0xe7;
      goto LAB_001287e0;
    case LDPT_GET_VIEW:
      *(code **)piVar15 = get_view;
      goto LAB_001287e0;
    case LDPT_GET_SYMBOLS_V2:
      *(code **)piVar15 = get_symbols_v2;
      goto LAB_001287e0;
    }
  } while( true );
}



/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_00128740(void)

{
  ulong *puVar1;
  undefined8 *puVar2;
  long lVar3;
  undefined4 *puVar4;
  int iVar5;
  long *plVar6;
  undefined4 *puVar7;
  code *pcVar8;
  undefined8 uVar9;
  undefined8 uVar10;
  uint uVar11;
  ulong uVar12;
  int *piVar13;
  int *piVar14;
  uint *puVar15;
  
  if (DAT_0017f788 == (long *)0x0) {
    return;
  }
  uVar12 = 0;
  plVar6 = DAT_0017f788;
  do {
    puVar1 = (ulong *)(plVar6 + 4);
    plVar6 = (long *)*plVar6;
    if (uVar12 < *puVar1) {
      uVar12 = *puVar1 & 0xffffffff;
    }
  } while (plVar6 != (long *)0x0);
  puVar15 = &DAT_001423c4;
  puVar7 = (undefined4 *)xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10);
  piVar13 = puVar7 + 2;
  uVar11 = 0xb;
  *puVar7 = 0xb;
  do {
    switch(uVar11) {
    case 0:
    case 2:
    case 4:
    case 0x13:
    case 0x14:
    case 0x15:
    case 0x16:
    case 0x17:
    case 0x18:
      do {
        FUN_001252b0("../../ld/plugin.c");
        piVar14 = piVar13;
        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;
LAB_001287e9:
        piVar13 = piVar14 + 4;
        uVar11 = *puVar15;
        puVar15 = puVar15 + 1;
        piVar14[2] = uVar11;
      } while (0x19 < uVar11);
      break;
    case 1:
      *piVar13 = 1;
LAB_001287e0:
      piVar14 = piVar13;
      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;
LAB_00128828:
      puVar2 = DAT_0017fae0;
      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {
        DAT_0017fae0 = puVar2;
        pcVar8 = (code *)dlsym(plVar6[2],"onload");
        if ((pcVar8 == (code *)0x0) &&
           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {
          uVar9 = dlerror();
          lVar3 = plVar6[1];
          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);
          FUN_001251f0(uVar10,lVar3,uVar9);
        }
        puVar2 = (undefined8 *)plVar6[3];
        puVar4 = puVar7 + 0x44;
        while (puVar2 != (undefined8 *)0x0) {
          uVar9 = puVar2[1];
          puVar2 = (undefined8 *)*puVar2;
          *puVar4 = 4;
          *(undefined8 *)(puVar4 + 2) = uVar9;
          puVar4 = puVar4 + 4;
        }
        *puVar4 = 0;
        puVar4[2] = 0;
        DAT_0017f770 = plVar6;
        iVar5 = (*pcVar8)(puVar7);
        DAT_0017f770 = (long *)0x0;
        if (iVar5 != 0) {
          lVar3 = plVar6[1];
          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);
          FUN_001251f0(uVar9,lVar3,iVar5);
        }
        puVar2 = DAT_0017fae0;
      }
      uVar11 = (uint)DAT_0017fac1;
      DAT_0017fac1 = DAT_0017fac1 | 3;
      DAT_0017f760 = uVar11 & 1;
      _DAT_0017f6e0 = *puVar2;
      uRam000000000017f6e8 = puVar2[1];
      _DAT_0017f6f0 = puVar2[2];
      uRam000000000017f6f8 = puVar2[3];
      _DAT_0017f700 = puVar2[4];
      uRam000000000017f708 = puVar2[5];
      _DAT_0017f710 = puVar2[6];
      uRam000000000017f718 = puVar2[7];
      _DAT_0017f720 = puVar2[8];
      uRam000000000017f728 = puVar2[9];
      uRam000000000017f738 = puVar2[0xb];
      _DAT_0017f740 = puVar2[0xc];
      uRam000000000017f748 = puVar2[0xd];
      _DAT_0017f750 = puVar2[0xe];
      _DAT_0017f730 = FUN_00127340;
      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;
      DAT_0017f758 = puVar2;
      register_ld_plugin_object_p(FUN_001281c0);
      iVar5 = getpagesize();
      DAT_0017f6c8 = (long)iVar5;
      return;
    case 3:
      iVar5 = 0;
      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {
        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;
      }
      *piVar13 = iVar5;
      goto LAB_001287e0;
    case 5:
      *(code **)piVar13 = FUN_00127670;
      goto LAB_001287e0;
    case 6:
      *(code **)piVar13 = FUN_00127630;
      goto LAB_001287e0;
    case 7:
      *(code **)piVar13 = FUN_001275f0;
      goto LAB_001287e0;
    case 8:
      *(code **)piVar13 = FUN_00127920;
      goto LAB_001287e0;
    case 9:
      *(code **)piVar13 = FUN_001281b0;
      goto LAB_001287e0;
    case 10:
      *(code **)piVar13 = FUN_00127740;
      goto LAB_001287e0;
    default:
      *(code **)piVar13 = FUN_00127ca0;
      goto LAB_001287e0;
    case 0xc:
      *(code **)piVar13 = FUN_00127590;
      goto LAB_001287e0;
    case 0xd:
      *(code **)piVar13 = FUN_00127540;
      goto LAB_001287e0;
    case 0xe:
      *(code **)piVar13 = FUN_001276f0;
      goto LAB_001287e0;
    case 0xf:
      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;
      goto LAB_001287e0;
    case 0x10:
      *(code **)piVar13 = FUN_001276b0;
      goto LAB_001287e0;
    case 0x11:
      *piVar13 = 0xe7;
      goto LAB_001287e0;
    case 0x12:
      *(code **)piVar13 = FUN_001277a0;
      goto LAB_001287e0;
    case 0x19:
      *(code **)piVar13 = FUN_001281a0;
      goto LAB_001287e0;
    }
  } while( true );
}


MOV RAX,qword ptr [0x0017f788]
TEST RAX,RAX
JZ 0x00128b47
PUSH R15
XOR EDX,EDX
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x18
MOV RCX,qword ptr [RAX + 0x20]
MOV ESI,EDX
MOV RAX,qword ptr [RAX]
CMP RCX,RSI
CMOVA EDX,ECX
TEST RAX,RAX
JNZ 0x00128760
LEA EDI,[RDX + 0x1]
LEA R12,[0x1423c4]
ADD RDI,0x11
LEA R14,[R12 + 0x40]
LEA R13,[0x142334]
SHL RDI,0x4
LEA R15,[0x127740]
CALL 0x00109c50
LEA RCX,[0x1276b0]
LEA RDX,[0x1276f0]
LEA RBP,[RAX + 0x8]
MOV RBX,RAX
MOV EAX,0xb
MOV dword ptr [RBP + -0x8],EAX
CMP EAX,0x19
JA 0x001287f9
MOVSXD RAX,dword ptr [R13 + RAX*0x4]
ADD RAX,R13
JMP RAX
LEA RAX,[0x1281a0]
MOV qword ptr [RBP],RAX
NOP dword ptr [RAX + RAX*0x1]
ADD RBP,0x10
CMP R14,R12
JZ 0x00128828
MOV EAX,dword ptr [R12]
ADD R12,0x4
MOV dword ptr [RBP + -0x8],EAX
CMP EAX,0x19
JBE 0x001287c0
MOV ESI,0x3b8
LEA RDI,[0x142257]
ADD RBP,0x10
CALL 0x001252b0
LEA RDX,[0x1276f0]
LEA RCX,[0x1276b0]
CMP R14,R12
JNZ 0x001287e9
NOP dword ptr [RAX]
MOV R13,qword ptr [0x0017f788]
LEA R12,[RBX + 0x110]
LEA RBP,[0x1422e2]
TEST R13,R13
JZ 0x001288cb
NOP word ptr CS:[RAX + RAX*0x1]
MOV RDI,qword ptr [R13 + 0x10]
MOV RSI,RBP
CALL 0x00109b90
MOV R14,RAX
TEST RAX,RAX
JZ 0x00128af0
MOV RDX,qword ptr [R13 + 0x18]
MOV RAX,R12
TEST RDX,RDX
JZ 0x00128892
NOP dword ptr [RAX]
MOV RCX,qword ptr [RDX + 0x8]
MOV RDX,qword ptr [RDX]
MOV dword ptr [RAX],0x4
ADD RAX,0x10
MOV qword ptr [RAX + -0x8],RCX
TEST RDX,RDX
JNZ 0x00128878
MOV dword ptr [RAX],0x0
MOV RDI,RBX
MOV dword ptr [RAX + 0x8],0x0
MOV qword ptr [0x0017f770],R13
CALL R14
MOV qword ptr [0x0017f770],0x0
MOV R14D,EAX
TEST EAX,EAX
JNZ 0x00128ac0
MOV R13,qword ptr [R13]
TEST R13,R13
JNZ 0x00128850
MOVZX EDX,byte ptr [0x0017fac1]
LEA RDI,[0x1281c0]
MOV EAX,EDX
OR EDX,0x3
AND EAX,0x1
MOV dword ptr [0x0017f760],EAX
MOV RAX,qword ptr [0x0017fae0]
MOVDQU XMM0,xmmword ptr [RAX]
MOV qword ptr [0x0017f758],RAX
MOV byte ptr [0x0017fac1],DL
MOVAPS xmmword ptr [0x0017f6e0],XMM0
MOVDQU XMM1,xmmword ptr [RAX + 0x10]
MOVAPS xmmword ptr [0x0017f6f0],XMM1
MOVDQU XMM2,xmmword ptr [RAX + 0x20]
MOVAPS xmmword ptr [0x0017f700],XMM2
MOVDQU XMM3,xmmword ptr [RAX + 0x30]
MOVAPS xmmword ptr [0x0017f710],XMM3
MOVDQU XMM4,xmmword ptr [RAX + 0x40]
MOVAPS xmmword ptr [0x0017f720],XMM4
MOVDQU XMM5,xmmword ptr [RAX + 0x50]
MOVAPS xmmword ptr [0x0017f730],XMM5
MOVDQU XMM6,xmmword ptr [RAX + 0x60]
MOVAPS xmmword ptr [0x0017f740],XMM6
MOV RAX,qword ptr [RAX + 0x70]
MOV qword ptr [0x0017f750],RAX
LEA RAX,[0x127340]
MOV qword ptr [0x0017f730],RAX
LEA RAX,[0x17f6e0]
MOV qword ptr [0x0017fae0],RAX
CALL 0x001090b0
CALL 0x00109a70
CDQE
MOV qword ptr [0x0017f6c8],RAX
ADD RSP,0x18
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
LEA RAX,[0x1277a0]
MOV qword ptr [RBP],RAX
JMP 0x001287e0
MOV dword ptr [RBP],0xe7
JMP 0x001287e0
MOV qword ptr [RBP],RCX
JMP 0x001287e0
MOV RAX,qword ptr [0x0017e6f8]
MOV qword ptr [RBP],RAX
JMP 0x001287e0
MOV qword ptr [RBP],RDX
JMP 0x001287e0
LEA RAX,[0x127540]
MOV qword ptr [RBP],RAX
JMP 0x001287e0
LEA RAX,[0x127590]
MOV qword ptr [RBP],RAX
JMP 0x001287e0
LEA RAX,[0x127ca0]
MOV qword ptr [RBP],RAX
JMP 0x001287e0
MOV qword ptr [RBP],R15
JMP 0x001287e0
LEA RAX,[0x1281b0]
MOV qword ptr [RBP],RAX
JMP 0x001287e0
LEA RAX,[0x127920]
MOV qword ptr [RBP],RAX
JMP 0x001287e0
LEA RAX,[0x1275f0]
MOV qword ptr [RBP],RAX
JMP 0x001287e0
LEA RAX,[0x127630]
MOV qword ptr [RBP],RAX
JMP 0x001287e0
LEA RAX,[0x127670]
MOV qword ptr [RBP],RAX
JMP 0x001287e0
MOVZX EAX,byte ptr [0x0017fac0]
XOR ESI,ESI
AND EAX,0x3
CMP AL,0x2
JZ 0x00128aa4
MOV ESI,0x1
TEST AL,AL
JZ 0x00128aa4
XOR ESI,ESI
CMP AL,0x1
SETZ SIL
ADD ESI,0x2
MOV dword ptr [RBP],ESI
JMP 0x001287e0
MOV dword ptr [RBP],0x1
JMP 0x001287e0
MOV R15,qword ptr [R13 + 0x8]
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x1422e9]
CALL 0x001092e0
MOV EDX,R14D
MOV RDI,RAX
MOV RSI,R15
XOR EAX,EAX
CALL 0x001251f0
JMP 0x001288c2
MOV RDI,qword ptr [R13 + 0x10]
LEA RSI,[0x1422e1]
CALL 0x00109b90
MOV R14,RAX
TEST RAX,RAX
JNZ 0x00128868
CALL 0x00109c00
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x142200]
MOV R15,RAX
MOV RAX,qword ptr [R13 + 0x8]
MOV qword ptr [RSP + 0x8],RAX
CALL 0x001092e0
MOV RSI,qword ptr [RSP + 0x8]
MOV RDX,R15
MOV RDI,RAX
XOR EAX,EAX
CALL 0x001251f0
JMP 0x00128868
RET
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid FUN_00128740(void)\n\n{\n  ulong *puVar1;\n  undefined8 *puVar2;\n  long lVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  long *plVar6;\n  undefined4 *puVar7;\n  code *pcVar8;\n  undefined8 uVar9;\n  undefined8 uVar10;\n  uint uVar11;\n  ulong uVar12;\n  int *piVar13;\n  int *piVar14;\n  uint *puVar15;\n  \n  if (DAT_0017f788 == (long *)0x0) {\n    return;\n  }\n  uVar12 = 0;\n  plVar6 = DAT_0017f788;\n  do {\n    puVar1 = (ulong *)(plVar6 + 4);\n    plVar6 = (long *)*plVar6;\n    if (uVar12 < *puVar1) {\n      uVar12 = *puVar1 & 0xffffffff;\n    }\n  } while (plVar6 != (long *)0x0);\n  puVar15 = &DAT_001423c4;\n  puVar7 = (undefined4 *)xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10);\n  piVar13 = puVar7 + 2;\n  uVar11 = 0xb;\n  *puVar7 = 0xb;\n  do {\n    switch(uVar11) {\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }\n  } while( true );\n}\n\n" comment (function_definition "void FUN_00128740(void)\n\n{\n  ulong *puVar1;\n  undefined8 *puVar2;\n  long lVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  long *plVar6;\n  undefined4 *puVar7;\n  code *pcVar8;\n  undefined8 uVar9;\n  undefined8 uVar10;\n  uint uVar11;\n  ulong uVar12;\n  int *piVar13;\n  int *piVar14;\n  uint *puVar15;\n  \n  if (DAT_0017f788 == (long *)0x0) {\n    return;\n  }\n  uVar12 = 0;\n  plVar6 = DAT_0017f788;\n  do {\n    puVar1 = (ulong *)(plVar6 + 4);\n    plVar6 = (long *)*plVar6;\n    if (uVar12 < *puVar1) {\n      uVar12 = *puVar1 & 0xffffffff;\n    }\n  } while (plVar6 != (long *)0x0);\n  puVar15 = &DAT_001423c4;\n  puVar7 = (undefined4 *)xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10);\n  piVar13 = puVar7 + 2;\n  uVar11 = 0xb;\n  *puVar7 = 0xb;\n  do {\n    switch(uVar11) {\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }\n  } while( true );\n}" primitive_type (function_declarator "FUN_00128740(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  ulong *puVar1;\n  undefined8 *puVar2;\n  long lVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  long *plVar6;\n  undefined4 *puVar7;\n  code *pcVar8;\n  undefined8 uVar9;\n  undefined8 uVar10;\n  uint uVar11;\n  ulong uVar12;\n  int *piVar13;\n  int *piVar14;\n  uint *puVar15;\n  \n  if (DAT_0017f788 == (long *)0x0) {\n    return;\n  }\n  uVar12 = 0;\n  plVar6 = DAT_0017f788;\n  do {\n    puVar1 = (ulong *)(plVar6 + 4);\n    plVar6 = (long *)*plVar6;\n    if (uVar12 < *puVar1) {\n      uVar12 = *puVar1 & 0xffffffff;\n    }\n  } while (plVar6 != (long *)0x0);\n  puVar15 = &DAT_001423c4;\n  puVar7 = (undefined4 *)xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10);\n  piVar13 = puVar7 + 2;\n  uVar11 = 0xb;\n  *puVar7 = 0xb;\n  do {\n    switch(uVar11) {\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }\n  } while( true );\n}" { (declaration "ulong *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "undefined8 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (if_statement "if (DAT_0017f788 == (long *)0x0) {\n    return;\n  }" if (parenthesized_expression "(DAT_0017f788 == (long *)0x0)" ( (binary_expression "DAT_0017f788 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "plVar6 = DAT_0017f788;" (assignment_expression "plVar6 = DAT_0017f788" identifier = identifier) ;) (do_statement "do {\n    puVar1 = (ulong *)(plVar6 + 4);\n    plVar6 = (long *)*plVar6;\n    if (uVar12 < *puVar1) {\n      uVar12 = *puVar1 & 0xffffffff;\n    }\n  } while (plVar6 != (long *)0x0);" do (compound_statement "{\n    puVar1 = (ulong *)(plVar6 + 4);\n    plVar6 = (long *)*plVar6;\n    if (uVar12 < *puVar1) {\n      uVar12 = *puVar1 & 0xffffffff;\n    }\n  }" { (expression_statement "puVar1 = (ulong *)(plVar6 + 4);" (assignment_expression "puVar1 = (ulong *)(plVar6 + 4)" identifier = (cast_expression "(ulong *)(plVar6 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 4)" ( (binary_expression "plVar6 + 4" identifier + number_literal) )))) ;) (expression_statement "plVar6 = (long *)*plVar6;" (assignment_expression "plVar6 = (long *)*plVar6" identifier = (cast_expression "(long *)*plVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar6" * identifier))) ;) (if_statement "if (uVar12 < *puVar1) {\n      uVar12 = *puVar1 & 0xffffffff;\n    }" if (parenthesized_expression "(uVar12 < *puVar1)" ( (binary_expression "uVar12 < *puVar1" identifier < (pointer_expression "*puVar1" * identifier)) )) (compound_statement "{\n      uVar12 = *puVar1 & 0xffffffff;\n    }" { (expression_statement "uVar12 = *puVar1 & 0xffffffff;" (assignment_expression "uVar12 = *puVar1 & 0xffffffff" identifier = (binary_expression "*puVar1 & 0xffffffff" (pointer_expression "*puVar1" * identifier) & number_literal)) ;) })) }) while (parenthesized_expression "(plVar6 != (long *)0x0)" ( (binary_expression "plVar6 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "puVar15 = &DAT_001423c4;" (assignment_expression "puVar15 = &DAT_001423c4" identifier = (pointer_expression "&DAT_001423c4" & identifier)) ;) (expression_statement "puVar7 = (undefined4 *)xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10);" (assignment_expression "puVar7 = (undefined4 *)xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10)" identifier = (cast_expression "(undefined4 *)xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10)" identifier (argument_list "(((ulong)((int)uVar12 + 1) + 0x11) * 0x10)" ( (binary_expression "((ulong)((int)uVar12 + 1) + 0x11) * 0x10" (parenthesized_expression "((ulong)((int)uVar12 + 1) + 0x11)" ( (binary_expression "(ulong)((int)uVar12 + 1) + 0x11" (call_expression "(ulong)((int)uVar12 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar12 + 1)" ( (binary_expression "(int)uVar12 + 1" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) + number_literal) )) * number_literal) ))))) ;) (expression_statement "piVar13 = puVar7 + 2;" (assignment_expression "piVar13 = puVar7 + 2" identifier = (binary_expression "puVar7 + 2" identifier + number_literal)) ;) (expression_statement "uVar11 = 0xb;" (assignment_expression "uVar11 = 0xb" identifier = number_literal) ;) (expression_statement "*puVar7 = 0xb;" (assignment_expression "*puVar7 = 0xb" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (do_statement "do {\n    switch(uVar11) {\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }\n  } while( true );" do (compound_statement "{\n    switch(uVar11) {\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }\n  }" { (switch_statement "switch(uVar11) {\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }" switch (parenthesized_expression "(uVar11)" ( identifier )) (compound_statement "{\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }" { (case_statement "case 0:" case number_literal :) (case_statement "case 2:" case number_literal :) (case_statement "case 4:" case number_literal :) (case_statement "case 0x13:" case number_literal :) (case_statement "case 0x14:" case number_literal :) (case_statement "case 0x15:" case number_literal :) (case_statement "case 0x16:" case number_literal :) (case_statement "case 0x17:" case number_literal :) (case_statement "case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;" case number_literal : (do_statement "do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);" do (compound_statement "{\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      }" { (expression_statement "FUN_001252b0("../../ld/plugin.c");" (call_expression "FUN_001252b0("../../ld/plugin.c")" identifier (argument_list "("../../ld/plugin.c")" ( (string_literal ""../../ld/plugin.c"" " string_content ") ))) ;) (expression_statement "piVar14 = piVar13;" (assignment_expression "piVar14 = piVar13" identifier = identifier) ;) (if_statement "if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;" if (parenthesized_expression "(puVar15 == (uint *)&DAT_00142404)" ( (binary_expression "puVar15 == (uint *)&DAT_00142404" identifier == (cast_expression "(uint *)&DAT_00142404" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00142404" & identifier))) )) (goto_statement "goto LAB_00128828;" goto statement_identifier ;)) (labeled_statement "LAB_001287e9:\n        piVar13 = piVar14 + 4;" statement_identifier : (expression_statement "piVar13 = piVar14 + 4;" (assignment_expression "piVar13 = piVar14 + 4" identifier = (binary_expression "piVar14 + 4" identifier + number_literal)) ;)) (expression_statement "uVar11 = *puVar15;" (assignment_expression "uVar11 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "puVar15 = puVar15 + 1;" (assignment_expression "puVar15 = puVar15 + 1" identifier = (binary_expression "puVar15 + 1" identifier + number_literal)) ;) (expression_statement "piVar14[2] = uVar11;" (assignment_expression "piVar14[2] = uVar11" (subscript_expression "piVar14[2]" identifier [ number_literal ]) = identifier) ;) }) while (parenthesized_expression "(0x19 < uVar11)" ( (binary_expression "0x19 < uVar11" number_literal < identifier) )) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;" case number_literal : (expression_statement "*piVar13 = 1;" (assignment_expression "*piVar13 = 1" (pointer_expression "*piVar13" * identifier) = number_literal) ;) (labeled_statement "LAB_001287e0:\n      piVar14 = piVar13;" statement_identifier : (expression_statement "piVar14 = piVar13;" (assignment_expression "piVar14 = piVar13" identifier = identifier) ;)) (if_statement "if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;" if (parenthesized_expression "(puVar15 != (uint *)&DAT_00142404)" ( (binary_expression "puVar15 != (uint *)&DAT_00142404" identifier != (cast_expression "(uint *)&DAT_00142404" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00142404" & identifier))) )) (goto_statement "goto LAB_001287e9;" goto statement_identifier ;)) (labeled_statement "LAB_00128828:\n      puVar2 = DAT_0017fae0;" statement_identifier : (expression_statement "puVar2 = DAT_0017fae0;" (assignment_expression "puVar2 = DAT_0017fae0" identifier = identifier) ;)) (for_statement "for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }" for ( (assignment_expression "plVar6 = DAT_0017f788" identifier = identifier) ; (binary_expression "plVar6 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar6 = (long *)*plVar6" identifier = (cast_expression "(long *)*plVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar6" * identifier))) ) (compound_statement "{\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }" { (expression_statement "DAT_0017fae0 = puVar2;" (assignment_expression "DAT_0017fae0 = puVar2" identifier = identifier) ;) (expression_statement "pcVar8 = (code *)dlsym(plVar6[2],"onload");" (assignment_expression "pcVar8 = (code *)dlsym(plVar6[2],"onload")" identifier = (cast_expression "(code *)dlsym(plVar6[2],"onload")" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dlsym(plVar6[2],"onload")" identifier (argument_list "(plVar6[2],"onload")" ( (subscript_expression "plVar6[2]" identifier [ number_literal ]) , (string_literal ""onload"" " string_content ") ))))) ;) (if_statement "if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }" if (parenthesized_expression "((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0))" ( (binary_expression "(pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)" (parenthesized_expression "(pcVar8 == (code *)0x0)" ( (binary_expression "pcVar8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)" ( (comma_expression "pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0" (assignment_expression "pcVar8 = (code *)dlsym(plVar6[2],"_onload")" identifier = (cast_expression "(code *)dlsym(plVar6[2],"_onload")" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dlsym(plVar6[2],"_onload")" identifier (argument_list "(plVar6[2],"_onload")" ( (subscript_expression "plVar6[2]" identifier [ number_literal ]) , (string_literal ""_onload"" " string_content ") ))))) , (binary_expression "pcVar8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }" { (expression_statement "uVar9 = dlerror();" (assignment_expression "uVar9 = dlerror()" identifier = (call_expression "dlerror()" identifier (argument_list "()" ( )))) ;) (expression_statement "lVar3 = plVar6[1];" (assignment_expression "lVar3 = plVar6[1]" identifier = (subscript_expression "plVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);" (assignment_expression "uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5)" identifier (argument_list "(0,"%F%P: %s: error loading plugin: %s\n",5)" ( number_literal , (string_literal ""%F%P: %s: error loading plugin: %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_001251f0(uVar10,lVar3,uVar9);" (call_expression "FUN_001251f0(uVar10,lVar3,uVar9)" identifier (argument_list "(uVar10,lVar3,uVar9)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "puVar2 = (undefined8 *)plVar6[3];" (assignment_expression "puVar2 = (undefined8 *)plVar6[3]" identifier = (cast_expression "(undefined8 *)plVar6[3]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar6[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar4 = puVar7 + 0x44;" (assignment_expression "puVar4 = puVar7 + 0x44" identifier = (binary_expression "puVar7 + 0x44" identifier + number_literal)) ;) (while_statement "while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }" while (parenthesized_expression "(puVar2 != (undefined8 *)0x0)" ( (binary_expression "puVar2 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }" { (expression_statement "uVar9 = puVar2[1];" (assignment_expression "uVar9 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (undefined8 *)*puVar2;" (assignment_expression "puVar2 = (undefined8 *)*puVar2" identifier = (cast_expression "(undefined8 *)*puVar2" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (expression_statement "*puVar4 = 4;" (assignment_expression "*puVar4 = 4" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "*(undefined8 *)(puVar4 + 2) = uVar9;" (assignment_expression "*(undefined8 *)(puVar4 + 2) = uVar9" (pointer_expression "*(undefined8 *)(puVar4 + 2)" * (cast_expression "(undefined8 *)(puVar4 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar4 = puVar4 + 4;" (assignment_expression "puVar4 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) })) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "DAT_0017f770 = plVar6;" (assignment_expression "DAT_0017f770 = plVar6" identifier = identifier) ;) (expression_statement "iVar5 = (*pcVar8)(puVar7);" (assignment_expression "iVar5 = (*pcVar8)(puVar7)" identifier = (call_expression "(*pcVar8)(puVar7)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(puVar7)" ( identifier )))) ;) (expression_statement "DAT_0017f770 = (long *)0x0;" (assignment_expression "DAT_0017f770 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }" { (expression_statement "lVar3 = plVar6[1];" (assignment_expression "lVar3 = plVar6[1]" identifier = (subscript_expression "plVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: %s: plugin error: %d\n",5)" identifier (argument_list "(0,"%F%P: %s: plugin error: %d\n",5)" ( number_literal , (string_literal ""%F%P: %s: plugin error: %d\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_001251f0(uVar9,lVar3,iVar5);" (call_expression "FUN_001251f0(uVar9,lVar3,iVar5)" identifier (argument_list "(uVar9,lVar3,iVar5)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "puVar2 = DAT_0017fae0;" (assignment_expression "puVar2 = DAT_0017fae0" identifier = identifier) ;) })) (expression_statement "uVar11 = (uint)DAT_0017fac1;" (assignment_expression "uVar11 = (uint)DAT_0017fac1" identifier = (cast_expression "(uint)DAT_0017fac1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "DAT_0017fac1 = DAT_0017fac1 | 3;" (assignment_expression "DAT_0017fac1 = DAT_0017fac1 | 3" identifier = (binary_expression "DAT_0017fac1 | 3" identifier | number_literal)) ;) (expression_statement "DAT_0017f760 = uVar11 & 1;" (assignment_expression "DAT_0017f760 = uVar11 & 1" identifier = (binary_expression "uVar11 & 1" identifier & number_literal)) ;) (expression_statement "_DAT_0017f6e0 = *puVar2;" (assignment_expression "_DAT_0017f6e0 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uRam000000000017f6e8 = puVar2[1];" (assignment_expression "uRam000000000017f6e8 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0017f6f0 = puVar2[2];" (assignment_expression "_DAT_0017f6f0 = puVar2[2]" identifier = (subscript_expression "puVar2[2]" identifier [ number_literal ])) ;) (expression_statement "uRam000000000017f6f8 = puVar2[3];" (assignment_expression "uRam000000000017f6f8 = puVar2[3]" identifier = (subscript_expression "puVar2[3]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0017f700 = puVar2[4];" (assignment_expression "_DAT_0017f700 = puVar2[4]" identifier = (subscript_expression "puVar2[4]" identifier [ number_literal ])) ;) (expression_statement "uRam000000000017f708 = puVar2[5];" (assignment_expression "uRam000000000017f708 = puVar2[5]" identifier = (subscript_expression "puVar2[5]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0017f710 = puVar2[6];" (assignment_expression "_DAT_0017f710 = puVar2[6]" identifier = (subscript_expression "puVar2[6]" identifier [ number_literal ])) ;) (expression_statement "uRam000000000017f718 = puVar2[7];" (assignment_expression "uRam000000000017f718 = puVar2[7]" identifier = (subscript_expression "puVar2[7]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0017f720 = puVar2[8];" (assignment_expression "_DAT_0017f720 = puVar2[8]" identifier = (subscript_expression "puVar2[8]" identifier [ number_literal ])) ;) (expression_statement "uRam000000000017f728 = puVar2[9];" (assignment_expression "uRam000000000017f728 = puVar2[9]" identifier = (subscript_expression "puVar2[9]" identifier [ number_literal ])) ;) (expression_statement "uRam000000000017f738 = puVar2[0xb];" (assignment_expression "uRam000000000017f738 = puVar2[0xb]" identifier = (subscript_expression "puVar2[0xb]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0017f740 = puVar2[0xc];" (assignment_expression "_DAT_0017f740 = puVar2[0xc]" identifier = (subscript_expression "puVar2[0xc]" identifier [ number_literal ])) ;) (expression_statement "uRam000000000017f748 = puVar2[0xd];" (assignment_expression "uRam000000000017f748 = puVar2[0xd]" identifier = (subscript_expression "puVar2[0xd]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0017f750 = puVar2[0xe];" (assignment_expression "_DAT_0017f750 = puVar2[0xe]" identifier = (subscript_expression "puVar2[0xe]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0017f730 = FUN_00127340;" (assignment_expression "_DAT_0017f730 = FUN_00127340" identifier = identifier) ;) (expression_statement "DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;" (assignment_expression "DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0" identifier = (cast_expression "(undefined8 *)&DAT_0017f6e0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0017f6e0" & identifier))) ;) (expression_statement "DAT_0017f758 = puVar2;" (assignment_expression "DAT_0017f758 = puVar2" identifier = identifier) ;) (expression_statement "register_ld_plugin_object_p(FUN_001281c0);" (call_expression "register_ld_plugin_object_p(FUN_001281c0)" identifier (argument_list "(FUN_001281c0)" ( identifier ))) ;) (expression_statement "iVar5 = getpagesize();" (assignment_expression "iVar5 = getpagesize()" identifier = (call_expression "getpagesize()" identifier (argument_list "()" ( )))) ;) (expression_statement "DAT_0017f6c8 = (long)iVar5;" (assignment_expression "DAT_0017f6c8 = (long)iVar5" identifier = (cast_expression "(long)iVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (return_statement "return;" return ;)) (case_statement "case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;" case number_literal : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (if_statement "if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }" if (parenthesized_expression "(((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0))" ( (binary_expression "((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)" (parenthesized_expression "((DAT_0017fac0 & 3) != 2)" ( (binary_expression "(DAT_0017fac0 & 3) != 2" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar5 = 1, (DAT_0017fac0 & 3) != 0)" ( (comma_expression "iVar5 = 1, (DAT_0017fac0 & 3) != 0" (assignment_expression "iVar5 = 1" identifier = number_literal) , (binary_expression "(DAT_0017fac0 & 3) != 0" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }" { (expression_statement "iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;" (assignment_expression "iVar5 = ((DAT_0017fac0 & 3) == 1) + 2" identifier = (binary_expression "((DAT_0017fac0 & 3) == 1) + 2" (parenthesized_expression "((DAT_0017fac0 & 3) == 1)" ( (binary_expression "(DAT_0017fac0 & 3) == 1" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) == number_literal) )) + number_literal)) ;) })) (expression_statement "*piVar13 = iVar5;" (assignment_expression "*piVar13 = iVar5" (pointer_expression "*piVar13" * identifier) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_00127670;" (assignment_expression "*(code **)piVar13 = FUN_00127670" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_00127630;" (assignment_expression "*(code **)piVar13 = FUN_00127630" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_001275f0;" (assignment_expression "*(code **)piVar13 = FUN_001275f0" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_00127920;" (assignment_expression "*(code **)piVar13 = FUN_00127920" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_001281b0;" (assignment_expression "*(code **)piVar13 = FUN_001281b0" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_00127740;" (assignment_expression "*(code **)piVar13 = FUN_00127740" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;" default : (expression_statement "*(code **)piVar13 = FUN_00127ca0;" (assignment_expression "*(code **)piVar13 = FUN_00127ca0" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_00127590;" (assignment_expression "*(code **)piVar13 = FUN_00127590" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_00127540;" (assignment_expression "*(code **)piVar13 = FUN_00127540" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_001276f0;" (assignment_expression "*(code **)piVar13 = FUN_001276f0" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(undefined **)piVar13 = PTR_s_a_out_0017e6f8;" (assignment_expression "*(undefined **)piVar13 = PTR_s_a_out_0017e6f8" (pointer_expression "*(undefined **)piVar13" * (cast_expression "(undefined **)piVar13" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_001276b0;" (assignment_expression "*(code **)piVar13 = FUN_001276b0" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*piVar13 = 0xe7;" (assignment_expression "*piVar13 = 0xe7" (pointer_expression "*piVar13" * identifier) = number_literal) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_001277a0;" (assignment_expression "*(code **)piVar13 = FUN_001277a0" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_001281a0;" (assignment_expression "*(code **)piVar13 = FUN_001281a0" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid plugin_load_plugins(void)\n\n{\n  size_t *psVar1;\n  plugin_arg_t *ppVar2;\n  char *pcVar3;\n  undefined4 *puVar4;\n  bfd_link_callbacks *pbVar5;\n  ld_plugin_tag lVar6;\n  uint uVar7;\n  int iVar8;\n  plugin *ppVar9;\n  undefined4 *puVar10;\n  code *pcVar11;\n  char *pcVar12;\n  undefined8 uVar13;\n  ulong uVar14;\n  int *piVar15;\n  int *piVar16;\n  ld_plugin_tag *plVar17;\n  \n  if (plugins_list == (plugin_t *)0x0) {\n    return;\n  }\n  uVar14 = 0;\n  ppVar9 = plugins_list;\n  do {\n    psVar1 = &ppVar9->n_args;\n    ppVar9 = ppVar9->next;\n    if (uVar14 < *psVar1) {\n      uVar14 = *psVar1 & 0xffffffff;\n    }\n  } while (ppVar9 != (plugin *)0x0);\n  plVar17 = tv_header_tags + 1;\n  puVar10 = (undefined4 *)xmalloc(((ulong)((int)uVar14 + 1) + 0x11) * 0x10);\n  piVar15 = puVar10 + 2;\n  lVar6 = LDPT_MESSAGE;\n  *puVar10 = 0xb;\n  do {\n    switch(lVar6) {\n    case LDPT_NULL:\n    case LDPT_GOLD_VERSION:\n    case LDPT_OPTION:\n    case LDPT_GET_INPUT_SECTION_COUNT:\n    case LDPT_GET_INPUT_SECTION_TYPE:\n    case LDPT_GET_INPUT_SECTION_NAME:\n    case LDPT_GET_INPUT_SECTION_CONTENTS:\n    case LDPT_UPDATE_SECTION_ORDER:\n    case LDPT_ALLOW_SECTION_ORDERING:\n      do {\n        info_assert("../../ld/plugin.c",0x3b8);\n        piVar16 = piVar15;\n        if (plVar17 == (ld_plugin_tag *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar15 = piVar16 + 4;\n        lVar6 = *plVar17;\n        plVar17 = plVar17 + 1;\n        piVar16[2] = lVar6;\n      } while (LDPT_GET_SYMBOLS_V2 < lVar6);\n      break;\n    case LDPT_API_VERSION:\n      *piVar15 = 1;\nLAB_001287e0:\n      piVar16 = piVar15;\n      if (plVar17 != (ld_plugin_tag *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      pbVar5 = link_info.callbacks;\n      for (ppVar9 = plugins_list; ppVar9 != (plugin_t *)0x0; ppVar9 = ppVar9->next) {\n        link_info.callbacks = pbVar5;\n        pcVar11 = (code *)dlsym(ppVar9->dlhandle,"onload");\n        if ((pcVar11 == (code *)0x0) &&\n           (pcVar11 = (code *)dlsym(ppVar9->dlhandle,"_onload"), pcVar11 == (code *)0x0)) {\n          uVar13 = dlerror();\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          einfo(pcVar12,pcVar3,uVar13);\n        }\n        ppVar2 = ppVar9->args;\n        puVar4 = puVar10 + 0x44;\n        while (ppVar2 != (plugin_arg_t *)0x0) {\n          pcVar3 = ppVar2->arg;\n          ppVar2 = ppVar2->next;\n          *puVar4 = 4;\n          *(char **)(puVar4 + 2) = pcVar3;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        called_plugin = ppVar9;\n        uVar7 = (*pcVar11)(puVar10);\n        called_plugin = (plugin_t *)0x0;\n        if (uVar7 != 0) {\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          einfo(pcVar12,pcVar3,(ulong)uVar7);\n        }\n        pbVar5 = link_info.callbacks;\n      }\n      uVar7 = (uint)(byte)link_info._1_1_;\n      link_info._1_1_ = link_info._1_1_ | 3;\n      orig_notice_all = uVar7 & 1;\n      plugin_callbacks.add_archive_element = pbVar5->add_archive_element;\n      plugin_callbacks.multiple_definition = pbVar5->multiple_definition;\n      plugin_callbacks.multiple_common = pbVar5->multiple_common;\n      plugin_callbacks.add_to_set = pbVar5->add_to_set;\n      plugin_callbacks.constructor = pbVar5->constructor;\n      plugin_callbacks.warning = pbVar5->warning;\n      plugin_callbacks.undefined_symbol = pbVar5->undefined_symbol;\n      plugin_callbacks.reloc_overflow = pbVar5->reloc_overflow;\n      plugin_callbacks.reloc_dangerous = pbVar5->reloc_dangerous;\n      plugin_callbacks.unattached_reloc = pbVar5->unattached_reloc;\n      plugin_callbacks.einfo = pbVar5->einfo;\n      plugin_callbacks.info = pbVar5->info;\n      plugin_callbacks.minfo = pbVar5->minfo;\n      plugin_callbacks.override_segment_assignment = pbVar5->override_segment_assignment;\n      plugin_callbacks.notice = plugin_notice;\n      link_info.callbacks = &plugin_callbacks;\n      orig_callbacks = pbVar5;\n      register_ld_plugin_object_p(plugin_object_p);\n      iVar8 = getpagesize();\n      plugin_pagesize = (long)iVar8;\n      return;\n    case LDPT_LINKER_OUTPUT:\n      iVar8 = 0;\n      if (((link_info._0_1_ & 3) != 2) && (iVar8 = 1, (link_info._0_1_ & 3) != 0)) {\n        iVar8 = ((link_info._0_1_ & 3) == 1) + 2;\n      }\n      *piVar15 = iVar8;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_CLAIM_FILE_HOOK:\n      *(code **)piVar15 = register_claim_file;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK:\n      *(code **)piVar15 = register_all_symbols_read;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_CLEANUP_HOOK:\n      *(code **)piVar15 = register_cleanup;\n      goto LAB_001287e0;\n    case LDPT_ADD_SYMBOLS:\n      *(code **)piVar15 = add_symbols;\n      goto LAB_001287e0;\n    case LDPT_GET_SYMBOLS:\n      *(code **)piVar15 = get_symbols_v1;\n      goto LAB_001287e0;\n    case LDPT_ADD_INPUT_FILE:\n      *(code **)piVar15 = add_input_file;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar15 = message;\n      goto LAB_001287e0;\n    case LDPT_GET_INPUT_FILE:\n      *(code **)piVar15 = get_input_file;\n      goto LAB_001287e0;\n    case LDPT_RELEASE_INPUT_FILE:\n      *(code **)piVar15 = release_input_file;\n      goto LAB_001287e0;\n    case LDPT_ADD_INPUT_LIBRARY:\n      *(code **)piVar15 = add_input_library;\n      goto LAB_001287e0;\n    case LDPT_OUTPUT_NAME:\n      *(char **)piVar15 = output_filename;\n      goto LAB_001287e0;\n    case LDPT_SET_EXTRA_LIBRARY_PATH:\n      *(code **)piVar15 = set_extra_library_path;\n      goto LAB_001287e0;\n    case LDPT_GNU_LD_VERSION:\n      *piVar15 = 0xe7;\n      goto LAB_001287e0;\n    case LDPT_GET_VIEW:\n      *(code **)piVar15 = get_view;\n      goto LAB_001287e0;\n    case LDPT_GET_SYMBOLS_V2:\n      *(code **)piVar15 = get_symbols_v2;\n      goto LAB_001287e0;\n    }\n  } while( true );\n}\n\n" comment (function_definition "void plugin_load_plugins(void)\n\n{\n  size_t *psVar1;\n  plugin_arg_t *ppVar2;\n  char *pcVar3;\n  undefined4 *puVar4;\n  bfd_link_callbacks *pbVar5;\n  ld_plugin_tag lVar6;\n  uint uVar7;\n  int iVar8;\n  plugin *ppVar9;\n  undefined4 *puVar10;\n  code *pcVar11;\n  char *pcVar12;\n  undefined8 uVar13;\n  ulong uVar14;\n  int *piVar15;\n  int *piVar16;\n  ld_plugin_tag *plVar17;\n  \n  if (plugins_list == (plugin_t *)0x0) {\n    return;\n  }\n  uVar14 = 0;\n  ppVar9 = plugins_list;\n  do {\n    psVar1 = &ppVar9->n_args;\n    ppVar9 = ppVar9->next;\n    if (uVar14 < *psVar1) {\n      uVar14 = *psVar1 & 0xffffffff;\n    }\n  } while (ppVar9 != (plugin *)0x0);\n  plVar17 = tv_header_tags + 1;\n  puVar10 = (undefined4 *)xmalloc(((ulong)((int)uVar14 + 1) + 0x11) * 0x10);\n  piVar15 = puVar10 + 2;\n  lVar6 = LDPT_MESSAGE;\n  *puVar10 = 0xb;\n  do {\n    switch(lVar6) {\n    case LDPT_NULL:\n    case LDPT_GOLD_VERSION:\n    case LDPT_OPTION:\n    case LDPT_GET_INPUT_SECTION_COUNT:\n    case LDPT_GET_INPUT_SECTION_TYPE:\n    case LDPT_GET_INPUT_SECTION_NAME:\n    case LDPT_GET_INPUT_SECTION_CONTENTS:\n    case LDPT_UPDATE_SECTION_ORDER:\n    case LDPT_ALLOW_SECTION_ORDERING:\n      do {\n        info_assert("../../ld/plugin.c",0x3b8);\n        piVar16 = piVar15;\n        if (plVar17 == (ld_plugin_tag *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar15 = piVar16 + 4;\n        lVar6 = *plVar17;\n        plVar17 = plVar17 + 1;\n        piVar16[2] = lVar6;\n      } while (LDPT_GET_SYMBOLS_V2 < lVar6);\n      break;\n    case LDPT_API_VERSION:\n      *piVar15 = 1;\nLAB_001287e0:\n      piVar16 = piVar15;\n      if (plVar17 != (ld_plugin_tag *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      pbVar5 = link_info.callbacks;\n      for (ppVar9 = plugins_list; ppVar9 != (plugin_t *)0x0; ppVar9 = ppVar9->next) {\n        link_info.callbacks = pbVar5;\n        pcVar11 = (code *)dlsym(ppVar9->dlhandle,"onload");\n        if ((pcVar11 == (code *)0x0) &&\n           (pcVar11 = (code *)dlsym(ppVar9->dlhandle,"_onload"), pcVar11 == (code *)0x0)) {\n          uVar13 = dlerror();\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          einfo(pcVar12,pcVar3,uVar13);\n        }\n        ppVar2 = ppVar9->args;\n        puVar4 = puVar10 + 0x44;\n        while (ppVar2 != (plugin_arg_t *)0x0) {\n          pcVar3 = ppVar2->arg;\n          ppVar2 = ppVar2->next;\n          *puVar4 = 4;\n          *(char **)(puVar4 + 2) = pcVar3;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        called_plugin = ppVar9;\n        uVar7 = (*pcVar11)(puVar10);\n        called_plugin = (plugin_t *)0x0;\n        if (uVar7 != 0) {\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          einfo(pcVar12,pcVar3,(ulong)uVar7);\n        }\n        pbVar5 = link_info.callbacks;\n      }\n      uVar7 = (uint)(byte)link_info._1_1_;\n      link_info._1_1_ = link_info._1_1_ | 3;\n      orig_notice_all = uVar7 & 1;\n      plugin_callbacks.add_archive_element = pbVar5->add_archive_element;\n      plugin_callbacks.multiple_definition = pbVar5->multiple_definition;\n      plugin_callbacks.multiple_common = pbVar5->multiple_common;\n      plugin_callbacks.add_to_set = pbVar5->add_to_set;\n      plugin_callbacks.constructor = pbVar5->constructor;\n      plugin_callbacks.warning = pbVar5->warning;\n      plugin_callbacks.undefined_symbol = pbVar5->undefined_symbol;\n      plugin_callbacks.reloc_overflow = pbVar5->reloc_overflow;\n      plugin_callbacks.reloc_dangerous = pbVar5->reloc_dangerous;\n      plugin_callbacks.unattached_reloc = pbVar5->unattached_reloc;\n      plugin_callbacks.einfo = pbVar5->einfo;\n      plugin_callbacks.info = pbVar5->info;\n      plugin_callbacks.minfo = pbVar5->minfo;\n      plugin_callbacks.override_segment_assignment = pbVar5->override_segment_assignment;\n      plugin_callbacks.notice = plugin_notice;\n      link_info.callbacks = &plugin_callbacks;\n      orig_callbacks = pbVar5;\n      register_ld_plugin_object_p(plugin_object_p);\n      iVar8 = getpagesize();\n      plugin_pagesize = (long)iVar8;\n      return;\n    case LDPT_LINKER_OUTPUT:\n      iVar8 = 0;\n      if (((link_info._0_1_ & 3) != 2) && (iVar8 = 1, (link_info._0_1_ & 3) != 0)) {\n        iVar8 = ((link_info._0_1_ & 3) == 1) + 2;\n      }\n      *piVar15 = iVar8;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_CLAIM_FILE_HOOK:\n      *(code **)piVar15 = register_claim_file;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK:\n      *(code **)piVar15 = register_all_symbols_read;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_CLEANUP_HOOK:\n      *(code **)piVar15 = register_cleanup;\n      goto LAB_001287e0;\n    case LDPT_ADD_SYMBOLS:\n      *(code **)piVar15 = add_symbols;\n      goto LAB_001287e0;\n    case LDPT_GET_SYMBOLS:\n      *(code **)piVar15 = get_symbols_v1;\n      goto LAB_001287e0;\n    case LDPT_ADD_INPUT_FILE:\n      *(code **)piVar15 = add_input_file;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar15 = message;\n      goto LAB_001287e0;\n    case LDPT_GET_INPUT_FILE:\n      *(code **)piVar15 = get_input_file;\n      goto LAB_001287e0;\n    case LDPT_RELEASE_INPUT_FILE:\n      *(code **)piVar15 = release_input_file;\n      goto LAB_001287e0;\n    case LDPT_ADD_INPUT_LIBRARY:\n      *(code **)piVar15 = add_input_library;\n      goto LAB_001287e0;\n    case LDPT_OUTPUT_NAME:\n      *(char **)piVar15 = output_filename;\n      goto LAB_001287e0;\n    case LDPT_SET_EXTRA_LIBRARY_PATH:\n      *(code **)piVar15 = set_extra_library_path;\n      goto LAB_001287e0;\n    case LDPT_GNU_LD_VERSION:\n      *piVar15 = 0xe7;\n      goto LAB_001287e0;\n    case LDPT_GET_VIEW:\n      *(code **)piVar15 = get_view;\n      goto LAB_001287e0;\n    case LDPT_GET_SYMBOLS_V2:\n      *(code **)piVar15 = get_symbols_v2;\n      goto LAB_001287e0;\n    }\n  } while( true );\n}" primitive_type (function_declarator "plugin_load_plugins(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  size_t *psVar1;\n  plugin_arg_t *ppVar2;\n  char *pcVar3;\n  undefined4 *puVar4;\n  bfd_link_callbacks *pbVar5;\n  ld_plugin_tag lVar6;\n  uint uVar7;\n  int iVar8;\n  plugin *ppVar9;\n  undefined4 *puVar10;\n  code *pcVar11;\n  char *pcVar12;\n  undefined8 uVar13;\n  ulong uVar14;\n  int *piVar15;\n  int *piVar16;\n  ld_plugin_tag *plVar17;\n  \n  if (plugins_list == (plugin_t *)0x0) {\n    return;\n  }\n  uVar14 = 0;\n  ppVar9 = plugins_list;\n  do {\n    psVar1 = &ppVar9->n_args;\n    ppVar9 = ppVar9->next;\n    if (uVar14 < *psVar1) {\n      uVar14 = *psVar1 & 0xffffffff;\n    }\n  } while (ppVar9 != (plugin *)0x0);\n  plVar17 = tv_header_tags + 1;\n  puVar10 = (undefined4 *)xmalloc(((ulong)((int)uVar14 + 1) + 0x11) * 0x10);\n  piVar15 = puVar10 + 2;\n  lVar6 = LDPT_MESSAGE;\n  *puVar10 = 0xb;\n  do {\n    switch(lVar6) {\n    case LDPT_NULL:\n    case LDPT_GOLD_VERSION:\n    case LDPT_OPTION:\n    case LDPT_GET_INPUT_SECTION_COUNT:\n    case LDPT_GET_INPUT_SECTION_TYPE:\n    case LDPT_GET_INPUT_SECTION_NAME:\n    case LDPT_GET_INPUT_SECTION_CONTENTS:\n    case LDPT_UPDATE_SECTION_ORDER:\n    case LDPT_ALLOW_SECTION_ORDERING:\n      do {\n        info_assert("../../ld/plugin.c",0x3b8);\n        piVar16 = piVar15;\n        if (plVar17 == (ld_plugin_tag *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar15 = piVar16 + 4;\n        lVar6 = *plVar17;\n        plVar17 = plVar17 + 1;\n        piVar16[2] = lVar6;\n      } while (LDPT_GET_SYMBOLS_V2 < lVar6);\n      break;\n    case LDPT_API_VERSION:\n      *piVar15 = 1;\nLAB_001287e0:\n      piVar16 = piVar15;\n      if (plVar17 != (ld_plugin_tag *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      pbVar5 = link_info.callbacks;\n      for (ppVar9 = plugins_list; ppVar9 != (plugin_t *)0x0; ppVar9 = ppVar9->next) {\n        link_info.callbacks = pbVar5;\n        pcVar11 = (code *)dlsym(ppVar9->dlhandle,"onload");\n        if ((pcVar11 == (code *)0x0) &&\n           (pcVar11 = (code *)dlsym(ppVar9->dlhandle,"_onload"), pcVar11 == (code *)0x0)) {\n          uVar13 = dlerror();\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          einfo(pcVar12,pcVar3,uVar13);\n        }\n        ppVar2 = ppVar9->args;\n        puVar4 = puVar10 + 0x44;\n        while (ppVar2 != (plugin_arg_t *)0x0) {\n          pcVar3 = ppVar2->arg;\n          ppVar2 = ppVar2->next;\n          *puVar4 = 4;\n          *(char **)(puVar4 + 2) = pcVar3;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        called_plugin = ppVar9;\n        uVar7 = (*pcVar11)(puVar10);\n        called_plugin = (plugin_t *)0x0;\n        if (uVar7 != 0) {\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          einfo(pcVar12,pcVar3,(ulong)uVar7);\n        }\n        pbVar5 = link_info.callbacks;\n      }\n      uVar7 = (uint)(byte)link_info._1_1_;\n      link_info._1_1_ = link_info._1_1_ | 3;\n      orig_notice_all = uVar7 & 1;\n      plugin_callbacks.add_archive_element = pbVar5->add_archive_element;\n      plugin_callbacks.multiple_definition = pbVar5->multiple_definition;\n      plugin_callbacks.multiple_common = pbVar5->multiple_common;\n      plugin_callbacks.add_to_set = pbVar5->add_to_set;\n      plugin_callbacks.constructor = pbVar5->constructor;\n      plugin_callbacks.warning = pbVar5->warning;\n      plugin_callbacks.undefined_symbol = pbVar5->undefined_symbol;\n      plugin_callbacks.reloc_overflow = pbVar5->reloc_overflow;\n      plugin_callbacks.reloc_dangerous = pbVar5->reloc_dangerous;\n      plugin_callbacks.unattached_reloc = pbVar5->unattached_reloc;\n      plugin_callbacks.einfo = pbVar5->einfo;\n      plugin_callbacks.info = pbVar5->info;\n      plugin_callbacks.minfo = pbVar5->minfo;\n      plugin_callbacks.override_segment_assignment = pbVar5->override_segment_assignment;\n      plugin_callbacks.notice = plugin_notice;\n      link_info.callbacks = &plugin_callbacks;\n      orig_callbacks = pbVar5;\n      register_ld_plugin_object_p(plugin_object_p);\n      iVar8 = getpagesize();\n      plugin_pagesize = (long)iVar8;\n      return;\n    case LDPT_LINKER_OUTPUT:\n      iVar8 = 0;\n      if (((link_info._0_1_ & 3) != 2) && (iVar8 = 1, (link_info._0_1_ & 3) != 0)) {\n        iVar8 = ((link_info._0_1_ & 3) == 1) + 2;\n      }\n      *piVar15 = iVar8;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_CLAIM_FILE_HOOK:\n      *(code **)piVar15 = register_claim_file;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK:\n      *(code **)piVar15 = register_all_symbols_read;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_CLEANUP_HOOK:\n      *(code **)piVar15 = register_cleanup;\n      goto LAB_001287e0;\n    case LDPT_ADD_SYMBOLS:\n      *(code **)piVar15 = add_symbols;\n      goto LAB_001287e0;\n    case LDPT_GET_SYMBOLS:\n      *(code **)piVar15 = get_symbols_v1;\n      goto LAB_001287e0;\n    case LDPT_ADD_INPUT_FILE:\n      *(code **)piVar15 = add_input_file;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar15 = message;\n      goto LAB_001287e0;\n    case LDPT_GET_INPUT_FILE:\n      *(code **)piVar15 = get_input_file;\n      goto LAB_001287e0;\n    case LDPT_RELEASE_INPUT_FILE:\n      *(code **)piVar15 = release_input_file;\n      goto LAB_001287e0;\n    case LDPT_ADD_INPUT_LIBRARY:\n      *(code **)piVar15 = add_input_library;\n      goto LAB_001287e0;\n    case LDPT_OUTPUT_NAME:\n      *(char **)piVar15 = output_filename;\n      goto LAB_001287e0;\n    case LDPT_SET_EXTRA_LIBRARY_PATH:\n      *(code **)piVar15 = set_extra_library_path;\n      goto LAB_001287e0;\n    case LDPT_GNU_LD_VERSION:\n      *piVar15 = 0xe7;\n      goto LAB_001287e0;\n    case LDPT_GET_VIEW:\n      *(code **)piVar15 = get_view;\n      goto LAB_001287e0;\n    case LDPT_GET_SYMBOLS_V2:\n      *(code **)piVar15 = get_symbols_v2;\n      goto LAB_001287e0;\n    }\n  } while( true );\n}" { (declaration "size_t *psVar1;" primitive_type (pointer_declarator "*psVar1" * identifier) ;) (declaration "plugin_arg_t *ppVar2;" type_identifier (pointer_declarator "*ppVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "bfd_link_callbacks *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "ld_plugin_tag lVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "plugin *ppVar9;" type_identifier (pointer_declarator "*ppVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "undefined8 uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "ld_plugin_tag *plVar17;" type_identifier (pointer_declarator "*plVar17" * identifier) ;) (if_statement "if (plugins_list == (plugin_t *)0x0) {\n    return;\n  }" if (parenthesized_expression "(plugins_list == (plugin_t *)0x0)" ( (binary_expression "plugins_list == (plugin_t *)0x0" identifier == (cast_expression "(plugin_t *)0x0" ( (type_descriptor "plugin_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "ppVar9 = plugins_list;" (assignment_expression "ppVar9 = plugins_list" identifier = identifier) ;) (do_statement "do {\n    psVar1 = &ppVar9->n_args;\n    ppVar9 = ppVar9->next;\n    if (uVar14 < *psVar1) {\n      uVar14 = *psVar1 & 0xffffffff;\n    }\n  } while (ppVar9 != (plugin *)0x0);" do (compound_statement "{\n    psVar1 = &ppVar9->n_args;\n    ppVar9 = ppVar9->next;\n    if (uVar14 < *psVar1) {\n      uVar14 = *psVar1 & 0xffffffff;\n    }\n  }" { (expression_statement "psVar1 = &ppVar9->n_args;" (assignment_expression "psVar1 = &ppVar9->n_args" identifier = (pointer_expression "&ppVar9->n_args" & (field_expression "ppVar9->n_args" identifier -> field_identifier))) ;) (expression_statement "ppVar9 = ppVar9->next;" (assignment_expression "ppVar9 = ppVar9->next" identifier = (field_expression "ppVar9->next" identifier -> field_identifier)) ;) (if_statement "if (uVar14 < *psVar1) {\n      uVar14 = *psVar1 & 0xffffffff;\n    }" if (parenthesized_expression "(uVar14 < *psVar1)" ( (binary_expression "uVar14 < *psVar1" identifier < (pointer_expression "*psVar1" * identifier)) )) (compound_statement "{\n      uVar14 = *psVar1 & 0xffffffff;\n    }" { (expression_statement "uVar14 = *psVar1 & 0xffffffff;" (assignment_expression "uVar14 = *psVar1 & 0xffffffff" identifier = (binary_expression "*psVar1 & 0xffffffff" (pointer_expression "*psVar1" * identifier) & number_literal)) ;) })) }) while (parenthesized_expression "(ppVar9 != (plugin *)0x0)" ( (binary_expression "ppVar9 != (plugin *)0x0" identifier != (cast_expression "(plugin *)0x0" ( (type_descriptor "plugin *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "plVar17 = tv_header_tags + 1;" (assignment_expression "plVar17 = tv_header_tags + 1" identifier = (binary_expression "tv_header_tags + 1" identifier + number_literal)) ;) (expression_statement "puVar10 = (undefined4 *)xmalloc(((ulong)((int)uVar14 + 1) + 0x11) * 0x10);" (assignment_expression "puVar10 = (undefined4 *)xmalloc(((ulong)((int)uVar14 + 1) + 0x11) * 0x10)" identifier = (cast_expression "(undefined4 *)xmalloc(((ulong)((int)uVar14 + 1) + 0x11) * 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(((ulong)((int)uVar14 + 1) + 0x11) * 0x10)" identifier (argument_list "(((ulong)((int)uVar14 + 1) + 0x11) * 0x10)" ( (binary_expression "((ulong)((int)uVar14 + 1) + 0x11) * 0x10" (parenthesized_expression "((ulong)((int)uVar14 + 1) + 0x11)" ( (binary_expression "(ulong)((int)uVar14 + 1) + 0x11" (call_expression "(ulong)((int)uVar14 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar14 + 1)" ( (binary_expression "(int)uVar14 + 1" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) + number_literal) )) * number_literal) ))))) ;) (expression_statement "piVar15 = puVar10 + 2;" (assignment_expression "piVar15 = puVar10 + 2" identifier = (binary_expression "puVar10 + 2" identifier + number_literal)) ;) (expression_statement "lVar6 = LDPT_MESSAGE;" (assignment_expression "lVar6 = LDPT_MESSAGE" identifier = identifier) ;) (expression_statement "*puVar10 = 0xb;" (assignment_expression "*puVar10 = 0xb" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (do_statement "do {\n    switch(lVar6) {\n    case LDPT_NULL:\n    case LDPT_GOLD_VERSION:\n    case LDPT_OPTION:\n    case LDPT_GET_INPUT_SECTION_COUNT:\n    case LDPT_GET_INPUT_SECTION_TYPE:\n    case LDPT_GET_INPUT_SECTION_NAME:\n    case LDPT_GET_INPUT_SECTION_CONTENTS:\n    case LDPT_UPDATE_SECTION_ORDER:\n    case LDPT_ALLOW_SECTION_ORDERING:\n      do {\n        info_assert("../../ld/plugin.c",0x3b8);\n        piVar16 = piVar15;\n        if (plVar17 == (ld_plugin_tag *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar15 = piVar16 + 4;\n        lVar6 = *plVar17;\n        plVar17 = plVar17 + 1;\n        piVar16[2] = lVar6;\n      } while (LDPT_GET_SYMBOLS_V2 < lVar6);\n      break;\n    case LDPT_API_VERSION:\n      *piVar15 = 1;\nLAB_001287e0:\n      piVar16 = piVar15;\n      if (plVar17 != (ld_plugin_tag *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      pbVar5 = link_info.callbacks;\n      for (ppVar9 = plugins_list; ppVar9 != (plugin_t *)0x0; ppVar9 = ppVar9->next) {\n        link_info.callbacks = pbVar5;\n        pcVar11 = (code *)dlsym(ppVar9->dlhandle,"onload");\n        if ((pcVar11 == (code *)0x0) &&\n           (pcVar11 = (code *)dlsym(ppVar9->dlhandle,"_onload"), pcVar11 == (code *)0x0)) {\n          uVar13 = dlerror();\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          einfo(pcVar12,pcVar3,uVar13);\n        }\n        ppVar2 = ppVar9->args;\n        puVar4 = puVar10 + 0x44;\n        while (ppVar2 != (plugin_arg_t *)0x0) {\n          pcVar3 = ppVar2->arg;\n          ppVar2 = ppVar2->next;\n          *puVar4 = 4;\n          *(char **)(puVar4 + 2) = pcVar3;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        called_plugin = ppVar9;\n        uVar7 = (*pcVar11)(puVar10);\n        called_plugin = (plugin_t *)0x0;\n        if (uVar7 != 0) {\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          einfo(pcVar12,pcVar3,(ulong)uVar7);\n        }\n        pbVar5 = link_info.callbacks;\n      }\n      uVar7 = (uint)(byte)link_info._1_1_;\n      link_info._1_1_ = link_info._1_1_ | 3;\n      orig_notice_all = uVar7 & 1;\n      plugin_callbacks.add_archive_element = pbVar5->add_archive_element;\n      plugin_callbacks.multiple_definition = pbVar5->multiple_definition;\n      plugin_callbacks.multiple_common = pbVar5->multiple_common;\n      plugin_callbacks.add_to_set = pbVar5->add_to_set;\n      plugin_callbacks.constructor = pbVar5->constructor;\n      plugin_callbacks.warning = pbVar5->warning;\n      plugin_callbacks.undefined_symbol = pbVar5->undefined_symbol;\n      plugin_callbacks.reloc_overflow = pbVar5->reloc_overflow;\n      plugin_callbacks.reloc_dangerous = pbVar5->reloc_dangerous;\n      plugin_callbacks.unattached_reloc = pbVar5->unattached_reloc;\n      plugin_callbacks.einfo = pbVar5->einfo;\n      plugin_callbacks.info = pbVar5->info;\n      plugin_callbacks.minfo = pbVar5->minfo;\n      plugin_callbacks.override_segment_assignment = pbVar5->override_segment_assignment;\n      plugin_callbacks.notice = plugin_notice;\n      link_info.callbacks = &plugin_callbacks;\n      orig_callbacks = pbVar5;\n      register_ld_plugin_object_p(plugin_object_p);\n      iVar8 = getpagesize();\n      plugin_pagesize = (long)iVar8;\n      return;\n    case LDPT_LINKER_OUTPUT:\n      iVar8 = 0;\n      if (((link_info._0_1_ & 3) != 2) && (iVar8 = 1, (link_info._0_1_ & 3) != 0)) {\n        iVar8 = ((link_info._0_1_ & 3) == 1) + 2;\n      }\n      *piVar15 = iVar8;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_CLAIM_FILE_HOOK:\n      *(code **)piVar15 = register_claim_file;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK:\n      *(code **)piVar15 = register_all_symbols_read;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_CLEANUP_HOOK:\n      *(code **)piVar15 = register_cleanup;\n      goto LAB_001287e0;\n    case LDPT_ADD_SYMBOLS:\n      *(code **)piVar15 = add_symbols;\n      goto LAB_001287e0;\n    case LDPT_GET_SYMBOLS:\n      *(code **)piVar15 = get_symbols_v1;\n      goto LAB_001287e0;\n    case LDPT_ADD_INPUT_FILE:\n      *(code **)piVar15 = add_input_file;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar15 = message;\n      goto LAB_001287e0;\n    case LDPT_GET_INPUT_FILE:\n      *(code **)piVar15 = get_input_file;\n      goto LAB_001287e0;\n    case LDPT_RELEASE_INPUT_FILE:\n      *(code **)piVar15 = release_input_file;\n      goto LAB_001287e0;\n    case LDPT_ADD_INPUT_LIBRARY:\n      *(code **)piVar15 = add_input_library;\n      goto LAB_001287e0;\n    case LDPT_OUTPUT_NAME:\n      *(char **)piVar15 = output_filename;\n      goto LAB_001287e0;\n    case LDPT_SET_EXTRA_LIBRARY_PATH:\n      *(code **)piVar15 = set_extra_library_path;\n      goto LAB_001287e0;\n    case LDPT_GNU_LD_VERSION:\n      *piVar15 = 0xe7;\n      goto LAB_001287e0;\n    case LDPT_GET_VIEW:\n      *(code **)piVar15 = get_view;\n      goto LAB_001287e0;\n    case LDPT_GET_SYMBOLS_V2:\n      *(code **)piVar15 = get_symbols_v2;\n      goto LAB_001287e0;\n    }\n  } while( true );" do (compound_statement "{\n    switch(lVar6) {\n    case LDPT_NULL:\n    case LDPT_GOLD_VERSION:\n    case LDPT_OPTION:\n    case LDPT_GET_INPUT_SECTION_COUNT:\n    case LDPT_GET_INPUT_SECTION_TYPE:\n    case LDPT_GET_INPUT_SECTION_NAME:\n    case LDPT_GET_INPUT_SECTION_CONTENTS:\n    case LDPT_UPDATE_SECTION_ORDER:\n    case LDPT_ALLOW_SECTION_ORDERING:\n      do {\n        info_assert("../../ld/plugin.c",0x3b8);\n        piVar16 = piVar15;\n        if (plVar17 == (ld_plugin_tag *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar15 = piVar16 + 4;\n        lVar6 = *plVar17;\n        plVar17 = plVar17 + 1;\n        piVar16[2] = lVar6;\n      } while (LDPT_GET_SYMBOLS_V2 < lVar6);\n      break;\n    case LDPT_API_VERSION:\n      *piVar15 = 1;\nLAB_001287e0:\n      piVar16 = piVar15;\n      if (plVar17 != (ld_plugin_tag *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      pbVar5 = link_info.callbacks;\n      for (ppVar9 = plugins_list; ppVar9 != (plugin_t *)0x0; ppVar9 = ppVar9->next) {\n        link_info.callbacks = pbVar5;\n        pcVar11 = (code *)dlsym(ppVar9->dlhandle,"onload");\n        if ((pcVar11 == (code *)0x0) &&\n           (pcVar11 = (code *)dlsym(ppVar9->dlhandle,"_onload"), pcVar11 == (code *)0x0)) {\n          uVar13 = dlerror();\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          einfo(pcVar12,pcVar3,uVar13);\n        }\n        ppVar2 = ppVar9->args;\n        puVar4 = puVar10 + 0x44;\n        while (ppVar2 != (plugin_arg_t *)0x0) {\n          pcVar3 = ppVar2->arg;\n          ppVar2 = ppVar2->next;\n          *puVar4 = 4;\n          *(char **)(puVar4 + 2) = pcVar3;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        called_plugin = ppVar9;\n        uVar7 = (*pcVar11)(puVar10);\n        called_plugin = (plugin_t *)0x0;\n        if (uVar7 != 0) {\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          einfo(pcVar12,pcVar3,(ulong)uVar7);\n        }\n        pbVar5 = link_info.callbacks;\n      }\n      uVar7 = (uint)(byte)link_info._1_1_;\n      link_info._1_1_ = link_info._1_1_ | 3;\n      orig_notice_all = uVar7 & 1;\n      plugin_callbacks.add_archive_element = pbVar5->add_archive_element;\n      plugin_callbacks.multiple_definition = pbVar5->multiple_definition;\n      plugin_callbacks.multiple_common = pbVar5->multiple_common;\n      plugin_callbacks.add_to_set = pbVar5->add_to_set;\n      plugin_callbacks.constructor = pbVar5->constructor;\n      plugin_callbacks.warning = pbVar5->warning;\n      plugin_callbacks.undefined_symbol = pbVar5->undefined_symbol;\n      plugin_callbacks.reloc_overflow = pbVar5->reloc_overflow;\n      plugin_callbacks.reloc_dangerous = pbVar5->reloc_dangerous;\n      plugin_callbacks.unattached_reloc = pbVar5->unattached_reloc;\n      plugin_callbacks.einfo = pbVar5->einfo;\n      plugin_callbacks.info = pbVar5->info;\n      plugin_callbacks.minfo = pbVar5->minfo;\n      plugin_callbacks.override_segment_assignment = pbVar5->override_segment_assignment;\n      plugin_callbacks.notice = plugin_notice;\n      link_info.callbacks = &plugin_callbacks;\n      orig_callbacks = pbVar5;\n      register_ld_plugin_object_p(plugin_object_p);\n      iVar8 = getpagesize();\n      plugin_pagesize = (long)iVar8;\n      return;\n    case LDPT_LINKER_OUTPUT:\n      iVar8 = 0;\n      if (((link_info._0_1_ & 3) != 2) && (iVar8 = 1, (link_info._0_1_ & 3) != 0)) {\n        iVar8 = ((link_info._0_1_ & 3) == 1) + 2;\n      }\n      *piVar15 = iVar8;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_CLAIM_FILE_HOOK:\n      *(code **)piVar15 = register_claim_file;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK:\n      *(code **)piVar15 = register_all_symbols_read;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_CLEANUP_HOOK:\n      *(code **)piVar15 = register_cleanup;\n      goto LAB_001287e0;\n    case LDPT_ADD_SYMBOLS:\n      *(code **)piVar15 = add_symbols;\n      goto LAB_001287e0;\n    case LDPT_GET_SYMBOLS:\n      *(code **)piVar15 = get_symbols_v1;\n      goto LAB_001287e0;\n    case LDPT_ADD_INPUT_FILE:\n      *(code **)piVar15 = add_input_file;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar15 = message;\n      goto LAB_001287e0;\n    case LDPT_GET_INPUT_FILE:\n      *(code **)piVar15 = get_input_file;\n      goto LAB_001287e0;\n    case LDPT_RELEASE_INPUT_FILE:\n      *(code **)piVar15 = release_input_file;\n      goto LAB_001287e0;\n    case LDPT_ADD_INPUT_LIBRARY:\n      *(code **)piVar15 = add_input_library;\n      goto LAB_001287e0;\n    case LDPT_OUTPUT_NAME:\n      *(char **)piVar15 = output_filename;\n      goto LAB_001287e0;\n    case LDPT_SET_EXTRA_LIBRARY_PATH:\n      *(code **)piVar15 = set_extra_library_path;\n      goto LAB_001287e0;\n    case LDPT_GNU_LD_VERSION:\n      *piVar15 = 0xe7;\n      goto LAB_001287e0;\n    case LDPT_GET_VIEW:\n      *(code **)piVar15 = get_view;\n      goto LAB_001287e0;\n    case LDPT_GET_SYMBOLS_V2:\n      *(code **)piVar15 = get_symbols_v2;\n      goto LAB_001287e0;\n    }\n  }" { (switch_statement "switch(lVar6) {\n    case LDPT_NULL:\n    case LDPT_GOLD_VERSION:\n    case LDPT_OPTION:\n    case LDPT_GET_INPUT_SECTION_COUNT:\n    case LDPT_GET_INPUT_SECTION_TYPE:\n    case LDPT_GET_INPUT_SECTION_NAME:\n    case LDPT_GET_INPUT_SECTION_CONTENTS:\n    case LDPT_UPDATE_SECTION_ORDER:\n    case LDPT_ALLOW_SECTION_ORDERING:\n      do {\n        info_assert("../../ld/plugin.c",0x3b8);\n        piVar16 = piVar15;\n        if (plVar17 == (ld_plugin_tag *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar15 = piVar16 + 4;\n        lVar6 = *plVar17;\n        plVar17 = plVar17 + 1;\n        piVar16[2] = lVar6;\n      } while (LDPT_GET_SYMBOLS_V2 < lVar6);\n      break;\n    case LDPT_API_VERSION:\n      *piVar15 = 1;\nLAB_001287e0:\n      piVar16 = piVar15;\n      if (plVar17 != (ld_plugin_tag *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      pbVar5 = link_info.callbacks;\n      for (ppVar9 = plugins_list; ppVar9 != (plugin_t *)0x0; ppVar9 = ppVar9->next) {\n        link_info.callbacks = pbVar5;\n        pcVar11 = (code *)dlsym(ppVar9->dlhandle,"onload");\n        if ((pcVar11 == (code *)0x0) &&\n           (pcVar11 = (code *)dlsym(ppVar9->dlhandle,"_onload"), pcVar11 == (code *)0x0)) {\n          uVar13 = dlerror();\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          einfo(pcVar12,pcVar3,uVar13);\n        }\n        ppVar2 = ppVar9->args;\n        puVar4 = puVar10 + 0x44;\n        while (ppVar2 != (plugin_arg_t *)0x0) {\n          pcVar3 = ppVar2->arg;\n          ppVar2 = ppVar2->next;\n          *puVar4 = 4;\n          *(char **)(puVar4 + 2) = pcVar3;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        called_plugin = ppVar9;\n        uVar7 = (*pcVar11)(puVar10);\n        called_plugin = (plugin_t *)0x0;\n        if (uVar7 != 0) {\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          einfo(pcVar12,pcVar3,(ulong)uVar7);\n        }\n        pbVar5 = link_info.callbacks;\n      }\n      uVar7 = (uint)(byte)link_info._1_1_;\n      link_info._1_1_ = link_info._1_1_ | 3;\n      orig_notice_all = uVar7 & 1;\n      plugin_callbacks.add_archive_element = pbVar5->add_archive_element;\n      plugin_callbacks.multiple_definition = pbVar5->multiple_definition;\n      plugin_callbacks.multiple_common = pbVar5->multiple_common;\n      plugin_callbacks.add_to_set = pbVar5->add_to_set;\n      plugin_callbacks.constructor = pbVar5->constructor;\n      plugin_callbacks.warning = pbVar5->warning;\n      plugin_callbacks.undefined_symbol = pbVar5->undefined_symbol;\n      plugin_callbacks.reloc_overflow = pbVar5->reloc_overflow;\n      plugin_callbacks.reloc_dangerous = pbVar5->reloc_dangerous;\n      plugin_callbacks.unattached_reloc = pbVar5->unattached_reloc;\n      plugin_callbacks.einfo = pbVar5->einfo;\n      plugin_callbacks.info = pbVar5->info;\n      plugin_callbacks.minfo = pbVar5->minfo;\n      plugin_callbacks.override_segment_assignment = pbVar5->override_segment_assignment;\n      plugin_callbacks.notice = plugin_notice;\n      link_info.callbacks = &plugin_callbacks;\n      orig_callbacks = pbVar5;\n      register_ld_plugin_object_p(plugin_object_p);\n      iVar8 = getpagesize();\n      plugin_pagesize = (long)iVar8;\n      return;\n    case LDPT_LINKER_OUTPUT:\n      iVar8 = 0;\n      if (((link_info._0_1_ & 3) != 2) && (iVar8 = 1, (link_info._0_1_ & 3) != 0)) {\n        iVar8 = ((link_info._0_1_ & 3) == 1) + 2;\n      }\n      *piVar15 = iVar8;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_CLAIM_FILE_HOOK:\n      *(code **)piVar15 = register_claim_file;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK:\n      *(code **)piVar15 = register_all_symbols_read;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_CLEANUP_HOOK:\n      *(code **)piVar15 = register_cleanup;\n      goto LAB_001287e0;\n    case LDPT_ADD_SYMBOLS:\n      *(code **)piVar15 = add_symbols;\n      goto LAB_001287e0;\n    case LDPT_GET_SYMBOLS:\n      *(code **)piVar15 = get_symbols_v1;\n      goto LAB_001287e0;\n    case LDPT_ADD_INPUT_FILE:\n      *(code **)piVar15 = add_input_file;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar15 = message;\n      goto LAB_001287e0;\n    case LDPT_GET_INPUT_FILE:\n      *(code **)piVar15 = get_input_file;\n      goto LAB_001287e0;\n    case LDPT_RELEASE_INPUT_FILE:\n      *(code **)piVar15 = release_input_file;\n      goto LAB_001287e0;\n    case LDPT_ADD_INPUT_LIBRARY:\n      *(code **)piVar15 = add_input_library;\n      goto LAB_001287e0;\n    case LDPT_OUTPUT_NAME:\n      *(char **)piVar15 = output_filename;\n      goto LAB_001287e0;\n    case LDPT_SET_EXTRA_LIBRARY_PATH:\n      *(code **)piVar15 = set_extra_library_path;\n      goto LAB_001287e0;\n    case LDPT_GNU_LD_VERSION:\n      *piVar15 = 0xe7;\n      goto LAB_001287e0;\n    case LDPT_GET_VIEW:\n      *(code **)piVar15 = get_view;\n      goto LAB_001287e0;\n    case LDPT_GET_SYMBOLS_V2:\n      *(code **)piVar15 = get_symbols_v2;\n      goto LAB_001287e0;\n    }" switch (parenthesized_expression "(lVar6)" ( identifier )) (compound_statement "{\n    case LDPT_NULL:\n    case LDPT_GOLD_VERSION:\n    case LDPT_OPTION:\n    case LDPT_GET_INPUT_SECTION_COUNT:\n    case LDPT_GET_INPUT_SECTION_TYPE:\n    case LDPT_GET_INPUT_SECTION_NAME:\n    case LDPT_GET_INPUT_SECTION_CONTENTS:\n    case LDPT_UPDATE_SECTION_ORDER:\n    case LDPT_ALLOW_SECTION_ORDERING:\n      do {\n        info_assert("../../ld/plugin.c",0x3b8);\n        piVar16 = piVar15;\n        if (plVar17 == (ld_plugin_tag *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar15 = piVar16 + 4;\n        lVar6 = *plVar17;\n        plVar17 = plVar17 + 1;\n        piVar16[2] = lVar6;\n      } while (LDPT_GET_SYMBOLS_V2 < lVar6);\n      break;\n    case LDPT_API_VERSION:\n      *piVar15 = 1;\nLAB_001287e0:\n      piVar16 = piVar15;\n      if (plVar17 != (ld_plugin_tag *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      pbVar5 = link_info.callbacks;\n      for (ppVar9 = plugins_list; ppVar9 != (plugin_t *)0x0; ppVar9 = ppVar9->next) {\n        link_info.callbacks = pbVar5;\n        pcVar11 = (code *)dlsym(ppVar9->dlhandle,"onload");\n        if ((pcVar11 == (code *)0x0) &&\n           (pcVar11 = (code *)dlsym(ppVar9->dlhandle,"_onload"), pcVar11 == (code *)0x0)) {\n          uVar13 = dlerror();\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          einfo(pcVar12,pcVar3,uVar13);\n        }\n        ppVar2 = ppVar9->args;\n        puVar4 = puVar10 + 0x44;\n        while (ppVar2 != (plugin_arg_t *)0x0) {\n          pcVar3 = ppVar2->arg;\n          ppVar2 = ppVar2->next;\n          *puVar4 = 4;\n          *(char **)(puVar4 + 2) = pcVar3;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        called_plugin = ppVar9;\n        uVar7 = (*pcVar11)(puVar10);\n        called_plugin = (plugin_t *)0x0;\n        if (uVar7 != 0) {\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          einfo(pcVar12,pcVar3,(ulong)uVar7);\n        }\n        pbVar5 = link_info.callbacks;\n      }\n      uVar7 = (uint)(byte)link_info._1_1_;\n      link_info._1_1_ = link_info._1_1_ | 3;\n      orig_notice_all = uVar7 & 1;\n      plugin_callbacks.add_archive_element = pbVar5->add_archive_element;\n      plugin_callbacks.multiple_definition = pbVar5->multiple_definition;\n      plugin_callbacks.multiple_common = pbVar5->multiple_common;\n      plugin_callbacks.add_to_set = pbVar5->add_to_set;\n      plugin_callbacks.constructor = pbVar5->constructor;\n      plugin_callbacks.warning = pbVar5->warning;\n      plugin_callbacks.undefined_symbol = pbVar5->undefined_symbol;\n      plugin_callbacks.reloc_overflow = pbVar5->reloc_overflow;\n      plugin_callbacks.reloc_dangerous = pbVar5->reloc_dangerous;\n      plugin_callbacks.unattached_reloc = pbVar5->unattached_reloc;\n      plugin_callbacks.einfo = pbVar5->einfo;\n      plugin_callbacks.info = pbVar5->info;\n      plugin_callbacks.minfo = pbVar5->minfo;\n      plugin_callbacks.override_segment_assignment = pbVar5->override_segment_assignment;\n      plugin_callbacks.notice = plugin_notice;\n      link_info.callbacks = &plugin_callbacks;\n      orig_callbacks = pbVar5;\n      register_ld_plugin_object_p(plugin_object_p);\n      iVar8 = getpagesize();\n      plugin_pagesize = (long)iVar8;\n      return;\n    case LDPT_LINKER_OUTPUT:\n      iVar8 = 0;\n      if (((link_info._0_1_ & 3) != 2) && (iVar8 = 1, (link_info._0_1_ & 3) != 0)) {\n        iVar8 = ((link_info._0_1_ & 3) == 1) + 2;\n      }\n      *piVar15 = iVar8;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_CLAIM_FILE_HOOK:\n      *(code **)piVar15 = register_claim_file;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK:\n      *(code **)piVar15 = register_all_symbols_read;\n      goto LAB_001287e0;\n    case LDPT_REGISTER_CLEANUP_HOOK:\n      *(code **)piVar15 = register_cleanup;\n      goto LAB_001287e0;\n    case LDPT_ADD_SYMBOLS:\n      *(code **)piVar15 = add_symbols;\n      goto LAB_001287e0;\n    case LDPT_GET_SYMBOLS:\n      *(code **)piVar15 = get_symbols_v1;\n      goto LAB_001287e0;\n    case LDPT_ADD_INPUT_FILE:\n      *(code **)piVar15 = add_input_file;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar15 = message;\n      goto LAB_001287e0;\n    case LDPT_GET_INPUT_FILE:\n      *(code **)piVar15 = get_input_file;\n      goto LAB_001287e0;\n    case LDPT_RELEASE_INPUT_FILE:\n      *(code **)piVar15 = release_input_file;\n      goto LAB_001287e0;\n    case LDPT_ADD_INPUT_LIBRARY:\n      *(code **)piVar15 = add_input_library;\n      goto LAB_001287e0;\n    case LDPT_OUTPUT_NAME:\n      *(char **)piVar15 = output_filename;\n      goto LAB_001287e0;\n    case LDPT_SET_EXTRA_LIBRARY_PATH:\n      *(code **)piVar15 = set_extra_library_path;\n      goto LAB_001287e0;\n    case LDPT_GNU_LD_VERSION:\n      *piVar15 = 0xe7;\n      goto LAB_001287e0;\n    case LDPT_GET_VIEW:\n      *(code **)piVar15 = get_view;\n      goto LAB_001287e0;\n    case LDPT_GET_SYMBOLS_V2:\n      *(code **)piVar15 = get_symbols_v2;\n      goto LAB_001287e0;\n    }" { (case_statement "case LDPT_NULL:" case identifier :) (case_statement "case LDPT_GOLD_VERSION:" case identifier :) (case_statement "case LDPT_OPTION:" case identifier :) (case_statement "case LDPT_GET_INPUT_SECTION_COUNT:" case identifier :) (case_statement "case LDPT_GET_INPUT_SECTION_TYPE:" case identifier :) (case_statement "case LDPT_GET_INPUT_SECTION_NAME:" case identifier :) (case_statement "case LDPT_GET_INPUT_SECTION_CONTENTS:" case identifier :) (case_statement "case LDPT_UPDATE_SECTION_ORDER:" case identifier :) (case_statement "case LDPT_ALLOW_SECTION_ORDERING:\n      do {\n        info_assert("../../ld/plugin.c",0x3b8);\n        piVar16 = piVar15;\n        if (plVar17 == (ld_plugin_tag *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar15 = piVar16 + 4;\n        lVar6 = *plVar17;\n        plVar17 = plVar17 + 1;\n        piVar16[2] = lVar6;\n      } while (LDPT_GET_SYMBOLS_V2 < lVar6);\n      break;" case identifier : (do_statement "do {\n        info_assert("../../ld/plugin.c",0x3b8);\n        piVar16 = piVar15;\n        if (plVar17 == (ld_plugin_tag *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar15 = piVar16 + 4;\n        lVar6 = *plVar17;\n        plVar17 = plVar17 + 1;\n        piVar16[2] = lVar6;\n      } while (LDPT_GET_SYMBOLS_V2 < lVar6);" do (compound_statement "{\n        info_assert("../../ld/plugin.c",0x3b8);\n        piVar16 = piVar15;\n        if (plVar17 == (ld_plugin_tag *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar15 = piVar16 + 4;\n        lVar6 = *plVar17;\n        plVar17 = plVar17 + 1;\n        piVar16[2] = lVar6;\n      }" { (expression_statement "info_assert("../../ld/plugin.c",0x3b8);" (call_expression "info_assert("../../ld/plugin.c",0x3b8)" identifier (argument_list "("../../ld/plugin.c",0x3b8)" ( (string_literal ""../../ld/plugin.c"" " string_content ") , number_literal ))) ;) (expression_statement "piVar16 = piVar15;" (assignment_expression "piVar16 = piVar15" identifier = identifier) ;) (if_statement "if (plVar17 == (ld_plugin_tag *)&DAT_00142404) goto LAB_00128828;" if (parenthesized_expression "(plVar17 == (ld_plugin_tag *)&DAT_00142404)" ( (binary_expression "plVar17 == (ld_plugin_tag *)&DAT_00142404" identifier == (cast_expression "(ld_plugin_tag *)&DAT_00142404" ( (type_descriptor "ld_plugin_tag *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00142404" & identifier))) )) (goto_statement "goto LAB_00128828;" goto statement_identifier ;)) (labeled_statement "LAB_001287e9:\n        piVar15 = piVar16 + 4;" statement_identifier : (expression_statement "piVar15 = piVar16 + 4;" (assignment_expression "piVar15 = piVar16 + 4" identifier = (binary_expression "piVar16 + 4" identifier + number_literal)) ;)) (expression_statement "lVar6 = *plVar17;" (assignment_expression "lVar6 = *plVar17" identifier = (pointer_expression "*plVar17" * identifier)) ;) (expression_statement "plVar17 = plVar17 + 1;" (assignment_expression "plVar17 = plVar17 + 1" identifier = (binary_expression "plVar17 + 1" identifier + number_literal)) ;) (expression_statement "piVar16[2] = lVar6;" (assignment_expression "piVar16[2] = lVar6" (subscript_expression "piVar16[2]" identifier [ number_literal ]) = identifier) ;) }) while (parenthesized_expression "(LDPT_GET_SYMBOLS_V2 < lVar6)" ( (binary_expression "LDPT_GET_SYMBOLS_V2 < lVar6" identifier < identifier) )) ;) (break_statement "break;" break ;)) (case_statement "case LDPT_API_VERSION:\n      *piVar15 = 1;\nLAB_001287e0:\n      piVar16 = piVar15;\n      if (plVar17 != (ld_plugin_tag *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      pbVar5 = link_info.callbacks;\n      for (ppVar9 = plugins_list; ppVar9 != (plugin_t *)0x0; ppVar9 = ppVar9->next) {\n        link_info.callbacks = pbVar5;\n        pcVar11 = (code *)dlsym(ppVar9->dlhandle,"onload");\n        if ((pcVar11 == (code *)0x0) &&\n           (pcVar11 = (code *)dlsym(ppVar9->dlhandle,"_onload"), pcVar11 == (code *)0x0)) {\n          uVar13 = dlerror();\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          einfo(pcVar12,pcVar3,uVar13);\n        }\n        ppVar2 = ppVar9->args;\n        puVar4 = puVar10 + 0x44;\n        while (ppVar2 != (plugin_arg_t *)0x0) {\n          pcVar3 = ppVar2->arg;\n          ppVar2 = ppVar2->next;\n          *puVar4 = 4;\n          *(char **)(puVar4 + 2) = pcVar3;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        called_plugin = ppVar9;\n        uVar7 = (*pcVar11)(puVar10);\n        called_plugin = (plugin_t *)0x0;\n        if (uVar7 != 0) {\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          einfo(pcVar12,pcVar3,(ulong)uVar7);\n        }\n        pbVar5 = link_info.callbacks;\n      }\n      uVar7 = (uint)(byte)link_info._1_1_;\n      link_info._1_1_ = link_info._1_1_ | 3;\n      orig_notice_all = uVar7 & 1;\n      plugin_callbacks.add_archive_element = pbVar5->add_archive_element;\n      plugin_callbacks.multiple_definition = pbVar5->multiple_definition;\n      plugin_callbacks.multiple_common = pbVar5->multiple_common;\n      plugin_callbacks.add_to_set = pbVar5->add_to_set;\n      plugin_callbacks.constructor = pbVar5->constructor;\n      plugin_callbacks.warning = pbVar5->warning;\n      plugin_callbacks.undefined_symbol = pbVar5->undefined_symbol;\n      plugin_callbacks.reloc_overflow = pbVar5->reloc_overflow;\n      plugin_callbacks.reloc_dangerous = pbVar5->reloc_dangerous;\n      plugin_callbacks.unattached_reloc = pbVar5->unattached_reloc;\n      plugin_callbacks.einfo = pbVar5->einfo;\n      plugin_callbacks.info = pbVar5->info;\n      plugin_callbacks.minfo = pbVar5->minfo;\n      plugin_callbacks.override_segment_assignment = pbVar5->override_segment_assignment;\n      plugin_callbacks.notice = plugin_notice;\n      link_info.callbacks = &plugin_callbacks;\n      orig_callbacks = pbVar5;\n      register_ld_plugin_object_p(plugin_object_p);\n      iVar8 = getpagesize();\n      plugin_pagesize = (long)iVar8;\n      return;" case identifier : (expression_statement "*piVar15 = 1;" (assignment_expression "*piVar15 = 1" (pointer_expression "*piVar15" * identifier) = number_literal) ;) (labeled_statement "LAB_001287e0:\n      piVar16 = piVar15;" statement_identifier : (expression_statement "piVar16 = piVar15;" (assignment_expression "piVar16 = piVar15" identifier = identifier) ;)) (if_statement "if (plVar17 != (ld_plugin_tag *)&DAT_00142404) goto LAB_001287e9;" if (parenthesized_expression "(plVar17 != (ld_plugin_tag *)&DAT_00142404)" ( (binary_expression "plVar17 != (ld_plugin_tag *)&DAT_00142404" identifier != (cast_expression "(ld_plugin_tag *)&DAT_00142404" ( (type_descriptor "ld_plugin_tag *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00142404" & identifier))) )) (goto_statement "goto LAB_001287e9;" goto statement_identifier ;)) (labeled_statement "LAB_00128828:\n      pbVar5 = link_info.callbacks;" statement_identifier : (expression_statement "pbVar5 = link_info.callbacks;" (assignment_expression "pbVar5 = link_info.callbacks" identifier = (field_expression "link_info.callbacks" identifier . field_identifier)) ;)) (for_statement "for (ppVar9 = plugins_list; ppVar9 != (plugin_t *)0x0; ppVar9 = ppVar9->next) {\n        link_info.callbacks = pbVar5;\n        pcVar11 = (code *)dlsym(ppVar9->dlhandle,"onload");\n        if ((pcVar11 == (code *)0x0) &&\n           (pcVar11 = (code *)dlsym(ppVar9->dlhandle,"_onload"), pcVar11 == (code *)0x0)) {\n          uVar13 = dlerror();\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          einfo(pcVar12,pcVar3,uVar13);\n        }\n        ppVar2 = ppVar9->args;\n        puVar4 = puVar10 + 0x44;\n        while (ppVar2 != (plugin_arg_t *)0x0) {\n          pcVar3 = ppVar2->arg;\n          ppVar2 = ppVar2->next;\n          *puVar4 = 4;\n          *(char **)(puVar4 + 2) = pcVar3;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        called_plugin = ppVar9;\n        uVar7 = (*pcVar11)(puVar10);\n        called_plugin = (plugin_t *)0x0;\n        if (uVar7 != 0) {\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          einfo(pcVar12,pcVar3,(ulong)uVar7);\n        }\n        pbVar5 = link_info.callbacks;\n      }" for ( (assignment_expression "ppVar9 = plugins_list" identifier = identifier) ; (binary_expression "ppVar9 != (plugin_t *)0x0" identifier != (cast_expression "(plugin_t *)0x0" ( (type_descriptor "plugin_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "ppVar9 = ppVar9->next" identifier = (field_expression "ppVar9->next" identifier -> field_identifier)) ) (compound_statement "{\n        link_info.callbacks = pbVar5;\n        pcVar11 = (code *)dlsym(ppVar9->dlhandle,"onload");\n        if ((pcVar11 == (code *)0x0) &&\n           (pcVar11 = (code *)dlsym(ppVar9->dlhandle,"_onload"), pcVar11 == (code *)0x0)) {\n          uVar13 = dlerror();\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          einfo(pcVar12,pcVar3,uVar13);\n        }\n        ppVar2 = ppVar9->args;\n        puVar4 = puVar10 + 0x44;\n        while (ppVar2 != (plugin_arg_t *)0x0) {\n          pcVar3 = ppVar2->arg;\n          ppVar2 = ppVar2->next;\n          *puVar4 = 4;\n          *(char **)(puVar4 + 2) = pcVar3;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        called_plugin = ppVar9;\n        uVar7 = (*pcVar11)(puVar10);\n        called_plugin = (plugin_t *)0x0;\n        if (uVar7 != 0) {\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          einfo(pcVar12,pcVar3,(ulong)uVar7);\n        }\n        pbVar5 = link_info.callbacks;\n      }" { (expression_statement "link_info.callbacks = pbVar5;" (assignment_expression "link_info.callbacks = pbVar5" (field_expression "link_info.callbacks" identifier . field_identifier) = identifier) ;) (expression_statement "pcVar11 = (code *)dlsym(ppVar9->dlhandle,"onload");" (assignment_expression "pcVar11 = (code *)dlsym(ppVar9->dlhandle,"onload")" identifier = (cast_expression "(code *)dlsym(ppVar9->dlhandle,"onload")" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dlsym(ppVar9->dlhandle,"onload")" identifier (argument_list "(ppVar9->dlhandle,"onload")" ( (field_expression "ppVar9->dlhandle" identifier -> field_identifier) , (string_literal ""onload"" " string_content ") ))))) ;) (if_statement "if ((pcVar11 == (code *)0x0) &&\n           (pcVar11 = (code *)dlsym(ppVar9->dlhandle,"_onload"), pcVar11 == (code *)0x0)) {\n          uVar13 = dlerror();\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          einfo(pcVar12,pcVar3,uVar13);\n        }" if (parenthesized_expression "((pcVar11 == (code *)0x0) &&\n           (pcVar11 = (code *)dlsym(ppVar9->dlhandle,"_onload"), pcVar11 == (code *)0x0))" ( (binary_expression "(pcVar11 == (code *)0x0) &&\n           (pcVar11 = (code *)dlsym(ppVar9->dlhandle,"_onload"), pcVar11 == (code *)0x0)" (parenthesized_expression "(pcVar11 == (code *)0x0)" ( (binary_expression "pcVar11 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar11 = (code *)dlsym(ppVar9->dlhandle,"_onload"), pcVar11 == (code *)0x0)" ( (comma_expression "pcVar11 = (code *)dlsym(ppVar9->dlhandle,"_onload"), pcVar11 == (code *)0x0" (assignment_expression "pcVar11 = (code *)dlsym(ppVar9->dlhandle,"_onload")" identifier = (cast_expression "(code *)dlsym(ppVar9->dlhandle,"_onload")" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dlsym(ppVar9->dlhandle,"_onload")" identifier (argument_list "(ppVar9->dlhandle,"_onload")" ( (field_expression "ppVar9->dlhandle" identifier -> field_identifier) , (string_literal ""_onload"" " string_content ") ))))) , (binary_expression "pcVar11 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          uVar13 = dlerror();\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          einfo(pcVar12,pcVar3,uVar13);\n        }" { (expression_statement "uVar13 = dlerror();" (assignment_expression "uVar13 = dlerror()" identifier = (call_expression "dlerror()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar3 = ppVar9->name;" (assignment_expression "pcVar3 = ppVar9->name" identifier = (field_expression "ppVar9->name" identifier -> field_identifier)) ;) (expression_statement "pcVar12 = (char *)dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);" (assignment_expression "pcVar12 = (char *)dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5)" identifier (argument_list "(0,"%F%P: %s: error loading plugin: %s\n",5)" ( number_literal , (string_literal ""%F%P: %s: error loading plugin: %s\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar12,pcVar3,uVar13);" (call_expression "einfo(pcVar12,pcVar3,uVar13)" identifier (argument_list "(pcVar12,pcVar3,uVar13)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "ppVar2 = ppVar9->args;" (assignment_expression "ppVar2 = ppVar9->args" identifier = (field_expression "ppVar9->args" identifier -> field_identifier)) ;) (expression_statement "puVar4 = puVar10 + 0x44;" (assignment_expression "puVar4 = puVar10 + 0x44" identifier = (binary_expression "puVar10 + 0x44" identifier + number_literal)) ;) (while_statement "while (ppVar2 != (plugin_arg_t *)0x0) {\n          pcVar3 = ppVar2->arg;\n          ppVar2 = ppVar2->next;\n          *puVar4 = 4;\n          *(char **)(puVar4 + 2) = pcVar3;\n          puVar4 = puVar4 + 4;\n        }" while (parenthesized_expression "(ppVar2 != (plugin_arg_t *)0x0)" ( (binary_expression "ppVar2 != (plugin_arg_t *)0x0" identifier != (cast_expression "(plugin_arg_t *)0x0" ( (type_descriptor "plugin_arg_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar3 = ppVar2->arg;\n          ppVar2 = ppVar2->next;\n          *puVar4 = 4;\n          *(char **)(puVar4 + 2) = pcVar3;\n          puVar4 = puVar4 + 4;\n        }" { (expression_statement "pcVar3 = ppVar2->arg;" (assignment_expression "pcVar3 = ppVar2->arg" identifier = (field_expression "ppVar2->arg" identifier -> field_identifier)) ;) (expression_statement "ppVar2 = ppVar2->next;" (assignment_expression "ppVar2 = ppVar2->next" identifier = (field_expression "ppVar2->next" identifier -> field_identifier)) ;) (expression_statement "*puVar4 = 4;" (assignment_expression "*puVar4 = 4" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "*(char **)(puVar4 + 2) = pcVar3;" (assignment_expression "*(char **)(puVar4 + 2) = pcVar3" (pointer_expression "*(char **)(puVar4 + 2)" * (cast_expression "(char **)(puVar4 + 2)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar4 = puVar4 + 4;" (assignment_expression "puVar4 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) })) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "called_plugin = ppVar9;" (assignment_expression "called_plugin = ppVar9" identifier = identifier) ;) (expression_statement "uVar7 = (*pcVar11)(puVar10);" (assignment_expression "uVar7 = (*pcVar11)(puVar10)" identifier = (call_expression "(*pcVar11)(puVar10)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(puVar10)" ( identifier )))) ;) (expression_statement "called_plugin = (plugin_t *)0x0;" (assignment_expression "called_plugin = (plugin_t *)0x0" identifier = (cast_expression "(plugin_t *)0x0" ( (type_descriptor "plugin_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (uVar7 != 0) {\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          einfo(pcVar12,pcVar3,(ulong)uVar7);\n        }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          pcVar3 = ppVar9->name;\n          pcVar12 = (char *)dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          einfo(pcVar12,pcVar3,(ulong)uVar7);\n        }" { (expression_statement "pcVar3 = ppVar9->name;" (assignment_expression "pcVar3 = ppVar9->name" identifier = (field_expression "ppVar9->name" identifier -> field_identifier)) ;) (expression_statement "pcVar12 = (char *)dcgettext(0,"%F%P: %s: plugin error: %d\n",5);" (assignment_expression "pcVar12 = (char *)dcgettext(0,"%F%P: %s: plugin error: %d\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: %s: plugin error: %d\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: %s: plugin error: %d\n",5)" identifier (argument_list "(0,"%F%P: %s: plugin error: %d\n",5)" ( number_literal , (string_literal ""%F%P: %s: plugin error: %d\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar12,pcVar3,(ulong)uVar7);" (call_expression "einfo(pcVar12,pcVar3,(ulong)uVar7)" identifier (argument_list "(pcVar12,pcVar3,(ulong)uVar7)" ( identifier , identifier , (cast_expression "(ulong)uVar7" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) })) (expression_statement "pbVar5 = link_info.callbacks;" (assignment_expression "pbVar5 = link_info.callbacks" identifier = (field_expression "link_info.callbacks" identifier . field_identifier)) ;) })) (expression_statement "uVar7 = (uint)(byte)link_info._1_1_;" (assignment_expression "uVar7 = (uint)(byte)link_info._1_1_" identifier = (cast_expression "(uint)(byte)link_info._1_1_" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)link_info._1_1_" ( (type_descriptor "byte" type_identifier) ) (field_expression "link_info._1_1_" identifier . field_identifier)))) ;) (expression_statement "link_info._1_1_ = link_info._1_1_ | 3;" (assignment_expression "link_info._1_1_ = link_info._1_1_ | 3" (field_expression "link_info._1_1_" identifier . field_identifier) = (binary_expression "link_info._1_1_ | 3" (field_expression "link_info._1_1_" identifier . field_identifier) | number_literal)) ;) (expression_statement "orig_notice_all = uVar7 & 1;" (assignment_expression "orig_notice_all = uVar7 & 1" identifier = (binary_expression "uVar7 & 1" identifier & number_literal)) ;) (expression_statement "plugin_callbacks.add_archive_element = pbVar5->add_archive_element;" (assignment_expression "plugin_callbacks.add_archive_element = pbVar5->add_archive_element" (field_expression "plugin_callbacks.add_archive_element" identifier . field_identifier) = (field_expression "pbVar5->add_archive_element" identifier -> field_identifier)) ;) (expression_statement "plugin_callbacks.multiple_definition = pbVar5->multiple_definition;" (assignment_expression "plugin_callbacks.multiple_definition = pbVar5->multiple_definition" (field_expression "plugin_callbacks.multiple_definition" identifier . field_identifier) = (field_expression "pbVar5->multiple_definition" identifier -> field_identifier)) ;) (expression_statement "plugin_callbacks.multiple_common = pbVar5->multiple_common;" (assignment_expression "plugin_callbacks.multiple_common = pbVar5->multiple_common" (field_expression "plugin_callbacks.multiple_common" identifier . field_identifier) = (field_expression "pbVar5->multiple_common" identifier -> field_identifier)) ;) (expression_statement "plugin_callbacks.add_to_set = pbVar5->add_to_set;" (assignment_expression "plugin_callbacks.add_to_set = pbVar5->add_to_set" (field_expression "plugin_callbacks.add_to_set" identifier . field_identifier) = (field_expression "pbVar5->add_to_set" identifier -> field_identifier)) ;) (expression_statement "plugin_callbacks.constructor = pbVar5->constructor;" (assignment_expression "plugin_callbacks.constructor = pbVar5->constructor" (field_expression "plugin_callbacks.constructor" identifier . field_identifier) = (field_expression "pbVar5->constructor" identifier -> field_identifier)) ;) (expression_statement "plugin_callbacks.warning = pbVar5->warning;" (assignment_expression "plugin_callbacks.warning = pbVar5->warning" (field_expression "plugin_callbacks.warning" identifier . field_identifier) = (field_expression "pbVar5->warning" identifier -> field_identifier)) ;) (expression_statement "plugin_callbacks.undefined_symbol = pbVar5->undefined_symbol;" (assignment_expression "plugin_callbacks.undefined_symbol = pbVar5->undefined_symbol" (field_expression "plugin_callbacks.undefined_symbol" identifier . field_identifier) = (field_expression "pbVar5->undefined_symbol" identifier -> field_identifier)) ;) (expression_statement "plugin_callbacks.reloc_overflow = pbVar5->reloc_overflow;" (assignment_expression "plugin_callbacks.reloc_overflow = pbVar5->reloc_overflow" (field_expression "plugin_callbacks.reloc_overflow" identifier . field_identifier) = (field_expression "pbVar5->reloc_overflow" identifier -> field_identifier)) ;) (expression_statement "plugin_callbacks.reloc_dangerous = pbVar5->reloc_dangerous;" (assignment_expression "plugin_callbacks.reloc_dangerous = pbVar5->reloc_dangerous" (field_expression "plugin_callbacks.reloc_dangerous" identifier . field_identifier) = (field_expression "pbVar5->reloc_dangerous" identifier -> field_identifier)) ;) (expression_statement "plugin_callbacks.unattached_reloc = pbVar5->unattached_reloc;" (assignment_expression "plugin_callbacks.unattached_reloc = pbVar5->unattached_reloc" (field_expression "plugin_callbacks.unattached_reloc" identifier . field_identifier) = (field_expression "pbVar5->unattached_reloc" identifier -> field_identifier)) ;) (expression_statement "plugin_callbacks.einfo = pbVar5->einfo;" (assignment_expression "plugin_callbacks.einfo = pbVar5->einfo" (field_expression "plugin_callbacks.einfo" identifier . field_identifier) = (field_expression "pbVar5->einfo" identifier -> field_identifier)) ;) (expression_statement "plugin_callbacks.info = pbVar5->info;" (assignment_expression "plugin_callbacks.info = pbVar5->info" (field_expression "plugin_callbacks.info" identifier . field_identifier) = (field_expression "pbVar5->info" identifier -> field_identifier)) ;) (expression_statement "plugin_callbacks.minfo = pbVar5->minfo;" (assignment_expression "plugin_callbacks.minfo = pbVar5->minfo" (field_expression "plugin_callbacks.minfo" identifier . field_identifier) = (field_expression "pbVar5->minfo" identifier -> field_identifier)) ;) (expression_statement "plugin_callbacks.override_segment_assignment = pbVar5->override_segment_assignment;" (assignment_expression "plugin_callbacks.override_segment_assignment = pbVar5->override_segment_assignment" (field_expression "plugin_callbacks.override_segment_assignment" identifier . field_identifier) = (field_expression "pbVar5->override_segment_assignment" identifier -> field_identifier)) ;) (expression_statement "plugin_callbacks.notice = plugin_notice;" (assignment_expression "plugin_callbacks.notice = plugin_notice" (field_expression "plugin_callbacks.notice" identifier . field_identifier) = identifier) ;) (expression_statement "link_info.callbacks = &plugin_callbacks;" (assignment_expression "link_info.callbacks = &plugin_callbacks" (field_expression "link_info.callbacks" identifier . field_identifier) = (pointer_expression "&plugin_callbacks" & identifier)) ;) (expression_statement "orig_callbacks = pbVar5;" (assignment_expression "orig_callbacks = pbVar5" identifier = identifier) ;) (expression_statement "register_ld_plugin_object_p(plugin_object_p);" (call_expression "register_ld_plugin_object_p(plugin_object_p)" identifier (argument_list "(plugin_object_p)" ( identifier ))) ;) (expression_statement "iVar8 = getpagesize();" (assignment_expression "iVar8 = getpagesize()" identifier = (call_expression "getpagesize()" identifier (argument_list "()" ( )))) ;) (expression_statement "plugin_pagesize = (long)iVar8;" (assignment_expression "plugin_pagesize = (long)iVar8" identifier = (cast_expression "(long)iVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (return_statement "return;" return ;)) (case_statement "case LDPT_LINKER_OUTPUT:\n      iVar8 = 0;\n      if (((link_info._0_1_ & 3) != 2) && (iVar8 = 1, (link_info._0_1_ & 3) != 0)) {\n        iVar8 = ((link_info._0_1_ & 3) == 1) + 2;\n      }\n      *piVar15 = iVar8;\n      goto LAB_001287e0;" case identifier : (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (((link_info._0_1_ & 3) != 2) && (iVar8 = 1, (link_info._0_1_ & 3) != 0)) {\n        iVar8 = ((link_info._0_1_ & 3) == 1) + 2;\n      }" if (parenthesized_expression "(((link_info._0_1_ & 3) != 2) && (iVar8 = 1, (link_info._0_1_ & 3) != 0))" ( (binary_expression "((link_info._0_1_ & 3) != 2) && (iVar8 = 1, (link_info._0_1_ & 3) != 0)" (parenthesized_expression "((link_info._0_1_ & 3) != 2)" ( (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) )) && (parenthesized_expression "(iVar8 = 1, (link_info._0_1_ & 3) != 0)" ( (comma_expression "iVar8 = 1, (link_info._0_1_ & 3) != 0" (assignment_expression "iVar8 = 1" identifier = number_literal) , (binary_expression "(link_info._0_1_ & 3) != 0" (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        iVar8 = ((link_info._0_1_ & 3) == 1) + 2;\n      }" { (expression_statement "iVar8 = ((link_info._0_1_ & 3) == 1) + 2;" (assignment_expression "iVar8 = ((link_info._0_1_ & 3) == 1) + 2" identifier = (binary_expression "((link_info._0_1_ & 3) == 1) + 2" (parenthesized_expression "((link_info._0_1_ & 3) == 1)" ( (binary_expression "(link_info._0_1_ & 3) == 1" (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) )) + number_literal)) ;) })) (expression_statement "*piVar15 = iVar8;" (assignment_expression "*piVar15 = iVar8" (pointer_expression "*piVar15" * identifier) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case LDPT_REGISTER_CLAIM_FILE_HOOK:\n      *(code **)piVar15 = register_claim_file;\n      goto LAB_001287e0;" case identifier : (expression_statement "*(code **)piVar15 = register_claim_file;" (assignment_expression "*(code **)piVar15 = register_claim_file" (pointer_expression "*(code **)piVar15" * (cast_expression "(code **)piVar15" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK:\n      *(code **)piVar15 = register_all_symbols_read;\n      goto LAB_001287e0;" case identifier : (expression_statement "*(code **)piVar15 = register_all_symbols_read;" (assignment_expression "*(code **)piVar15 = register_all_symbols_read" (pointer_expression "*(code **)piVar15" * (cast_expression "(code **)piVar15" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case LDPT_REGISTER_CLEANUP_HOOK:\n      *(code **)piVar15 = register_cleanup;\n      goto LAB_001287e0;" case identifier : (expression_statement "*(code **)piVar15 = register_cleanup;" (assignment_expression "*(code **)piVar15 = register_cleanup" (pointer_expression "*(code **)piVar15" * (cast_expression "(code **)piVar15" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case LDPT_ADD_SYMBOLS:\n      *(code **)piVar15 = add_symbols;\n      goto LAB_001287e0;" case identifier : (expression_statement "*(code **)piVar15 = add_symbols;" (assignment_expression "*(code **)piVar15 = add_symbols" (pointer_expression "*(code **)piVar15" * (cast_expression "(code **)piVar15" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case LDPT_GET_SYMBOLS:\n      *(code **)piVar15 = get_symbols_v1;\n      goto LAB_001287e0;" case identifier : (expression_statement "*(code **)piVar15 = get_symbols_v1;" (assignment_expression "*(code **)piVar15 = get_symbols_v1" (pointer_expression "*(code **)piVar15" * (cast_expression "(code **)piVar15" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case LDPT_ADD_INPUT_FILE:\n      *(code **)piVar15 = add_input_file;\n      goto LAB_001287e0;" case identifier : (expression_statement "*(code **)piVar15 = add_input_file;" (assignment_expression "*(code **)piVar15 = add_input_file" (pointer_expression "*(code **)piVar15" * (cast_expression "(code **)piVar15" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "default:\n      *(code **)piVar15 = message;\n      goto LAB_001287e0;" default : (expression_statement "*(code **)piVar15 = message;" (assignment_expression "*(code **)piVar15 = message" (pointer_expression "*(code **)piVar15" * (cast_expression "(code **)piVar15" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case LDPT_GET_INPUT_FILE:\n      *(code **)piVar15 = get_input_file;\n      goto LAB_001287e0;" case identifier : (expression_statement "*(code **)piVar15 = get_input_file;" (assignment_expression "*(code **)piVar15 = get_input_file" (pointer_expression "*(code **)piVar15" * (cast_expression "(code **)piVar15" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case LDPT_RELEASE_INPUT_FILE:\n      *(code **)piVar15 = release_input_file;\n      goto LAB_001287e0;" case identifier : (expression_statement "*(code **)piVar15 = release_input_file;" (assignment_expression "*(code **)piVar15 = release_input_file" (pointer_expression "*(code **)piVar15" * (cast_expression "(code **)piVar15" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case LDPT_ADD_INPUT_LIBRARY:\n      *(code **)piVar15 = add_input_library;\n      goto LAB_001287e0;" case identifier : (expression_statement "*(code **)piVar15 = add_input_library;" (assignment_expression "*(code **)piVar15 = add_input_library" (pointer_expression "*(code **)piVar15" * (cast_expression "(code **)piVar15" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case LDPT_OUTPUT_NAME:\n      *(char **)piVar15 = output_filename;\n      goto LAB_001287e0;" case identifier : (expression_statement "*(char **)piVar15 = output_filename;" (assignment_expression "*(char **)piVar15 = output_filename" (pointer_expression "*(char **)piVar15" * (cast_expression "(char **)piVar15" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case LDPT_SET_EXTRA_LIBRARY_PATH:\n      *(code **)piVar15 = set_extra_library_path;\n      goto LAB_001287e0;" case identifier : (expression_statement "*(code **)piVar15 = set_extra_library_path;" (assignment_expression "*(code **)piVar15 = set_extra_library_path" (pointer_expression "*(code **)piVar15" * (cast_expression "(code **)piVar15" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case LDPT_GNU_LD_VERSION:\n      *piVar15 = 0xe7;\n      goto LAB_001287e0;" case identifier : (expression_statement "*piVar15 = 0xe7;" (assignment_expression "*piVar15 = 0xe7" (pointer_expression "*piVar15" * identifier) = number_literal) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case LDPT_GET_VIEW:\n      *(code **)piVar15 = get_view;\n      goto LAB_001287e0;" case identifier : (expression_statement "*(code **)piVar15 = get_view;" (assignment_expression "*(code **)piVar15 = get_view" (pointer_expression "*(code **)piVar15" * (cast_expression "(code **)piVar15" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case LDPT_GET_SYMBOLS_V2:\n      *(code **)piVar15 = get_symbols_v2;\n      goto LAB_001287e0;" case identifier : (expression_statement "*(code **)piVar15 = get_symbols_v2;" (assignment_expression "*(code **)piVar15 = get_symbols_v2" (pointer_expression "*(code **)piVar15" * (cast_expression "(code **)piVar15" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void FUN_00128740(void)\n\n{\n  ulong *puVar1;\n  undefined8 *puVar2;\n  long lVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  long *plVar6;\n  undefined4 *puVar7;\n  code *pcVar8;\n  undefined8 uVar9;\n  undefined8 uVar10;\n  uint uVar11;\n  ulong uVar12;\n  int *piVar13;\n  int *piVar14;\n  uint *puVar15;\n  \n  if (DAT_0017f788 == (long *)0x0) {\n    return;\n  }\n  uVar12 = 0;\n  plVar6 = DAT_0017f788;\n  do {\n    puVar1 = (ulong *)(plVar6 + 4);\n    plVar6 = (long *)*plVar6;\n    if (uVar12 < *puVar1) {\n      uVar12 = *puVar1 & 0xffffffff;\n    }\n  } while (plVar6 != (long *)0x0);\n  puVar15 = &DAT_001423c4;\n  puVar7 = (undefined4 *)xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10);\n  piVar13 = puVar7 + 2;\n  uVar11 = 0xb;\n  *puVar7 = 0xb;\n  do {\n    switch(uVar11) {\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }\n  } while( true );\n}\n\n" (function_definition "void FUN_00128740(void)\n\n{\n  ulong *puVar1;\n  undefined8 *puVar2;\n  long lVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  long *plVar6;\n  undefined4 *puVar7;\n  code *pcVar8;\n  undefined8 uVar9;\n  undefined8 uVar10;\n  uint uVar11;\n  ulong uVar12;\n  int *piVar13;\n  int *piVar14;\n  uint *puVar15;\n  \n  if (DAT_0017f788 == (long *)0x0) {\n    return;\n  }\n  uVar12 = 0;\n  plVar6 = DAT_0017f788;\n  do {\n    puVar1 = (ulong *)(plVar6 + 4);\n    plVar6 = (long *)*plVar6;\n    if (uVar12 < *puVar1) {\n      uVar12 = *puVar1 & 0xffffffff;\n    }\n  } while (plVar6 != (long *)0x0);\n  puVar15 = &DAT_001423c4;\n  puVar7 = (undefined4 *)xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10);\n  piVar13 = puVar7 + 2;\n  uVar11 = 0xb;\n  *puVar7 = 0xb;\n  do {\n    switch(uVar11) {\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }\n  } while( true );\n}" primitive_type (function_declarator "FUN_00128740(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  ulong *puVar1;\n  undefined8 *puVar2;\n  long lVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  long *plVar6;\n  undefined4 *puVar7;\n  code *pcVar8;\n  undefined8 uVar9;\n  undefined8 uVar10;\n  uint uVar11;\n  ulong uVar12;\n  int *piVar13;\n  int *piVar14;\n  uint *puVar15;\n  \n  if (DAT_0017f788 == (long *)0x0) {\n    return;\n  }\n  uVar12 = 0;\n  plVar6 = DAT_0017f788;\n  do {\n    puVar1 = (ulong *)(plVar6 + 4);\n    plVar6 = (long *)*plVar6;\n    if (uVar12 < *puVar1) {\n      uVar12 = *puVar1 & 0xffffffff;\n    }\n  } while (plVar6 != (long *)0x0);\n  puVar15 = &DAT_001423c4;\n  puVar7 = (undefined4 *)xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10);\n  piVar13 = puVar7 + 2;\n  uVar11 = 0xb;\n  *puVar7 = 0xb;\n  do {\n    switch(uVar11) {\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }\n  } while( true );\n}" { (declaration "ulong *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined8 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "undefined8 uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (if_statement "if (DAT_0017f788 == (long *)0x0) {\n    return;\n  }" if (parenthesized_expression "(DAT_0017f788 == (long *)0x0)" ( (binary_expression "DAT_0017f788 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "plVar6 = DAT_0017f788;" (assignment_expression "plVar6 = DAT_0017f788" identifier = identifier) ;) (do_statement "do {\n    puVar1 = (ulong *)(plVar6 + 4);\n    plVar6 = (long *)*plVar6;\n    if (uVar12 < *puVar1) {\n      uVar12 = *puVar1 & 0xffffffff;\n    }\n  } while (plVar6 != (long *)0x0);" do (compound_statement "{\n    puVar1 = (ulong *)(plVar6 + 4);\n    plVar6 = (long *)*plVar6;\n    if (uVar12 < *puVar1) {\n      uVar12 = *puVar1 & 0xffffffff;\n    }\n  }" { (expression_statement "puVar1 = (ulong *)(plVar6 + 4);" (assignment_expression "puVar1 = (ulong *)(plVar6 + 4)" identifier = (cast_expression "(ulong *)(plVar6 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 4)" ( (binary_expression "plVar6 + 4" identifier + number_literal) )))) ;) (expression_statement "plVar6 = (long *)*plVar6;" (assignment_expression "plVar6 = (long *)*plVar6" identifier = (cast_expression "(long *)*plVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar6" * identifier))) ;) (if_statement "if (uVar12 < *puVar1) {\n      uVar12 = *puVar1 & 0xffffffff;\n    }" if (parenthesized_expression "(uVar12 < *puVar1)" ( (binary_expression "uVar12 < *puVar1" identifier < (pointer_expression "*puVar1" * identifier)) )) (compound_statement "{\n      uVar12 = *puVar1 & 0xffffffff;\n    }" { (expression_statement "uVar12 = *puVar1 & 0xffffffff;" (assignment_expression "uVar12 = *puVar1 & 0xffffffff" identifier = (binary_expression "*puVar1 & 0xffffffff" (pointer_expression "*puVar1" * identifier) & number_literal)) ;) })) }) while (parenthesized_expression "(plVar6 != (long *)0x0)" ( (binary_expression "plVar6 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "puVar15 = &DAT_001423c4;" (assignment_expression "puVar15 = &DAT_001423c4" identifier = (pointer_expression "&DAT_001423c4" & identifier)) ;) (expression_statement "puVar7 = (undefined4 *)xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10);" (assignment_expression "puVar7 = (undefined4 *)xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10)" identifier = (cast_expression "(undefined4 *)xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10)" identifier (argument_list "(((ulong)((int)uVar12 + 1) + 0x11) * 0x10)" ( (binary_expression "((ulong)((int)uVar12 + 1) + 0x11) * 0x10" (parenthesized_expression "((ulong)((int)uVar12 + 1) + 0x11)" ( (binary_expression "(ulong)((int)uVar12 + 1) + 0x11" (call_expression "(ulong)((int)uVar12 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar12 + 1)" ( (binary_expression "(int)uVar12 + 1" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) + number_literal) )) * number_literal) ))))) ;) (expression_statement "piVar13 = puVar7 + 2;" (assignment_expression "piVar13 = puVar7 + 2" identifier = (binary_expression "puVar7 + 2" identifier + number_literal)) ;) (expression_statement "uVar11 = 0xb;" (assignment_expression "uVar11 = 0xb" identifier = number_literal) ;) (expression_statement "*puVar7 = 0xb;" (assignment_expression "*puVar7 = 0xb" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (do_statement "do {\n    switch(uVar11) {\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }\n  } while( true );" do (compound_statement "{\n    switch(uVar11) {\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }\n  }" { (switch_statement "switch(uVar11) {\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }" switch (parenthesized_expression "(uVar11)" ( identifier )) (compound_statement "{\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }" { (case_statement "case 0:" case number_literal :) (case_statement "case 2:" case number_literal :) (case_statement "case 4:" case number_literal :) (case_statement "case 0x13:" case number_literal :) (case_statement "case 0x14:" case number_literal :) (case_statement "case 0x15:" case number_literal :) (case_statement "case 0x16:" case number_literal :) (case_statement "case 0x17:" case number_literal :) (case_statement "case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;" case number_literal : (do_statement "do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);" do (compound_statement "{\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      }" { (expression_statement "FUN_001252b0("../../ld/plugin.c");" (call_expression "FUN_001252b0("../../ld/plugin.c")" identifier (argument_list "("../../ld/plugin.c")" ( (string_literal ""../../ld/plugin.c"" " string_content ") ))) ;) (expression_statement "piVar14 = piVar13;" (assignment_expression "piVar14 = piVar13" identifier = identifier) ;) (if_statement "if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;" if (parenthesized_expression "(puVar15 == (uint *)&DAT_00142404)" ( (binary_expression "puVar15 == (uint *)&DAT_00142404" identifier == (cast_expression "(uint *)&DAT_00142404" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00142404" & identifier))) )) (goto_statement "goto LAB_00128828;" goto statement_identifier ;)) (labeled_statement "LAB_001287e9:\n        piVar13 = piVar14 + 4;" statement_identifier : (expression_statement "piVar13 = piVar14 + 4;" (assignment_expression "piVar13 = piVar14 + 4" identifier = (binary_expression "piVar14 + 4" identifier + number_literal)) ;)) (expression_statement "uVar11 = *puVar15;" (assignment_expression "uVar11 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "puVar15 = puVar15 + 1;" (assignment_expression "puVar15 = puVar15 + 1" identifier = (binary_expression "puVar15 + 1" identifier + number_literal)) ;) (expression_statement "piVar14[2] = uVar11;" (assignment_expression "piVar14[2] = uVar11" (subscript_expression "piVar14[2]" identifier [ number_literal ]) = identifier) ;) }) while (parenthesized_expression "(0x19 < uVar11)" ( (binary_expression "0x19 < uVar11" number_literal < identifier) )) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;" case number_literal : (expression_statement "*piVar13 = 1;" (assignment_expression "*piVar13 = 1" (pointer_expression "*piVar13" * identifier) = number_literal) ;) (labeled_statement "LAB_001287e0:\n      piVar14 = piVar13;" statement_identifier : (expression_statement "piVar14 = piVar13;" (assignment_expression "piVar14 = piVar13" identifier = identifier) ;)) (if_statement "if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;" if (parenthesized_expression "(puVar15 != (uint *)&DAT_00142404)" ( (binary_expression "puVar15 != (uint *)&DAT_00142404" identifier != (cast_expression "(uint *)&DAT_00142404" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00142404" & identifier))) )) (goto_statement "goto LAB_001287e9;" goto statement_identifier ;)) (labeled_statement "LAB_00128828:\n      puVar2 = DAT_0017fae0;" statement_identifier : (expression_statement "puVar2 = DAT_0017fae0;" (assignment_expression "puVar2 = DAT_0017fae0" identifier = identifier) ;)) (for_statement "for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }" for ( (assignment_expression "plVar6 = DAT_0017f788" identifier = identifier) ; (binary_expression "plVar6 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar6 = (long *)*plVar6" identifier = (cast_expression "(long *)*plVar6" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*plVar6" * identifier))) ) (compound_statement "{\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }" { (expression_statement "DAT_0017fae0 = puVar2;" (assignment_expression "DAT_0017fae0 = puVar2" identifier = identifier) ;) (expression_statement "pcVar8 = (code *)dlsym(plVar6[2],"onload");" (assignment_expression "pcVar8 = (code *)dlsym(plVar6[2],"onload")" identifier = (cast_expression "(code *)dlsym(plVar6[2],"onload")" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dlsym(plVar6[2],"onload")" identifier (argument_list "(plVar6[2],"onload")" ( (subscript_expression "plVar6[2]" identifier [ number_literal ]) , (string_literal ""onload"" " string_content ") ))))) ;) (if_statement "if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }" if (parenthesized_expression "((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0))" ( (binary_expression "(pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)" (parenthesized_expression "(pcVar8 == (code *)0x0)" ( (binary_expression "pcVar8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)" ( (comma_expression "pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0" (assignment_expression "pcVar8 = (code *)dlsym(plVar6[2],"_onload")" identifier = (cast_expression "(code *)dlsym(plVar6[2],"_onload")" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "dlsym(plVar6[2],"_onload")" identifier (argument_list "(plVar6[2],"_onload")" ( (subscript_expression "plVar6[2]" identifier [ number_literal ]) , (string_literal ""_onload"" " string_content ") ))))) , (binary_expression "pcVar8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }" { (expression_statement "uVar9 = dlerror();" (assignment_expression "uVar9 = dlerror()" identifier = (call_expression "dlerror()" identifier (argument_list "()" ( )))) ;) (expression_statement "lVar3 = plVar6[1];" (assignment_expression "lVar3 = plVar6[1]" identifier = (subscript_expression "plVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);" (assignment_expression "uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5)" identifier (argument_list "(0,"%F%P: %s: error loading plugin: %s\n",5)" ( number_literal , (string_literal ""%F%P: %s: error loading plugin: %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_001251f0(uVar10,lVar3,uVar9);" (call_expression "FUN_001251f0(uVar10,lVar3,uVar9)" identifier (argument_list "(uVar10,lVar3,uVar9)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "puVar2 = (undefined8 *)plVar6[3];" (assignment_expression "puVar2 = (undefined8 *)plVar6[3]" identifier = (cast_expression "(undefined8 *)plVar6[3]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "plVar6[3]" identifier [ number_literal ]))) ;) (expression_statement "puVar4 = puVar7 + 0x44;" (assignment_expression "puVar4 = puVar7 + 0x44" identifier = (binary_expression "puVar7 + 0x44" identifier + number_literal)) ;) (while_statement "while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }" while (parenthesized_expression "(puVar2 != (undefined8 *)0x0)" ( (binary_expression "puVar2 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }" { (expression_statement "uVar9 = puVar2[1];" (assignment_expression "uVar9 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (undefined8 *)*puVar2;" (assignment_expression "puVar2 = (undefined8 *)*puVar2" identifier = (cast_expression "(undefined8 *)*puVar2" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (expression_statement "*puVar4 = 4;" (assignment_expression "*puVar4 = 4" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "*(undefined8 *)(puVar4 + 2) = uVar9;" (assignment_expression "*(undefined8 *)(puVar4 + 2) = uVar9" (pointer_expression "*(undefined8 *)(puVar4 + 2)" * (cast_expression "(undefined8 *)(puVar4 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar4 = puVar4 + 4;" (assignment_expression "puVar4 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) })) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "DAT_0017f770 = plVar6;" (assignment_expression "DAT_0017f770 = plVar6" identifier = identifier) ;) (expression_statement "iVar5 = (*pcVar8)(puVar7);" (assignment_expression "iVar5 = (*pcVar8)(puVar7)" identifier = (call_expression "(*pcVar8)(puVar7)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(puVar7)" ( identifier )))) ;) (expression_statement "DAT_0017f770 = (long *)0x0;" (assignment_expression "DAT_0017f770 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }" { (expression_statement "lVar3 = plVar6[1];" (assignment_expression "lVar3 = plVar6[1]" identifier = (subscript_expression "plVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: %s: plugin error: %d\n",5)" identifier (argument_list "(0,"%F%P: %s: plugin error: %d\n",5)" ( number_literal , (string_literal ""%F%P: %s: plugin error: %d\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_001251f0(uVar9,lVar3,iVar5);" (call_expression "FUN_001251f0(uVar9,lVar3,iVar5)" identifier (argument_list "(uVar9,lVar3,iVar5)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "puVar2 = DAT_0017fae0;" (assignment_expression "puVar2 = DAT_0017fae0" identifier = identifier) ;) })) (expression_statement "uVar11 = (uint)DAT_0017fac1;" (assignment_expression "uVar11 = (uint)DAT_0017fac1" identifier = (cast_expression "(uint)DAT_0017fac1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "DAT_0017fac1 = DAT_0017fac1 | 3;" (assignment_expression "DAT_0017fac1 = DAT_0017fac1 | 3" identifier = (binary_expression "DAT_0017fac1 | 3" identifier | number_literal)) ;) (expression_statement "DAT_0017f760 = uVar11 & 1;" (assignment_expression "DAT_0017f760 = uVar11 & 1" identifier = (binary_expression "uVar11 & 1" identifier & number_literal)) ;) (expression_statement "_DAT_0017f6e0 = *puVar2;" (assignment_expression "_DAT_0017f6e0 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uRam000000000017f6e8 = puVar2[1];" (assignment_expression "uRam000000000017f6e8 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0017f6f0 = puVar2[2];" (assignment_expression "_DAT_0017f6f0 = puVar2[2]" identifier = (subscript_expression "puVar2[2]" identifier [ number_literal ])) ;) (expression_statement "uRam000000000017f6f8 = puVar2[3];" (assignment_expression "uRam000000000017f6f8 = puVar2[3]" identifier = (subscript_expression "puVar2[3]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0017f700 = puVar2[4];" (assignment_expression "_DAT_0017f700 = puVar2[4]" identifier = (subscript_expression "puVar2[4]" identifier [ number_literal ])) ;) (expression_statement "uRam000000000017f708 = puVar2[5];" (assignment_expression "uRam000000000017f708 = puVar2[5]" identifier = (subscript_expression "puVar2[5]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0017f710 = puVar2[6];" (assignment_expression "_DAT_0017f710 = puVar2[6]" identifier = (subscript_expression "puVar2[6]" identifier [ number_literal ])) ;) (expression_statement "uRam000000000017f718 = puVar2[7];" (assignment_expression "uRam000000000017f718 = puVar2[7]" identifier = (subscript_expression "puVar2[7]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0017f720 = puVar2[8];" (assignment_expression "_DAT_0017f720 = puVar2[8]" identifier = (subscript_expression "puVar2[8]" identifier [ number_literal ])) ;) (expression_statement "uRam000000000017f728 = puVar2[9];" (assignment_expression "uRam000000000017f728 = puVar2[9]" identifier = (subscript_expression "puVar2[9]" identifier [ number_literal ])) ;) (expression_statement "uRam000000000017f738 = puVar2[0xb];" (assignment_expression "uRam000000000017f738 = puVar2[0xb]" identifier = (subscript_expression "puVar2[0xb]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0017f740 = puVar2[0xc];" (assignment_expression "_DAT_0017f740 = puVar2[0xc]" identifier = (subscript_expression "puVar2[0xc]" identifier [ number_literal ])) ;) (expression_statement "uRam000000000017f748 = puVar2[0xd];" (assignment_expression "uRam000000000017f748 = puVar2[0xd]" identifier = (subscript_expression "puVar2[0xd]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0017f750 = puVar2[0xe];" (assignment_expression "_DAT_0017f750 = puVar2[0xe]" identifier = (subscript_expression "puVar2[0xe]" identifier [ number_literal ])) ;) (expression_statement "_DAT_0017f730 = FUN_00127340;" (assignment_expression "_DAT_0017f730 = FUN_00127340" identifier = identifier) ;) (expression_statement "DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;" (assignment_expression "DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0" identifier = (cast_expression "(undefined8 *)&DAT_0017f6e0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0017f6e0" & identifier))) ;) (expression_statement "DAT_0017f758 = puVar2;" (assignment_expression "DAT_0017f758 = puVar2" identifier = identifier) ;) (expression_statement "register_ld_plugin_object_p(FUN_001281c0);" (call_expression "register_ld_plugin_object_p(FUN_001281c0)" identifier (argument_list "(FUN_001281c0)" ( identifier ))) ;) (expression_statement "iVar5 = getpagesize();" (assignment_expression "iVar5 = getpagesize()" identifier = (call_expression "getpagesize()" identifier (argument_list "()" ( )))) ;) (expression_statement "DAT_0017f6c8 = (long)iVar5;" (assignment_expression "DAT_0017f6c8 = (long)iVar5" identifier = (cast_expression "(long)iVar5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (return_statement "return;" return ;)) (case_statement "case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;" case number_literal : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (if_statement "if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }" if (parenthesized_expression "(((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0))" ( (binary_expression "((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)" (parenthesized_expression "((DAT_0017fac0 & 3) != 2)" ( (binary_expression "(DAT_0017fac0 & 3) != 2" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar5 = 1, (DAT_0017fac0 & 3) != 0)" ( (comma_expression "iVar5 = 1, (DAT_0017fac0 & 3) != 0" (assignment_expression "iVar5 = 1" identifier = number_literal) , (binary_expression "(DAT_0017fac0 & 3) != 0" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }" { (expression_statement "iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;" (assignment_expression "iVar5 = ((DAT_0017fac0 & 3) == 1) + 2" identifier = (binary_expression "((DAT_0017fac0 & 3) == 1) + 2" (parenthesized_expression "((DAT_0017fac0 & 3) == 1)" ( (binary_expression "(DAT_0017fac0 & 3) == 1" (parenthesized_expression "(DAT_0017fac0 & 3)" ( (binary_expression "DAT_0017fac0 & 3" identifier & number_literal) )) == number_literal) )) + number_literal)) ;) })) (expression_statement "*piVar13 = iVar5;" (assignment_expression "*piVar13 = iVar5" (pointer_expression "*piVar13" * identifier) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_00127670;" (assignment_expression "*(code **)piVar13 = FUN_00127670" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_00127630;" (assignment_expression "*(code **)piVar13 = FUN_00127630" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_001275f0;" (assignment_expression "*(code **)piVar13 = FUN_001275f0" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_00127920;" (assignment_expression "*(code **)piVar13 = FUN_00127920" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_001281b0;" (assignment_expression "*(code **)piVar13 = FUN_001281b0" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_00127740;" (assignment_expression "*(code **)piVar13 = FUN_00127740" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;" default : (expression_statement "*(code **)piVar13 = FUN_00127ca0;" (assignment_expression "*(code **)piVar13 = FUN_00127ca0" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_00127590;" (assignment_expression "*(code **)piVar13 = FUN_00127590" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_00127540;" (assignment_expression "*(code **)piVar13 = FUN_00127540" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_001276f0;" (assignment_expression "*(code **)piVar13 = FUN_001276f0" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(undefined **)piVar13 = PTR_s_a_out_0017e6f8;" (assignment_expression "*(undefined **)piVar13 = PTR_s_a_out_0017e6f8" (pointer_expression "*(undefined **)piVar13" * (cast_expression "(undefined **)piVar13" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_001276b0;" (assignment_expression "*(code **)piVar13 = FUN_001276b0" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*piVar13 = 0xe7;" (assignment_expression "*piVar13 = 0xe7" (pointer_expression "*piVar13" * identifier) = number_literal) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_001277a0;" (assignment_expression "*(code **)piVar13 = FUN_001277a0" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) (case_statement "case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;" case number_literal : (expression_statement "*(code **)piVar13 = FUN_001281a0;" (assignment_expression "*(code **)piVar13 = FUN_001281a0" (pointer_expression "*(code **)piVar13" * (cast_expression "(code **)piVar13" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (goto_statement "goto LAB_001287e0;" goto statement_identifier ;)) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) & LIT)) ;) })) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) + LIT) )) * LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (do_statement do (compound_statement { (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) while (parenthesized_expression ( (binary_expression LIT < IDENT) )) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (string_literal " string_content ") ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (string_literal " string_content ") ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_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 = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (return_statement return ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (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)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (goto_statement goto statement_identifier ;)) (case_statement default : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) (goto_statement goto statement_identifier ;)) })) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "void FUN_00128740(void)\n\n{\n  ulong *puVar1;\n  undefined8 *puVar2;\n  long lVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  long *plVar6;\n  undefined4 *puVar7;\n  code *pcVar8;\n  undefined8 uVar9;\n  undefined8 uVar10;\n  uint uVar11;\n  ulong uVar12;\n  int *piVar13;\n  int *piVar14;\n  uint *puVar15;\n  \n  if (DAT_0017f788 == (long *)0x0) {\n    return;\n  }\n  uVar12 = 0;\n  plVar6 = DAT_0017f788;\n  do {\n    puVar1 = (ulong *)(plVar6 + 4);\n    plVar6 = (long *)*plVar6;\n    if (uVar12 < *puVar1) {\n      uVar12 = *puVar1 & 0xffffffff;\n    }\n  } while (plVar6 != (long *)0x0);\n  puVar15 = &DAT_001423c4;\n  puVar7 = (undefined4 *)xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10);\n  piVar13 = puVar7 + 2;\n  uVar11 = 0xb;\n  *puVar7 = 0xb;\n  do {\n    switch(uVar11) {\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }\n  } while( true );\n}" (primitive_type "void") (function_declarator "FUN_00128740(void)" (identifier "FUN_00128740") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  ulong *puVar1;\n  undefined8 *puVar2;\n  long lVar3;\n  undefined4 *puVar4;\n  int iVar5;\n  long *plVar6;\n  undefined4 *puVar7;\n  code *pcVar8;\n  undefined8 uVar9;\n  undefined8 uVar10;\n  uint uVar11;\n  ulong uVar12;\n  int *piVar13;\n  int *piVar14;\n  uint *puVar15;\n  \n  if (DAT_0017f788 == (long *)0x0) {\n    return;\n  }\n  uVar12 = 0;\n  plVar6 = DAT_0017f788;\n  do {\n    puVar1 = (ulong *)(plVar6 + 4);\n    plVar6 = (long *)*plVar6;\n    if (uVar12 < *puVar1) {\n      uVar12 = *puVar1 & 0xffffffff;\n    }\n  } while (plVar6 != (long *)0x0);\n  puVar15 = &DAT_001423c4;\n  puVar7 = (undefined4 *)xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10);\n  piVar13 = puVar7 + 2;\n  uVar11 = 0xb;\n  *puVar7 = 0xb;\n  do {\n    switch(uVar11) {\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }\n  } while( true );\n}" ({ "{") (declaration "ulong *puVar1;" (type_identifier "ulong") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined8 *puVar2;" (type_identifier "undefined8") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "long *plVar6;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar6" (* "*") (identifier "plVar6")) (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "code *pcVar8;" (type_identifier "code") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "undefined8 uVar9;" (type_identifier "undefined8") (identifier "uVar9") (; ";")) (declaration "undefined8 uVar10;" (type_identifier "undefined8") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "ulong uVar12;" (type_identifier "ulong") (identifier "uVar12") (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "uint *puVar15;" (type_identifier "uint") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (if_statement "if (DAT_0017f788 == (long *)0x0) {\n    return;\n  }" (if "if") (parenthesized_expression "(DAT_0017f788 == (long *)0x0)" (( "(") (binary_expression "DAT_0017f788 == (long *)0x0" (identifier "DAT_0017f788") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "plVar6 = DAT_0017f788;" (assignment_expression "plVar6 = DAT_0017f788" (identifier "plVar6") (= "=") (identifier "DAT_0017f788")) (; ";")) (do_statement "do {\n    puVar1 = (ulong *)(plVar6 + 4);\n    plVar6 = (long *)*plVar6;\n    if (uVar12 < *puVar1) {\n      uVar12 = *puVar1 & 0xffffffff;\n    }\n  } while (plVar6 != (long *)0x0);" (do "do") (compound_statement "{\n    puVar1 = (ulong *)(plVar6 + 4);\n    plVar6 = (long *)*plVar6;\n    if (uVar12 < *puVar1) {\n      uVar12 = *puVar1 & 0xffffffff;\n    }\n  }" ({ "{") (expression_statement "puVar1 = (ulong *)(plVar6 + 4);" (assignment_expression "puVar1 = (ulong *)(plVar6 + 4)" (identifier "puVar1") (= "=") (cast_expression "(ulong *)(plVar6 + 4)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar6 + 4)" (( "(") (binary_expression "plVar6 + 4" (identifier "plVar6") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "plVar6 = (long *)*plVar6;" (assignment_expression "plVar6 = (long *)*plVar6" (identifier "plVar6") (= "=") (cast_expression "(long *)*plVar6" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar6" (* "*") (identifier "plVar6")))) (; ";")) (if_statement "if (uVar12 < *puVar1) {\n      uVar12 = *puVar1 & 0xffffffff;\n    }" (if "if") (parenthesized_expression "(uVar12 < *puVar1)" (( "(") (binary_expression "uVar12 < *puVar1" (identifier "uVar12") (< "<") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) () ")")) (compound_statement "{\n      uVar12 = *puVar1 & 0xffffffff;\n    }" ({ "{") (expression_statement "uVar12 = *puVar1 & 0xffffffff;" (assignment_expression "uVar12 = *puVar1 & 0xffffffff" (identifier "uVar12") (= "=") (binary_expression "*puVar1 & 0xffffffff" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (& "&") (number_literal "0xffffffff"))) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(plVar6 != (long *)0x0)" (( "(") (binary_expression "plVar6 != (long *)0x0" (identifier "plVar6") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "puVar15 = &DAT_001423c4;" (assignment_expression "puVar15 = &DAT_001423c4" (identifier "puVar15") (= "=") (pointer_expression "&DAT_001423c4" (& "&") (identifier "DAT_001423c4"))) (; ";")) (expression_statement "puVar7 = (undefined4 *)xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10);" (assignment_expression "puVar7 = (undefined4 *)xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10)" (identifier "xmalloc") (argument_list "(((ulong)((int)uVar12 + 1) + 0x11) * 0x10)" (( "(") (binary_expression "((ulong)((int)uVar12 + 1) + 0x11) * 0x10" (parenthesized_expression "((ulong)((int)uVar12 + 1) + 0x11)" (( "(") (binary_expression "(ulong)((int)uVar12 + 1) + 0x11" (call_expression "(ulong)((int)uVar12 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((int)uVar12 + 1)" (( "(") (binary_expression "(int)uVar12 + 1" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (+ "+") (number_literal "1")) () ")"))) (+ "+") (number_literal "0x11")) () ")")) (* "*") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "piVar13 = puVar7 + 2;" (assignment_expression "piVar13 = puVar7 + 2" (identifier "piVar13") (= "=") (binary_expression "puVar7 + 2" (identifier "puVar7") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar11 = 0xb;" (assignment_expression "uVar11 = 0xb" (identifier "uVar11") (= "=") (number_literal "0xb")) (; ";")) (expression_statement "*puVar7 = 0xb;" (assignment_expression "*puVar7 = 0xb" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0xb")) (; ";")) (do_statement "do {\n    switch(uVar11) {\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    switch(uVar11) {\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }\n  }" ({ "{") (switch_statement "switch(uVar11) {\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }" (switch "switch") (parenthesized_expression "(uVar11)" (( "(") (identifier "uVar11") () ")")) (compound_statement "{\n    case 0:\n    case 2:\n    case 4:\n    case 0x13:\n    case 0x14:\n    case 0x15:\n    case 0x16:\n    case 0x17:\n    case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;\n    case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;\n    case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;\n    case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;\n    case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;\n    case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;\n    case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;\n    case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;\n    case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;\n    default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;\n    case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;\n    case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;\n    case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;\n    case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;\n    case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;\n    case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;\n    case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;\n    case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;\n    }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 0x13:" (case "case") (number_literal "0x13") (: ":")) (case_statement "case 0x14:" (case "case") (number_literal "0x14") (: ":")) (case_statement "case 0x15:" (case "case") (number_literal "0x15") (: ":")) (case_statement "case 0x16:" (case "case") (number_literal "0x16") (: ":")) (case_statement "case 0x17:" (case "case") (number_literal "0x17") (: ":")) (case_statement "case 0x18:\n      do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);\n      break;" (case "case") (number_literal "0x18") (: ":") (do_statement "do {\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      } while (0x19 < uVar11);" (do "do") (compound_statement "{\n        FUN_001252b0("../../ld/plugin.c");\n        piVar14 = piVar13;\n        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;\nLAB_001287e9:\n        piVar13 = piVar14 + 4;\n        uVar11 = *puVar15;\n        puVar15 = puVar15 + 1;\n        piVar14[2] = uVar11;\n      }" ({ "{") (expression_statement "FUN_001252b0("../../ld/plugin.c");" (call_expression "FUN_001252b0("../../ld/plugin.c")" (identifier "FUN_001252b0") (argument_list "("../../ld/plugin.c")" (( "(") (string_literal ""../../ld/plugin.c"" (" """) (string_content "../../ld/plugin.c") (" """)) () ")"))) (; ";")) (expression_statement "piVar14 = piVar13;" (assignment_expression "piVar14 = piVar13" (identifier "piVar14") (= "=") (identifier "piVar13")) (; ";")) (if_statement "if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;" (if "if") (parenthesized_expression "(puVar15 == (uint *)&DAT_00142404)" (( "(") (binary_expression "puVar15 == (uint *)&DAT_00142404" (identifier "puVar15") (== "==") (cast_expression "(uint *)&DAT_00142404" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00142404" (& "&") (identifier "DAT_00142404")))) () ")")) (goto_statement "goto LAB_00128828;" (goto "goto") (statement_identifier "LAB_00128828") (; ";"))) (labeled_statement "LAB_001287e9:\n        piVar13 = piVar14 + 4;" (statement_identifier "LAB_001287e9") (: ":") (expression_statement "piVar13 = piVar14 + 4;" (assignment_expression "piVar13 = piVar14 + 4" (identifier "piVar13") (= "=") (binary_expression "piVar14 + 4" (identifier "piVar14") (+ "+") (number_literal "4"))) (; ";"))) (expression_statement "uVar11 = *puVar15;" (assignment_expression "uVar11 = *puVar15" (identifier "uVar11") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "puVar15 = puVar15 + 1;" (assignment_expression "puVar15 = puVar15 + 1" (identifier "puVar15") (= "=") (binary_expression "puVar15 + 1" (identifier "puVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar14[2] = uVar11;" (assignment_expression "piVar14[2] = uVar11" (subscript_expression "piVar14[2]" (identifier "piVar14") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0x19 < uVar11)" (( "(") (binary_expression "0x19 < uVar11" (number_literal "0x19") (< "<") (identifier "uVar11")) () ")")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n      *piVar13 = 1;\nLAB_001287e0:\n      piVar14 = piVar13;\n      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;\nLAB_00128828:\n      puVar2 = DAT_0017fae0;\n      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }\n      uVar11 = (uint)DAT_0017fac1;\n      DAT_0017fac1 = DAT_0017fac1 | 3;\n      DAT_0017f760 = uVar11 & 1;\n      _DAT_0017f6e0 = *puVar2;\n      uRam000000000017f6e8 = puVar2[1];\n      _DAT_0017f6f0 = puVar2[2];\n      uRam000000000017f6f8 = puVar2[3];\n      _DAT_0017f700 = puVar2[4];\n      uRam000000000017f708 = puVar2[5];\n      _DAT_0017f710 = puVar2[6];\n      uRam000000000017f718 = puVar2[7];\n      _DAT_0017f720 = puVar2[8];\n      uRam000000000017f728 = puVar2[9];\n      uRam000000000017f738 = puVar2[0xb];\n      _DAT_0017f740 = puVar2[0xc];\n      uRam000000000017f748 = puVar2[0xd];\n      _DAT_0017f750 = puVar2[0xe];\n      _DAT_0017f730 = FUN_00127340;\n      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;\n      DAT_0017f758 = puVar2;\n      register_ld_plugin_object_p(FUN_001281c0);\n      iVar5 = getpagesize();\n      DAT_0017f6c8 = (long)iVar5;\n      return;" (case "case") (number_literal "1") (: ":") (expression_statement "*piVar13 = 1;" (assignment_expression "*piVar13 = 1" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_001287e0:\n      piVar14 = piVar13;" (statement_identifier "LAB_001287e0") (: ":") (expression_statement "piVar14 = piVar13;" (assignment_expression "piVar14 = piVar13" (identifier "piVar14") (= "=") (identifier "piVar13")) (; ";"))) (if_statement "if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;" (if "if") (parenthesized_expression "(puVar15 != (uint *)&DAT_00142404)" (( "(") (binary_expression "puVar15 != (uint *)&DAT_00142404" (identifier "puVar15") (!= "!=") (cast_expression "(uint *)&DAT_00142404" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00142404" (& "&") (identifier "DAT_00142404")))) () ")")) (goto_statement "goto LAB_001287e9;" (goto "goto") (statement_identifier "LAB_001287e9") (; ";"))) (labeled_statement "LAB_00128828:\n      puVar2 = DAT_0017fae0;" (statement_identifier "LAB_00128828") (: ":") (expression_statement "puVar2 = DAT_0017fae0;" (assignment_expression "puVar2 = DAT_0017fae0" (identifier "puVar2") (= "=") (identifier "DAT_0017fae0")) (; ";"))) (for_statement "for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }" (for "for") (( "(") (assignment_expression "plVar6 = DAT_0017f788" (identifier "plVar6") (= "=") (identifier "DAT_0017f788")) (; ";") (binary_expression "plVar6 != (long *)0x0" (identifier "plVar6") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "plVar6 = (long *)*plVar6" (identifier "plVar6") (= "=") (cast_expression "(long *)*plVar6" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*plVar6" (* "*") (identifier "plVar6")))) () ")") (compound_statement "{\n        DAT_0017fae0 = puVar2;\n        pcVar8 = (code *)dlsym(plVar6[2],"onload");\n        if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }\n        puVar2 = (undefined8 *)plVar6[3];\n        puVar4 = puVar7 + 0x44;\n        while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }\n        *puVar4 = 0;\n        puVar4[2] = 0;\n        DAT_0017f770 = plVar6;\n        iVar5 = (*pcVar8)(puVar7);\n        DAT_0017f770 = (long *)0x0;\n        if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }\n        puVar2 = DAT_0017fae0;\n      }" ({ "{") (expression_statement "DAT_0017fae0 = puVar2;" (assignment_expression "DAT_0017fae0 = puVar2" (identifier "DAT_0017fae0") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "pcVar8 = (code *)dlsym(plVar6[2],"onload");" (assignment_expression "pcVar8 = (code *)dlsym(plVar6[2],"onload")" (identifier "pcVar8") (= "=") (cast_expression "(code *)dlsym(plVar6[2],"onload")" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dlsym(plVar6[2],"onload")" (identifier "dlsym") (argument_list "(plVar6[2],"onload")" (( "(") (subscript_expression "plVar6[2]" (identifier "plVar6") ([ "[") (number_literal "2") (] "]")) (, ",") (string_literal ""onload"" (" """) (string_content "onload") (" """)) () ")"))))) (; ";")) (if_statement "if ((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }" (if "if") (parenthesized_expression "((pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0))" (( "(") (binary_expression "(pcVar8 == (code *)0x0) &&\n           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)" (parenthesized_expression "(pcVar8 == (code *)0x0)" (( "(") (binary_expression "pcVar8 == (code *)0x0" (identifier "pcVar8") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)" (( "(") (comma_expression "pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0" (assignment_expression "pcVar8 = (code *)dlsym(plVar6[2],"_onload")" (identifier "pcVar8") (= "=") (cast_expression "(code *)dlsym(plVar6[2],"_onload")" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dlsym(plVar6[2],"_onload")" (identifier "dlsym") (argument_list "(plVar6[2],"_onload")" (( "(") (subscript_expression "plVar6[2]" (identifier "plVar6") ([ "[") (number_literal "2") (] "]")) (, ",") (string_literal ""_onload"" (" """) (string_content "_onload") (" """)) () ")"))))) (, ",") (binary_expression "pcVar8 == (code *)0x0" (identifier "pcVar8") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n          uVar9 = dlerror();\n          lVar3 = plVar6[1];\n          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);\n          FUN_001251f0(uVar10,lVar3,uVar9);\n        }" ({ "{") (expression_statement "uVar9 = dlerror();" (assignment_expression "uVar9 = dlerror()" (identifier "uVar9") (= "=") (call_expression "dlerror()" (identifier "dlerror") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "lVar3 = plVar6[1];" (assignment_expression "lVar3 = plVar6[1]" (identifier "lVar3") (= "=") (subscript_expression "plVar6[1]" (identifier "plVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);" (assignment_expression "uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5)" (identifier "uVar10") (= "=") (call_expression "dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: %s: error loading plugin: %s\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: %s: error loading plugin: %s\n"" (" """) (string_content "%F%P: %s: error loading plugin: %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_001251f0(uVar10,lVar3,uVar9);" (call_expression "FUN_001251f0(uVar10,lVar3,uVar9)" (identifier "FUN_001251f0") (argument_list "(uVar10,lVar3,uVar9)" (( "(") (identifier "uVar10") (, ",") (identifier "lVar3") (, ",") (identifier "uVar9") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar2 = (undefined8 *)plVar6[3];" (assignment_expression "puVar2 = (undefined8 *)plVar6[3]" (identifier "puVar2") (= "=") (cast_expression "(undefined8 *)plVar6[3]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "plVar6[3]" (identifier "plVar6") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "puVar4 = puVar7 + 0x44;" (assignment_expression "puVar4 = puVar7 + 0x44" (identifier "puVar4") (= "=") (binary_expression "puVar7 + 0x44" (identifier "puVar7") (+ "+") (number_literal "0x44"))) (; ";")) (while_statement "while (puVar2 != (undefined8 *)0x0) {\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }" (while "while") (parenthesized_expression "(puVar2 != (undefined8 *)0x0)" (( "(") (binary_expression "puVar2 != (undefined8 *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          uVar9 = puVar2[1];\n          puVar2 = (undefined8 *)*puVar2;\n          *puVar4 = 4;\n          *(undefined8 *)(puVar4 + 2) = uVar9;\n          puVar4 = puVar4 + 4;\n        }" ({ "{") (expression_statement "uVar9 = puVar2[1];" (assignment_expression "uVar9 = puVar2[1]" (identifier "uVar9") (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar2 = (undefined8 *)*puVar2;" (assignment_expression "puVar2 = (undefined8 *)*puVar2" (identifier "puVar2") (= "=") (cast_expression "(undefined8 *)*puVar2" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")))) (; ";")) (expression_statement "*puVar4 = 4;" (assignment_expression "*puVar4 = 4" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "4")) (; ";")) (expression_statement "*(undefined8 *)(puVar4 + 2) = uVar9;" (assignment_expression "*(undefined8 *)(puVar4 + 2) = uVar9" (pointer_expression "*(undefined8 *)(puVar4 + 2)" (* "*") (cast_expression "(undefined8 *)(puVar4 + 2)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 2)" (( "(") (binary_expression "puVar4 + 2" (identifier "puVar4") (+ "+") (number_literal "2")) () ")")))) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puVar4 = puVar4 + 4;" (assignment_expression "puVar4 = puVar4 + 4" (identifier "puVar4") (= "=") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4"))) (; ";")) (} "}"))) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4[2] = 0;" (assignment_expression "puVar4[2] = 0" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_0017f770 = plVar6;" (assignment_expression "DAT_0017f770 = plVar6" (identifier "DAT_0017f770") (= "=") (identifier "plVar6")) (; ";")) (expression_statement "iVar5 = (*pcVar8)(puVar7);" (assignment_expression "iVar5 = (*pcVar8)(puVar7)" (identifier "iVar5") (= "=") (call_expression "(*pcVar8)(puVar7)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(puVar7)" (( "(") (identifier "puVar7") () ")")))) (; ";")) (expression_statement "DAT_0017f770 = (long *)0x0;" (assignment_expression "DAT_0017f770 = (long *)0x0" (identifier "DAT_0017f770") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar5 != 0) {\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          lVar3 = plVar6[1];\n          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);\n          FUN_001251f0(uVar9,lVar3,iVar5);\n        }" ({ "{") (expression_statement "lVar3 = plVar6[1];" (assignment_expression "lVar3 = plVar6[1]" (identifier "lVar3") (= "=") (subscript_expression "plVar6[1]" (identifier "plVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);" (assignment_expression "uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,"%F%P: %s: plugin error: %d\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: %s: plugin error: %d\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: %s: plugin error: %d\n"" (" """) (string_content "%F%P: %s: plugin error: %d") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_001251f0(uVar9,lVar3,iVar5);" (call_expression "FUN_001251f0(uVar9,lVar3,iVar5)" (identifier "FUN_001251f0") (argument_list "(uVar9,lVar3,iVar5)" (( "(") (identifier "uVar9") (, ",") (identifier "lVar3") (, ",") (identifier "iVar5") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar2 = DAT_0017fae0;" (assignment_expression "puVar2 = DAT_0017fae0" (identifier "puVar2") (= "=") (identifier "DAT_0017fae0")) (; ";")) (} "}"))) (expression_statement "uVar11 = (uint)DAT_0017fac1;" (assignment_expression "uVar11 = (uint)DAT_0017fac1" (identifier "uVar11") (= "=") (cast_expression "(uint)DAT_0017fac1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "DAT_0017fac1"))) (; ";")) (expression_statement "DAT_0017fac1 = DAT_0017fac1 | 3;" (assignment_expression "DAT_0017fac1 = DAT_0017fac1 | 3" (identifier "DAT_0017fac1") (= "=") (binary_expression "DAT_0017fac1 | 3" (identifier "DAT_0017fac1") (| "|") (number_literal "3"))) (; ";")) (expression_statement "DAT_0017f760 = uVar11 & 1;" (assignment_expression "DAT_0017f760 = uVar11 & 1" (identifier "DAT_0017f760") (= "=") (binary_expression "uVar11 & 1" (identifier "uVar11") (& "&") (number_literal "1"))) (; ";")) (expression_statement "_DAT_0017f6e0 = *puVar2;" (assignment_expression "_DAT_0017f6e0 = *puVar2" (identifier "_DAT_0017f6e0") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "uRam000000000017f6e8 = puVar2[1];" (assignment_expression "uRam000000000017f6e8 = puVar2[1]" (identifier "uRam000000000017f6e8") (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "_DAT_0017f6f0 = puVar2[2];" (assignment_expression "_DAT_0017f6f0 = puVar2[2]" (identifier "_DAT_0017f6f0") (= "=") (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uRam000000000017f6f8 = puVar2[3];" (assignment_expression "uRam000000000017f6f8 = puVar2[3]" (identifier "uRam000000000017f6f8") (= "=") (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "_DAT_0017f700 = puVar2[4];" (assignment_expression "_DAT_0017f700 = puVar2[4]" (identifier "_DAT_0017f700") (= "=") (subscript_expression "puVar2[4]" (identifier "puVar2") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uRam000000000017f708 = puVar2[5];" (assignment_expression "uRam000000000017f708 = puVar2[5]" (identifier "uRam000000000017f708") (= "=") (subscript_expression "puVar2[5]" (identifier "puVar2") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "_DAT_0017f710 = puVar2[6];" (assignment_expression "_DAT_0017f710 = puVar2[6]" (identifier "_DAT_0017f710") (= "=") (subscript_expression "puVar2[6]" (identifier "puVar2") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uRam000000000017f718 = puVar2[7];" (assignment_expression "uRam000000000017f718 = puVar2[7]" (identifier "uRam000000000017f718") (= "=") (subscript_expression "puVar2[7]" (identifier "puVar2") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "_DAT_0017f720 = puVar2[8];" (assignment_expression "_DAT_0017f720 = puVar2[8]" (identifier "_DAT_0017f720") (= "=") (subscript_expression "puVar2[8]" (identifier "puVar2") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "uRam000000000017f728 = puVar2[9];" (assignment_expression "uRam000000000017f728 = puVar2[9]" (identifier "uRam000000000017f728") (= "=") (subscript_expression "puVar2[9]" (identifier "puVar2") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "uRam000000000017f738 = puVar2[0xb];" (assignment_expression "uRam000000000017f738 = puVar2[0xb]" (identifier "uRam000000000017f738") (= "=") (subscript_expression "puVar2[0xb]" (identifier "puVar2") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "_DAT_0017f740 = puVar2[0xc];" (assignment_expression "_DAT_0017f740 = puVar2[0xc]" (identifier "_DAT_0017f740") (= "=") (subscript_expression "puVar2[0xc]" (identifier "puVar2") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "uRam000000000017f748 = puVar2[0xd];" (assignment_expression "uRam000000000017f748 = puVar2[0xd]" (identifier "uRam000000000017f748") (= "=") (subscript_expression "puVar2[0xd]" (identifier "puVar2") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "_DAT_0017f750 = puVar2[0xe];" (assignment_expression "_DAT_0017f750 = puVar2[0xe]" (identifier "_DAT_0017f750") (= "=") (subscript_expression "puVar2[0xe]" (identifier "puVar2") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "_DAT_0017f730 = FUN_00127340;" (assignment_expression "_DAT_0017f730 = FUN_00127340" (identifier "_DAT_0017f730") (= "=") (identifier "FUN_00127340")) (; ";")) (expression_statement "DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;" (assignment_expression "DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0" (identifier "DAT_0017fae0") (= "=") (cast_expression "(undefined8 *)&DAT_0017f6e0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0017f6e0" (& "&") (identifier "DAT_0017f6e0")))) (; ";")) (expression_statement "DAT_0017f758 = puVar2;" (assignment_expression "DAT_0017f758 = puVar2" (identifier "DAT_0017f758") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "register_ld_plugin_object_p(FUN_001281c0);" (call_expression "register_ld_plugin_object_p(FUN_001281c0)" (identifier "register_ld_plugin_object_p") (argument_list "(FUN_001281c0)" (( "(") (identifier "FUN_001281c0") () ")"))) (; ";")) (expression_statement "iVar5 = getpagesize();" (assignment_expression "iVar5 = getpagesize()" (identifier "iVar5") (= "=") (call_expression "getpagesize()" (identifier "getpagesize") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "DAT_0017f6c8 = (long)iVar5;" (assignment_expression "DAT_0017f6c8 = (long)iVar5" (identifier "DAT_0017f6c8") (= "=") (cast_expression "(long)iVar5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "iVar5"))) (; ";")) (return_statement "return;" (return "return") (; ";"))) (case_statement "case 3:\n      iVar5 = 0;\n      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }\n      *piVar13 = iVar5;\n      goto LAB_001287e0;" (case "case") (number_literal "3") (: ":") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (if_statement "if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }" (if "if") (parenthesized_expression "(((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0))" (( "(") (binary_expression "((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)" (parenthesized_expression "((DAT_0017fac0 & 3) != 2)" (( "(") (binary_expression "(DAT_0017fac0 & 3) != 2" (parenthesized_expression "(DAT_0017fac0 & 3)" (( "(") (binary_expression "DAT_0017fac0 & 3" (identifier "DAT_0017fac0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = 1, (DAT_0017fac0 & 3) != 0)" (( "(") (comma_expression "iVar5 = 1, (DAT_0017fac0 & 3) != 0" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (, ",") (binary_expression "(DAT_0017fac0 & 3) != 0" (parenthesized_expression "(DAT_0017fac0 & 3)" (( "(") (binary_expression "DAT_0017fac0 & 3" (identifier "DAT_0017fac0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;\n      }" ({ "{") (expression_statement "iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;" (assignment_expression "iVar5 = ((DAT_0017fac0 & 3) == 1) + 2" (identifier "iVar5") (= "=") (binary_expression "((DAT_0017fac0 & 3) == 1) + 2" (parenthesized_expression "((DAT_0017fac0 & 3) == 1)" (( "(") (binary_expression "(DAT_0017fac0 & 3) == 1" (parenthesized_expression "(DAT_0017fac0 & 3)" (( "(") (binary_expression "DAT_0017fac0 & 3" (identifier "DAT_0017fac0") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "1")) () ")")) (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "*piVar13 = iVar5;" (assignment_expression "*piVar13 = iVar5" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (= "=") (identifier "iVar5")) (; ";")) (goto_statement "goto LAB_001287e0;" (goto "goto") (statement_identifier "LAB_001287e0") (; ";"))) (case_statement "case 5:\n      *(code **)piVar13 = FUN_00127670;\n      goto LAB_001287e0;" (case "case") (number_literal "5") (: ":") (expression_statement "*(code **)piVar13 = FUN_00127670;" (assignment_expression "*(code **)piVar13 = FUN_00127670" (pointer_expression "*(code **)piVar13" (* "*") (cast_expression "(code **)piVar13" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "piVar13"))) (= "=") (identifier "FUN_00127670")) (; ";")) (goto_statement "goto LAB_001287e0;" (goto "goto") (statement_identifier "LAB_001287e0") (; ";"))) (case_statement "case 6:\n      *(code **)piVar13 = FUN_00127630;\n      goto LAB_001287e0;" (case "case") (number_literal "6") (: ":") (expression_statement "*(code **)piVar13 = FUN_00127630;" (assignment_expression "*(code **)piVar13 = FUN_00127630" (pointer_expression "*(code **)piVar13" (* "*") (cast_expression "(code **)piVar13" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "piVar13"))) (= "=") (identifier "FUN_00127630")) (; ";")) (goto_statement "goto LAB_001287e0;" (goto "goto") (statement_identifier "LAB_001287e0") (; ";"))) (case_statement "case 7:\n      *(code **)piVar13 = FUN_001275f0;\n      goto LAB_001287e0;" (case "case") (number_literal "7") (: ":") (expression_statement "*(code **)piVar13 = FUN_001275f0;" (assignment_expression "*(code **)piVar13 = FUN_001275f0" (pointer_expression "*(code **)piVar13" (* "*") (cast_expression "(code **)piVar13" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "piVar13"))) (= "=") (identifier "FUN_001275f0")) (; ";")) (goto_statement "goto LAB_001287e0;" (goto "goto") (statement_identifier "LAB_001287e0") (; ";"))) (case_statement "case 8:\n      *(code **)piVar13 = FUN_00127920;\n      goto LAB_001287e0;" (case "case") (number_literal "8") (: ":") (expression_statement "*(code **)piVar13 = FUN_00127920;" (assignment_expression "*(code **)piVar13 = FUN_00127920" (pointer_expression "*(code **)piVar13" (* "*") (cast_expression "(code **)piVar13" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "piVar13"))) (= "=") (identifier "FUN_00127920")) (; ";")) (goto_statement "goto LAB_001287e0;" (goto "goto") (statement_identifier "LAB_001287e0") (; ";"))) (case_statement "case 9:\n      *(code **)piVar13 = FUN_001281b0;\n      goto LAB_001287e0;" (case "case") (number_literal "9") (: ":") (expression_statement "*(code **)piVar13 = FUN_001281b0;" (assignment_expression "*(code **)piVar13 = FUN_001281b0" (pointer_expression "*(code **)piVar13" (* "*") (cast_expression "(code **)piVar13" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "piVar13"))) (= "=") (identifier "FUN_001281b0")) (; ";")) (goto_statement "goto LAB_001287e0;" (goto "goto") (statement_identifier "LAB_001287e0") (; ";"))) (case_statement "case 10:\n      *(code **)piVar13 = FUN_00127740;\n      goto LAB_001287e0;" (case "case") (number_literal "10") (: ":") (expression_statement "*(code **)piVar13 = FUN_00127740;" (assignment_expression "*(code **)piVar13 = FUN_00127740" (pointer_expression "*(code **)piVar13" (* "*") (cast_expression "(code **)piVar13" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "piVar13"))) (= "=") (identifier "FUN_00127740")) (; ";")) (goto_statement "goto LAB_001287e0;" (goto "goto") (statement_identifier "LAB_001287e0") (; ";"))) (case_statement "default:\n      *(code **)piVar13 = FUN_00127ca0;\n      goto LAB_001287e0;" (default "default") (: ":") (expression_statement "*(code **)piVar13 = FUN_00127ca0;" (assignment_expression "*(code **)piVar13 = FUN_00127ca0" (pointer_expression "*(code **)piVar13" (* "*") (cast_expression "(code **)piVar13" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "piVar13"))) (= "=") (identifier "FUN_00127ca0")) (; ";")) (goto_statement "goto LAB_001287e0;" (goto "goto") (statement_identifier "LAB_001287e0") (; ";"))) (case_statement "case 0xc:\n      *(code **)piVar13 = FUN_00127590;\n      goto LAB_001287e0;" (case "case") (number_literal "0xc") (: ":") (expression_statement "*(code **)piVar13 = FUN_00127590;" (assignment_expression "*(code **)piVar13 = FUN_00127590" (pointer_expression "*(code **)piVar13" (* "*") (cast_expression "(code **)piVar13" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "piVar13"))) (= "=") (identifier "FUN_00127590")) (; ";")) (goto_statement "goto LAB_001287e0;" (goto "goto") (statement_identifier "LAB_001287e0") (; ";"))) (case_statement "case 0xd:\n      *(code **)piVar13 = FUN_00127540;\n      goto LAB_001287e0;" (case "case") (number_literal "0xd") (: ":") (expression_statement "*(code **)piVar13 = FUN_00127540;" (assignment_expression "*(code **)piVar13 = FUN_00127540" (pointer_expression "*(code **)piVar13" (* "*") (cast_expression "(code **)piVar13" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "piVar13"))) (= "=") (identifier "FUN_00127540")) (; ";")) (goto_statement "goto LAB_001287e0;" (goto "goto") (statement_identifier "LAB_001287e0") (; ";"))) (case_statement "case 0xe:\n      *(code **)piVar13 = FUN_001276f0;\n      goto LAB_001287e0;" (case "case") (number_literal "0xe") (: ":") (expression_statement "*(code **)piVar13 = FUN_001276f0;" (assignment_expression "*(code **)piVar13 = FUN_001276f0" (pointer_expression "*(code **)piVar13" (* "*") (cast_expression "(code **)piVar13" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "piVar13"))) (= "=") (identifier "FUN_001276f0")) (; ";")) (goto_statement "goto LAB_001287e0;" (goto "goto") (statement_identifier "LAB_001287e0") (; ";"))) (case_statement "case 0xf:\n      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;\n      goto LAB_001287e0;" (case "case") (number_literal "0xf") (: ":") (expression_statement "*(undefined **)piVar13 = PTR_s_a_out_0017e6f8;" (assignment_expression "*(undefined **)piVar13 = PTR_s_a_out_0017e6f8" (pointer_expression "*(undefined **)piVar13" (* "*") (cast_expression "(undefined **)piVar13" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "piVar13"))) (= "=") (identifier "PTR_s_a_out_0017e6f8")) (; ";")) (goto_statement "goto LAB_001287e0;" (goto "goto") (statement_identifier "LAB_001287e0") (; ";"))) (case_statement "case 0x10:\n      *(code **)piVar13 = FUN_001276b0;\n      goto LAB_001287e0;" (case "case") (number_literal "0x10") (: ":") (expression_statement "*(code **)piVar13 = FUN_001276b0;" (assignment_expression "*(code **)piVar13 = FUN_001276b0" (pointer_expression "*(code **)piVar13" (* "*") (cast_expression "(code **)piVar13" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "piVar13"))) (= "=") (identifier "FUN_001276b0")) (; ";")) (goto_statement "goto LAB_001287e0;" (goto "goto") (statement_identifier "LAB_001287e0") (; ";"))) (case_statement "case 0x11:\n      *piVar13 = 0xe7;\n      goto LAB_001287e0;" (case "case") (number_literal "0x11") (: ":") (expression_statement "*piVar13 = 0xe7;" (assignment_expression "*piVar13 = 0xe7" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (= "=") (number_literal "0xe7")) (; ";")) (goto_statement "goto LAB_001287e0;" (goto "goto") (statement_identifier "LAB_001287e0") (; ";"))) (case_statement "case 0x12:\n      *(code **)piVar13 = FUN_001277a0;\n      goto LAB_001287e0;" (case "case") (number_literal "0x12") (: ":") (expression_statement "*(code **)piVar13 = FUN_001277a0;" (assignment_expression "*(code **)piVar13 = FUN_001277a0" (pointer_expression "*(code **)piVar13" (* "*") (cast_expression "(code **)piVar13" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "piVar13"))) (= "=") (identifier "FUN_001277a0")) (; ";")) (goto_statement "goto LAB_001287e0;" (goto "goto") (statement_identifier "LAB_001287e0") (; ";"))) (case_statement "case 0x19:\n      *(code **)piVar13 = FUN_001281a0;\n      goto LAB_001287e0;" (case "case") (number_literal "0x19") (: ":") (expression_statement "*(code **)piVar13 = FUN_001281a0;" (assignment_expression "*(code **)piVar13 = FUN_001281a0" (pointer_expression "*(code **)piVar13" (* "*") (cast_expression "(code **)piVar13" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "piVar13"))) (= "=") (identifier "FUN_001281a0")) (; ";")) (goto_statement "goto LAB_001287e0;" (goto "goto") (statement_identifier "LAB_001287e0") (; ";"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void function_1(void)

{
  size_t *psVar1;
  type_1 *var_17;
  char *pcVar3;
  type_2 *var_18;
  type_3 *pbVar5;
  type_4 var_11;
  type_5 var_19;
  int iVar8;
  type_6 *var_3;
  type_2 *var_6;
  type_7 *var_13;
  char *pcVar12;
  type_8 uVar13;
  type_9 var_2;
  int *piVar15;
  int *var_9;
  type_4 *var_8;
  
  if (var_1 == (type_10 *)0x0) {
    return;
  }
  var_2 = 0;
  var_3 = var_1;
  do {
    psVar1 = &var_3->n_args;
    var_3 = var_3->next;
    if (var_2 < *psVar1) {
      var_2 = *psVar1 & 0xffffffff;
    }
  } while (var_3 != (type_6 *)0x0);
  var_8 = var_4 + 1;
  var_6 = (type_2 *)var_5(((type_9)((int)var_2 + 1) + 0x11) * 0x10);
  piVar15 = var_6 + 2;
  var_11 = LDPT_MESSAGE;
  *var_6 = 0xb;
  do {
    switch(var_11) {
    case LDPT_NULL:
    case LDPT_GOLD_VERSION:
    case LDPT_OPTION:
    case LDPT_GET_INPUT_SECTION_COUNT:
    case LDPT_GET_INPUT_SECTION_TYPE:
    case LDPT_GET_INPUT_SECTION_NAME:
    case LDPT_GET_INPUT_SECTION_CONTENTS:
    case LDPT_UPDATE_SECTION_ORDER:
    case LDPT_ALLOW_SECTION_ORDERING:
      do {
        var_7("../../ld/plugin.c",0x3b8);
        var_9 = piVar15;
        if (var_8 == (type_4 *)&DAT_00142404) goto LAB_00128828;
LAB_001287e9:
        piVar15 = var_9 + 4;
        var_11 = *var_8;
        var_8 = var_8 + 1;
        var_9[2] = var_11;
      } while (var_10 < var_11);
      break;
    case LDPT_API_VERSION:
      *piVar15 = 1;
LAB_001287e0:
      var_9 = piVar15;
      if (var_8 != (type_4 *)&DAT_00142404) goto LAB_001287e9;
LAB_00128828:
      pbVar5 = link_info.callbacks;
      for (var_3 = var_1; var_3 != (type_10 *)0x0; var_3 = var_3->next) {
        link_info.callbacks = pbVar5;
        var_13 = (type_7 *)var_12(var_3->dlhandle,"onload");
        if ((var_13 == (type_7 *)0x0) &&
           (var_13 = (type_7 *)var_12(var_3->dlhandle,"_onload"), var_13 == (type_7 *)0x0)) {
          uVar13 = var_14();
          pcVar3 = var_3->name;
          pcVar12 = (char *)var_15(0,"%F%P: %s: error loading plugin: %s\n",5);
          var_16(pcVar12,pcVar3,uVar13);
        }
        var_17 = var_3->args;
        var_18 = var_6 + 0x44;
        while (var_17 != (type_1 *)0x0) {
          pcVar3 = var_17->arg;
          var_17 = var_17->next;
          *var_18 = 4;
          *(char **)(var_18 + 2) = pcVar3;
          var_18 = var_18 + 4;
        }
        *var_18 = 0;
        var_18[2] = 0;
        called_plugin = var_3;
        var_19 = (*var_13)(var_6);
        called_plugin = (type_10 *)0x0;
        if (var_19 != 0) {
          pcVar3 = var_3->name;
          pcVar12 = (char *)var_15(0,"%F%P: %s: plugin error: %d\n",5);
          var_16(pcVar12,pcVar3,(type_9)var_19);
        }
        pbVar5 = link_info.callbacks;
      }
      var_19 = (type_5)(type_11)link_info._1_1_;
      link_info._1_1_ = link_info._1_1_ | 3;
      orig_notice_all = var_19 & 1;
      plugin_callbacks.add_archive_element = pbVar5->add_archive_element;
      plugin_callbacks.multiple_definition = pbVar5->multiple_definition;
      plugin_callbacks.multiple_common = pbVar5->multiple_common;
      plugin_callbacks.add_to_set = pbVar5->add_to_set;
      plugin_callbacks.constructor = pbVar5->constructor;
      plugin_callbacks.warning = pbVar5->warning;
      plugin_callbacks.undefined_symbol = pbVar5->undefined_symbol;
      plugin_callbacks.reloc_overflow = pbVar5->reloc_overflow;
      plugin_callbacks.reloc_dangerous = pbVar5->reloc_dangerous;
      plugin_callbacks.unattached_reloc = pbVar5->unattached_reloc;
      plugin_callbacks.var_16 = pbVar5->var_16;
      plugin_callbacks.info = pbVar5->info;
      plugin_callbacks.minfo = pbVar5->minfo;
      plugin_callbacks.override_segment_assignment = pbVar5->override_segment_assignment;
      plugin_callbacks.notice = plugin_notice;
      link_info.callbacks = &plugin_callbacks;
      orig_callbacks = pbVar5;
      var_20(plugin_object_p);
      iVar8 = var_21();
      plugin_pagesize = (long)iVar8;
      return;
    case LDPT_LINKER_OUTPUT:
      iVar8 = 0;
      if (((link_info._0_1_ & 3) != 2) && (iVar8 = 1, (link_info._0_1_ & 3) != 0)) {
        iVar8 = ((link_info._0_1_ & 3) == 1) + 2;
      }
      *piVar15 = iVar8;
      goto LAB_001287e0;
    case LDPT_REGISTER_CLAIM_FILE_HOOK:
      *(type_7 **)piVar15 = register_claim_file;
      goto LAB_001287e0;
    case LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK:
      *(type_7 **)piVar15 = register_all_symbols_read;
      goto LAB_001287e0;
    case LDPT_REGISTER_CLEANUP_HOOK:
      *(type_7 **)piVar15 = register_cleanup;
      goto LAB_001287e0;
    case LDPT_ADD_SYMBOLS:
      *(type_7 **)piVar15 = add_symbols;
      goto LAB_001287e0;
    case LDPT_GET_SYMBOLS:
      *(type_7 **)piVar15 = get_symbols_v1;
      goto LAB_001287e0;
    case LDPT_ADD_INPUT_FILE:
      *(type_7 **)piVar15 = add_input_file;
      goto LAB_001287e0;
    default:
      *(type_7 **)piVar15 = message;
      goto LAB_001287e0;
    case LDPT_GET_INPUT_FILE:
      *(type_7 **)piVar15 = get_input_file;
      goto LAB_001287e0;
    case LDPT_RELEASE_INPUT_FILE:
      *(type_7 **)piVar15 = release_input_file;
      goto LAB_001287e0;
    case LDPT_ADD_INPUT_LIBRARY:
      *(type_7 **)piVar15 = add_input_library;
      goto LAB_001287e0;
    case LDPT_OUTPUT_NAME:
      *(char **)piVar15 = output_filename;
      goto LAB_001287e0;
    case LDPT_SET_EXTRA_LIBRARY_PATH:
      *(type_7 **)piVar15 = set_extra_library_path;
      goto LAB_001287e0;
    case LDPT_GNU_LD_VERSION:
      *piVar15 = 0xe7;
      goto LAB_001287e0;
    case LDPT_GET_VIEW:
      *(type_7 **)piVar15 = get_view;
      goto LAB_001287e0;
    case var_10:
      *(type_7 **)piVar15 = get_symbols_v2;
      goto LAB_001287e0;
    }
  } while( true );
}


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

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void MASKED(void)

{
  ulong *puVar1;
  undefined8 *puVar2;
  long lVar3;
  undefined4 *puVar4;
  int iVar5;
  long *plVar6;
  undefined4 *puVar7;
  code *pcVar8;
  undefined8 uVar9;
  undefined8 uVar10;
  uint uVar11;
  ulong uVar12;
  int *piVar13;
  int *piVar14;
  uint *puVar15;
  
  if (DAT_0017f788 == (long *)0x0) {
    return;
  }
  uVar12 = 0;
  plVar6 = DAT_0017f788;
  do {
    puVar1 = (ulong *)(plVar6 + 4);
    plVar6 = (long *)*plVar6;
    if (uVar12 < *puVar1) {
      uVar12 = *puVar1 & 0xffffffff;
    }
  } while (plVar6 != (long *)0x0);
  puVar15 = &DAT_001423c4;
  puVar7 = (undefined4 *)xmalloc(((ulong)((int)uVar12 + 1) + 0x11) * 0x10);
  piVar13 = puVar7 + 2;
  uVar11 = 0xb;
  *puVar7 = 0xb;
  do {
    switch(uVar11) {
    case 0:
    case 2:
    case 4:
    case 0x13:
    case 0x14:
    case 0x15:
    case 0x16:
    case 0x17:
    case 0x18:
      do {
        FUN_001252b0("../../ld/plugin.c");
        piVar14 = piVar13;
        if (puVar15 == (uint *)&DAT_00142404) goto LAB_00128828;
LAB_001287e9:
        piVar13 = piVar14 + 4;
        uVar11 = *puVar15;
        puVar15 = puVar15 + 1;
        piVar14[2] = uVar11;
      } while (0x19 < uVar11);
      break;
    case 1:
      *piVar13 = 1;
LAB_001287e0:
      piVar14 = piVar13;
      if (puVar15 != (uint *)&DAT_00142404) goto LAB_001287e9;
LAB_00128828:
      puVar2 = DAT_0017fae0;
      for (plVar6 = DAT_0017f788; plVar6 != (long *)0x0; plVar6 = (long *)*plVar6) {
        DAT_0017fae0 = puVar2;
        pcVar8 = (code *)dlsym(plVar6[2],"onload");
        if ((pcVar8 == (code *)0x0) &&
           (pcVar8 = (code *)dlsym(plVar6[2],"_onload"), pcVar8 == (code *)0x0)) {
          uVar9 = dlerror();
          lVar3 = plVar6[1];
          uVar10 = dcgettext(0,"%F%P: %s: error loading plugin: %s\n",5);
          FUN_001251f0(uVar10,lVar3,uVar9);
        }
        puVar2 = (undefined8 *)plVar6[3];
        puVar4 = puVar7 + 0x44;
        while (puVar2 != (undefined8 *)0x0) {
          uVar9 = puVar2[1];
          puVar2 = (undefined8 *)*puVar2;
          *puVar4 = 4;
          *(undefined8 *)(puVar4 + 2) = uVar9;
          puVar4 = puVar4 + 4;
        }
        *puVar4 = 0;
        puVar4[2] = 0;
        DAT_0017f770 = plVar6;
        iVar5 = (*pcVar8)(puVar7);
        DAT_0017f770 = (long *)0x0;
        if (iVar5 != 0) {
          lVar3 = plVar6[1];
          uVar9 = dcgettext(0,"%F%P: %s: plugin error: %d\n",5);
          FUN_001251f0(uVar9,lVar3,iVar5);
        }
        puVar2 = DAT_0017fae0;
      }
      uVar11 = (uint)DAT_0017fac1;
      DAT_0017fac1 = DAT_0017fac1 | 3;
      DAT_0017f760 = uVar11 & 1;
      _DAT_0017f6e0 = *puVar2;
      uRam000000000017f6e8 = puVar2[1];
      _DAT_0017f6f0 = puVar2[2];
      uRam000000000017f6f8 = puVar2[3];
      _DAT_0017f700 = puVar2[4];
      uRam000000000017f708 = puVar2[5];
      _DAT_0017f710 = puVar2[6];
      uRam000000000017f718 = puVar2[7];
      _DAT_0017f720 = puVar2[8];
      uRam000000000017f728 = puVar2[9];
      uRam000000000017f738 = puVar2[0xb];
      _DAT_0017f740 = puVar2[0xc];
      uRam000000000017f748 = puVar2[0xd];
      _DAT_0017f750 = puVar2[0xe];
      _DAT_0017f730 = FUN_00127340;
      DAT_0017fae0 = (undefined8 *)&DAT_0017f6e0;
      DAT_0017f758 = puVar2;
      register_ld_plugin_object_p(FUN_001281c0);
      iVar5 = getpagesize();
      DAT_0017f6c8 = (long)iVar5;
      return;
    case 3:
      iVar5 = 0;
      if (((DAT_0017fac0 & 3) != 2) && (iVar5 = 1, (DAT_0017fac0 & 3) != 0)) {
        iVar5 = ((DAT_0017fac0 & 3) == 1) + 2;
      }
      *piVar13 = iVar5;
      goto LAB_001287e0;
    case 5:
      *(code **)piVar13 = FUN_00127670;
      goto LAB_001287e0;
    case 6:
      *(code **)piVar13 = FUN_00127630;
      goto LAB_001287e0;
    case 7:
      *(code **)piVar13 = FUN_001275f0;
      goto LAB_001287e0;
    case 8:
      *(code **)piVar13 = FUN_00127920;
      goto LAB_001287e0;
    case 9:
      *(code **)piVar13 = FUN_001281b0;
      goto LAB_001287e0;
    case 10:
      *(code **)piVar13 = FUN_00127740;
      goto LAB_001287e0;
    default:
      *(code **)piVar13 = FUN_00127ca0;
      goto LAB_001287e0;
    case 0xc:
      *(code **)piVar13 = FUN_00127590;
      goto LAB_001287e0;
    case 0xd:
      *(code **)piVar13 = FUN_00127540;
      goto LAB_001287e0;
    case 0xe:
      *(code **)piVar13 = FUN_001276f0;
      goto LAB_001287e0;
    case 0xf:
      *(undefined **)piVar13 = PTR_s_a_out_0017e6f8;
      goto LAB_001287e0;
    case 0x10:
      *(code **)piVar13 = FUN_001276b0;
      goto LAB_001287e0;
    case 0x11:
      *piVar13 = 0xe7;
      goto LAB_001287e0;
    case 0x12:
      *(code **)piVar13 = FUN_001277a0;
      goto LAB_001287e0;
    case 0x19:
      *(code **)piVar13 = FUN_001281a0;
      goto LAB_001287e0;
    }
  } while( true );
}

