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

void build_link_order(lang_statement_union_type *statement)

{
  void **ppvVar1;
  statement_enum sVar2;
  asection *paVar3;
  bfd_section *pbVar4;
  lang_statement_union **pplVar5;
  name_list *pnVar6;
  wildcard_list *pwVar7;
  bfd_boolean bVar8;
  lang_statement_union *plVar9;
  uint uVar10;
  void *pvVar11;
  uint uVar12;
  bfd *pbVar13;
  undefined4 uVar14;
  undefined4 *puVar15;
  int iVar16;
  char *pcVar17;
  bfd *pbVar18;
  bfd_vma bVar19;
  undefined1 local_3c;
  bfd_byte buffer [8];
  
  sVar2 = (statement->header).type;
  if (sVar2 != lang_data_statement_enum) {
    if (sVar2 < lang_reloc_statement_enum) {
      if (((sVar2 == lang_input_section_enum) &&
          (paVar3 = (statement->input_section).section,
          (*(ushort *)&paVar3->field_0x18 & 0x380) != 0x200)) && ((paVar3->flags & 0x8000) == 0)) {
        pbVar4 = paVar3->output_section;
        if (pbVar4->owner != link_info.output_bfd) {
          info_assert("../../ld/ldwrite.c",0xf8);
        }
        if (((pbVar4->flags & 0x100) != 0) || ((pbVar4->flags & 0x402) == 0x402)) {
          iVar16 = bfd_new_link_order(link_info.output_bfd,pbVar4);
          if (iVar16 == 0) {
            pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);
            einfo(pcVar17);
          }
          if ((paVar3->flags & 0x2200) == 0x200) {
            *(undefined4 *)(iVar16 + 4) = 2;
            *(char **)(iVar16 + 0x1c) = "";
            *(undefined4 *)(iVar16 + 0x18) = 1;
          }
          else {
            *(undefined4 *)(iVar16 + 4) = 1;
            *(asection **)(iVar16 + 0x18) = paVar3;
            if (paVar3->output_section != pbVar4) {
              info_assert("../../ld/ldwrite.c",0x111);
            }
          }
          uVar14 = *(undefined4 *)((int)&paVar3->size + 4);
          *(int *)(iVar16 + 0x10) = (int)paVar3->size;
          bVar19 = paVar3->output_offset;
          *(undefined4 *)(iVar16 + 0x14) = uVar14;
          uVar14 = *(undefined4 *)((int)&paVar3->output_offset + 4);
          *(int *)(iVar16 + 8) = (int)bVar19;
          *(undefined4 *)(iVar16 + 0xc) = uVar14;
        }
      }
    }
    else if (sVar2 == lang_reloc_statement_enum) {
      paVar3 = (statement->reloc_statement).output_section;
      if (paVar3->owner != link_info.output_bfd) {
        info_assert("../../ld/ldwrite.c",0xc5);
      }
      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {
        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);
        if (iVar16 == 0) {
          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);
          einfo(pcVar17);
        }
        pwVar7 = (statement->wild_statement).handler_data[0];
        *(wildcard_list **)(iVar16 + 0xc) = (statement->wild_statement).handler_data[1];
        *(wildcard_list **)(iVar16 + 8) = pwVar7;
        uVar14 = bfd_get_reloc_size((statement->wild_statement).filenames_sorted);
        *(undefined4 *)(iVar16 + 0x14) = 0;
        *(undefined4 *)(iVar16 + 0x10) = uVar14;
        puVar15 = (undefined4 *)xmalloc(0x10);
        pcVar17 = (statement->wild_statement).filename;
        pplVar5 = (statement->wild_statement).children.tail;
        *(undefined4 **)(iVar16 + 0x18) = puVar15;
        pnVar6 = (statement->wild_statement).exclude_name_list;
        *puVar15 = pcVar17;
        pbVar18 = (bfd *)(statement->wild_statement).keep_sections;
        puVar15[2] = pplVar5;
        puVar15[3] = pnVar6;
        pbVar13 = link_info.output_bfd;
        if (pbVar18 == (bfd *)0x0) {
          pbVar18 = (statement->input_statement).the_bfd;
          *(undefined4 *)(iVar16 + 4) = 3;
          if ((bfd *)pbVar18->build_id != pbVar13) {
            uVar10 = (pbVar18->section_htab).count;
            ppvVar1 = &(pbVar18->section_htab).memory;
            pvVar11 = *ppvVar1;
            uVar12 = (pbVar18->section_htab).size;
            puVar15[2] = (int)pplVar5 + (int)*ppvVar1;
            puVar15[1] = uVar10;
            puVar15[3] = (int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11) + uVar12;
            return;
          }
        }
        else {
          *(undefined4 *)(iVar16 + 4) = 4;
        }
        puVar15[1] = pbVar18;
      }
    }
    else if (sVar2 == lang_padding_statement_enum) {
      paVar3 = (statement->data_statement).output_section;
      if (paVar3->owner != link_info.output_bfd) {
        info_assert("../../ld/ldwrite.c",0x121);
      }
      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {
        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);
        if (iVar16 == 0) {
          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);
          einfo(pcVar17);
        }
        pwVar7 = (statement->wild_statement).section_list;
        bVar8 = (statement->wild_statement).keep_sections;
        *(undefined4 *)(iVar16 + 4) = 2;
        *(wildcard_list **)(iVar16 + 0x10) = pwVar7;
        pcVar17 = (statement->wild_statement).filename;
        *(bfd_boolean *)(iVar16 + 0x14) = bVar8;
        bVar8 = (statement->wild_statement).filenames_sorted;
        *(char **)(iVar16 + 8) = pcVar17;
        paVar3 = (statement->output_section_statement).bfd_section;
        *(bfd_boolean *)(iVar16 + 0xc) = bVar8;
        pcVar17 = paVar3->name;
        *(uint **)(iVar16 + 0x1c) = &paVar3->id;
        *(char **)(iVar16 + 0x18) = pcVar17;
        return;
      }
    }
    return;
  }
  paVar3 = (statement->data_statement).output_section;
  if (paVar3->owner != link_info.output_bfd) {
    info_assert("../../ld/ldwrite.c",0x33);
  }
  if (((paVar3->flags & 0x100) == 0) && ((paVar3->flags & 0x402) != 0x402)) {
    return;
  }
  iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);
  if (iVar16 == 0) {
    pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);
    einfo(pcVar17);
  }
  pnVar6 = (statement->wild_statement).exclude_name_list;
  pplVar5 = (statement->wild_statement).children.tail;
  *(undefined4 *)(iVar16 + 4) = 2;
  *(name_list **)(iVar16 + 0xc) = pnVar6;
  *(lang_statement_union ***)(iVar16 + 8) = pplVar5;
  uVar14 = xmalloc(8);
  bVar8 = (statement->wild_statement).keep_sections;
  *(undefined4 *)(iVar16 + 0x1c) = uVar14;
  pwVar7 = (statement->wild_statement).section_list;
  bVar19 = CONCAT44(bVar8,pwVar7);
  if (((link_info.output_bfd)->xvec->byteorder < BFD_ENDIAN_UNKNOWN) ||
     (bVar19 = CONCAT44(bVar8,pwVar7), command_line.endian == ENDIAN_BIG)) goto _L11;
  if (command_line.endian != ENDIAN_LITTLE) {
    bVar19 = CONCAT44(bVar8,pwVar7);
    if ((command_line.endian != ENDIAN_UNSET) ||
       (bVar19 = CONCAT44(bVar8,pwVar7), file_chain.head == (lang_statement_union *)0x0)) goto _L11;
    pbVar4 = (bfd_section *)((file_chain.head)->input_statement).the_bfd;
    plVar9 = file_chain.head;
    while (pbVar4 == (bfd_section *)0x0) {
      plVar9 = (lang_statement_union *)(plVar9->data_statement).output_section;
      bVar19 = CONCAT44(bVar8,pwVar7);
      if (plVar9 == (lang_statement_union *)0x0) goto _L11;
      pbVar4 = (bfd_section *)(plVar9->input_statement).the_bfd;
    }
    bVar19 = CONCAT44(bVar8,pwVar7);
    if (((bfd_target *)pbVar4->id)->byteorder != BFD_ENDIAN_LITTLE) goto _L11;
  }
  bVar19 = CONCAT44(bVar8,pwVar7);
  switch((statement->data_statement).type) {
  case 0x11a:
  case 0x11b:
    bfd_putl64(pwVar7,bVar8,buffer);
    bVar19 = bfd_getb64(buffer);
    break;
  case 0x11c:
    bfd_putl32(pwVar7,bVar8,buffer);
    bVar19 = bfd_getb32(buffer);
    break;
  case 0x11d:
    bfd_putl16(pwVar7,bVar8,buffer);
    bVar19 = bfd_getb16(buffer);
    break;
  case 0x11e:
    break;
  default:
                    /* WARNING: Subroutine does not return */
    ld_abort("../../ld/ldwrite.c",0x86,"build_link_order");
  }
_L11:
  if (paVar3->owner != link_info.output_bfd) {
    info_assert("../../ld/ldwrite.c",0x8b);
  }
  switch((statement->data_statement).type) {
  case 0x11a:
  case 0x11b:
    (*(link_info.output_bfd)->xvec->bfd_putx64)(bVar19,*(void **)(iVar16 + 0x1c));
    *(undefined4 *)(iVar16 + 0x10) = 8;
    *(undefined4 *)(iVar16 + 0x14) = 0;
    uVar14 = 8;
    break;
  case 0x11c:
    uVar14 = 4;
    (*(link_info.output_bfd)->xvec->bfd_putx32)(bVar19,*(void **)(iVar16 + 0x1c));
    *(undefined4 *)(iVar16 + 0x10) = 4;
    *(undefined4 *)(iVar16 + 0x14) = 0;
    break;
  case 0x11d:
    uVar14 = 2;
    (*(link_info.output_bfd)->xvec->bfd_putx16)(bVar19,*(void **)(iVar16 + 0x1c));
    *(undefined4 *)(iVar16 + 0x10) = 2;
    *(undefined4 *)(iVar16 + 0x14) = 0;
    break;
  case 0x11e:
    local_3c = (undefined1)bVar19;
    uVar14 = 1;
    **(undefined1 **)(iVar16 + 0x1c) = local_3c;
    *(undefined4 *)(iVar16 + 0x10) = 1;
    *(undefined4 *)(iVar16 + 0x14) = 0;
    break;
  default:
                    /* WARNING: Subroutine does not return */
    ld_abort("../../ld/ldwrite.c",0xb6,"build_link_order");
  }
  *(undefined4 *)(iVar16 + 0x18) = uVar14;
  return;
}



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

void FUN_0002fae0(int param_1)

{
  uint uVar1;
  undefined1 *puVar2;
  undefined4 uVar3;
  int iVar4;
  uint uVar5;
  int iVar6;
  undefined4 *puVar7;
  int iVar8;
  int iVar9;
  undefined4 uVar10;
  undefined1 *puVar11;
  undefined8 uVar12;
  undefined1 local_3c;
  undefined1 auStack_24 [16];
  undefined4 uStack_14;
  
  uStack_14 = 0x2fae9;
  uVar1 = *(uint *)(param_1 + 4);
  if (uVar1 != 8) {
    if (uVar1 < 9) {
      if (((uVar1 == 5) &&
          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&
         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {
        iVar8 = *(int *)(iVar9 + 0x54);
        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {
          FUN_00034d70("../../ld/ldwrite.c",0xf8);
        }
        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)
           ) {
          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);
          if (iVar6 == 0) {
            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);
            FUN_00034d20(uVar10);
          }
          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {
            *(undefined4 *)(iVar6 + 4) = 2;
            *(char **)(iVar6 + 0x1c) = "";
            *(undefined4 *)(iVar6 + 0x18) = 1;
          }
          else {
            *(undefined4 *)(iVar6 + 4) = 1;
            *(int *)(iVar6 + 0x18) = iVar9;
            if (*(int *)(iVar9 + 0x54) != iVar8) {
              FUN_00034d70("../../ld/ldwrite.c",0x111);
            }
          }
          uVar10 = *(undefined4 *)(iVar9 + 0x30);
          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);
          uVar3 = *(undefined4 *)(iVar9 + 0x4c);
          *(undefined4 *)(iVar6 + 0x14) = uVar10;
          uVar10 = *(undefined4 *)(iVar9 + 0x50);
          *(undefined4 *)(iVar6 + 8) = uVar3;
          *(undefined4 *)(iVar6 + 0xc) = uVar10;
        }
      }
    }
    else if (uVar1 == 9) {
      iVar9 = *(int *)(param_1 + 0x24);
      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {
        FUN_00034d70("../../ld/ldwrite.c",0xc5);
      }
      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))
      {
        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);
        if (iVar9 == 0) {
          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);
          FUN_00034d20(uVar10);
        }
        uVar10 = *(undefined4 *)(param_1 + 0x28);
        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);
        *(undefined4 *)(iVar9 + 8) = uVar10;
        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));
        *(undefined4 *)(iVar9 + 0x14) = 0;
        *(undefined4 *)(iVar9 + 0x10) = uVar10;
        puVar7 = (undefined4 *)xmalloc(0x10);
        uVar10 = *(undefined4 *)(param_1 + 8);
        uVar1 = *(uint *)(param_1 + 0x1c);
        *(undefined4 **)(iVar9 + 0x18) = puVar7;
        iVar8 = *(int *)(param_1 + 0x20);
        *puVar7 = uVar10;
        iVar6 = *(int *)(param_1 + 0x14);
        puVar7[2] = uVar1;
        puVar7[3] = iVar8;
        iVar4 = DAT_001d1414;
        if (iVar6 == 0) {
          iVar6 = *(int *)(param_1 + 0x10);
          *(undefined4 *)(iVar9 + 4) = 3;
          if (*(int *)(iVar6 + 0xac) != iVar4) {
            uVar10 = *(undefined4 *)(iVar6 + 0x54);
            uVar5 = *(uint *)(iVar6 + 0x4c);
            iVar9 = *(int *)(iVar6 + 0x50);
            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);
            puVar7[1] = uVar10;
            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);
            return;
          }
        }
        else {
          *(undefined4 *)(iVar9 + 4) = 4;
        }
        puVar7[1] = iVar6;
      }
    }
    else if (uVar1 == 0xc) {
      iVar9 = *(int *)(param_1 + 0x18);
      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {
        FUN_00034d70("../../ld/ldwrite.c",0x121);
      }
      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))
      {
        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);
        if (iVar9 == 0) {
          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);
          FUN_00034d20(uVar10);
        }
        uVar10 = *(undefined4 *)(param_1 + 0x10);
        uVar3 = *(undefined4 *)(param_1 + 0x14);
        *(undefined4 *)(iVar9 + 4) = 2;
        *(undefined4 *)(iVar9 + 0x10) = uVar10;
        uVar10 = *(undefined4 *)(param_1 + 8);
        *(undefined4 *)(iVar9 + 0x14) = uVar3;
        uVar3 = *(undefined4 *)(param_1 + 0xc);
        *(undefined4 *)(iVar9 + 8) = uVar10;
        puVar7 = *(undefined4 **)(param_1 + 0x1c);
        *(undefined4 *)(iVar9 + 0xc) = uVar3;
        uVar10 = *puVar7;
        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;
        *(undefined4 *)(iVar9 + 0x18) = uVar10;
        return;
      }
    }
    return;
  }
  iVar9 = *(int *)(param_1 + 0x18);
  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {
    FUN_00034d70("../../ld/ldwrite.c",0x33);
  }
  if (((*(uint *)(iVar9 + 0x14) & 0x100) == 0) && ((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402)) {
    return;
  }
  iVar8 = bfd_new_link_order(DAT_001d1414,iVar9);
  if (iVar8 == 0) {
    uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);
    FUN_00034d20(uVar10);
  }
  uVar10 = *(undefined4 *)(param_1 + 0x20);
  uVar3 = *(undefined4 *)(param_1 + 0x1c);
  *(undefined4 *)(iVar8 + 4) = 2;
  *(undefined4 *)(iVar8 + 0xc) = uVar10;
  *(undefined4 *)(iVar8 + 8) = uVar3;
  uVar10 = xmalloc(8);
  puVar2 = *(undefined1 **)(param_1 + 0x14);
  *(undefined4 *)(iVar8 + 0x1c) = uVar10;
  uVar10 = *(undefined4 *)(param_1 + 0x10);
  uVar12 = CONCAT44(puVar2,uVar10);
  if ((*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2) ||
     (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1)) goto LAB_0002fdbb;
  puVar11 = puVar2;
  if (DAT_001d14b0 != 2) {
    uVar12 = CONCAT44(puVar2,uVar10);
    if ((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))
    goto LAB_0002fdbb;
    iVar6 = *(int *)(DAT_001d06bc + 0x10);
    iVar4 = DAT_001d06bc;
    while (iVar6 == 0) {
      iVar4 = *(int *)(iVar4 + 0x18);
      uVar12 = CONCAT44(puVar2,uVar10);
      if (iVar4 == 0) goto LAB_0002fdbb;
      puVar11 = &DAT_001d13e0;
      iVar6 = *(int *)(iVar4 + 0x10);
    }
    uVar12 = CONCAT44(puVar2,uVar10);
    if (*(int *)(*(int *)(iVar6 + 4) + 8) != 1) goto LAB_0002fdbb;
  }
  uVar12 = CONCAT44(puVar2,uVar10);
  switch(*(undefined4 *)(param_1 + 8)) {
  case 0x11a:
  case 0x11b:
    func_0x000169a0(uVar10,puVar2,auStack_24);
    uVar12 = func_0x00016390(auStack_24);
    break;
  case 0x11c:
    func_0x000167b0(uVar10,puVar2,auStack_24);
    uVar12 = func_0x00016aa0(auStack_24);
    break;
  case 0x11d:
    func_0x00016ac0(uVar10,puVar2,auStack_24);
    uVar12 = func_0x000167d0(auStack_24);
    break;
  case 0x11e:
    break;
  default:
                    /* WARNING: Subroutine does not return */
    FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);
  }
LAB_0002fdbb:
  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {
    iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);
  }
  switch(*(undefined4 *)(param_1 + 8)) {
  case 0x11a:
  case 0x11b:
    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));
    *(undefined4 *)(iVar8 + 0x10) = 8;
    *(undefined4 *)(iVar8 + 0x14) = 0;
    uVar10 = 8;
    break;
  case 0x11c:
    uVar10 = 4;
    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));
    *(undefined4 *)(iVar8 + 0x10) = 4;
    *(undefined4 *)(iVar8 + 0x14) = 0;
    break;
  case 0x11d:
    uVar10 = 2;
    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));
    *(undefined4 *)(iVar8 + 0x10) = 2;
    *(undefined4 *)(iVar8 + 0x14) = 0;
    break;
  case 0x11e:
    local_3c = (undefined1)uVar12;
    uVar10 = 1;
    **(undefined1 **)(iVar8 + 0x1c) = local_3c;
    *(undefined4 *)(iVar8 + 0x10) = 1;
    *(undefined4 *)(iVar8 + 0x14) = 0;
    break;
  default:
                    /* WARNING: Subroutine does not return */
    FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);
  }
  *(undefined4 *)(iVar8 + 0x18) = uVar10;
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00017b80
ADD EBX,0x19f517
SUB ESP,0x3c
MOV EDI,dword ptr [ESP + 0x50]
MOV ESI,dword ptr [EDI + 0x4]
CMP ESI,0x8
JZ 0x0002fd08
JBE 0x0002fb68
CMP ESI,0x9
JZ 0x0002fc48
CMP ESI,0xc
JNZ 0x0002fb59
LEA EBP,[EBX + 0x23e0]
MOV ESI,dword ptr [EDI + 0x18]
MOV EAX,dword ptr [EBP + 0x34]
CMP dword ptr [ESI + 0xac],EAX
JZ 0x0002fb3d
SUB ESP,0x8
LEA EAX,[EBX + 0xffeadec7]
PUSH 0x121
PUSH EAX
CALL 0x00034d70
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x14]
TEST AH,0x1
JNZ 0x0002fe00
AND EAX,0x402
CMP EAX,0x402
JZ 0x0002fe00
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP ESI,0x5
JNZ 0x0002fb59
MOV ESI,dword ptr [EDI + 0x8]
MOVZX EAX,word ptr [ESI + 0x18]
AND AX,0x380
CMP AX,0x200
JZ 0x0002fb59
TEST byte ptr [ESI + 0x15],0x80
JNZ 0x0002fb59
LEA EBP,[EBX + 0x23e0]
MOV EDX,dword ptr [ESI + 0x54]
MOV EAX,dword ptr [EBP + 0x34]
CMP dword ptr [EDX + 0xac],EAX
JZ 0x0002fbb7
MOV dword ptr [ESP + 0xc],EDX
LEA EAX,[EBX + 0xffeadec7]
SUB ESP,0x8
PUSH 0xf8
PUSH EAX
CALL 0x00034d70
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EDX + 0x14]
TEST AH,0x1
JNZ 0x0002fbcb
AND EAX,0x402
CMP EAX,0x402
JNZ 0x0002fb59
SUB ESP,0x8
PUSH EDX
MOV dword ptr [ESP + 0x18],EDX
PUSH dword ptr [EBP + 0x34]
CALL 0x00016c30
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
TEST EAX,EAX
MOV EDI,EAX
JZ 0x00030120
MOV EAX,dword ptr [ESI + 0x14]
AND EAX,0x2200
CMP EAX,0x200
JZ 0x00030048
MOV dword ptr [EDI + 0x4],0x1
MOV dword ptr [EDI + 0x18],ESI
CMP dword ptr [ESI + 0x54],EDX
JZ 0x0002fc25
SUB ESP,0x8
LEA EAX,[EBX + 0xffeadec7]
PUSH 0x111
PUSH EAX
CALL 0x00034d70
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x2c]
MOV EDX,dword ptr [ESI + 0x30]
MOV dword ptr [EDI + 0x10],EAX
MOV EAX,dword ptr [ESI + 0x4c]
MOV dword ptr [EDI + 0x14],EDX
MOV EDX,dword ptr [ESI + 0x50]
MOV dword ptr [EDI + 0x8],EAX
MOV dword ptr [EDI + 0xc],EDX
JMP 0x0002fb59
LEA EBP,[EBX + 0x23e0]
MOV ESI,dword ptr [EDI + 0x24]
MOV EAX,dword ptr [EBP + 0x34]
CMP dword ptr [ESI + 0xac],EAX
JZ 0x0002fc73
SUB ESP,0x8
LEA EAX,[EBX + 0xffeadec7]
PUSH 0xc5
PUSH EAX
CALL 0x00034d70
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x14]
TEST AH,0x1
JNZ 0x0002fc8b
AND EAX,0x402
CMP EAX,0x402
JNZ 0x0002fb59
SUB ESP,0x8
PUSH ESI
PUSH dword ptr [EBP + 0x34]
CALL 0x00016c30
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0002ffd0
MOV EDX,dword ptr [EDI + 0x2c]
MOV EAX,dword ptr [EDI + 0x28]
SUB ESP,0xc
MOV dword ptr [ESI + 0xc],EDX
MOV dword ptr [ESI + 0x8],EAX
PUSH dword ptr [EDI + 0xc]
CALL 0x00016330
MOV dword ptr [ESI + 0x14],0x0
MOV dword ptr [ESI + 0x10],EAX
MOV dword ptr [ESP],0x10
CALL 0x00016dc8
MOV EDX,dword ptr [EDI + 0x8]
MOV ECX,dword ptr [EDI + 0x1c]
ADD ESP,0x10
MOV dword ptr [ESI + 0x18],EAX
MOV EBX,dword ptr [EDI + 0x20]
MOV dword ptr [EAX],EDX
MOV EDX,dword ptr [EDI + 0x14]
MOV dword ptr [EAX + 0x8],ECX
MOV dword ptr [EAX + 0xc],EBX
TEST EDX,EDX
JZ 0x0002ffa0
MOV dword ptr [ESI + 0x4],0x4
MOV dword ptr [EAX + 0x4],EDX
JMP 0x0002fb59
MOV EAX,dword ptr [EDI + 0x18]
LEA EBP,[EBX + 0x23e0]
MOV dword ptr [ESP + 0x18],EAX
MOV EDX,dword ptr [EBP + 0x34]
CMP dword ptr [EAX + 0xac],EDX
JZ 0x0002fd34
SUB ESP,0x8
LEA EAX,[EBX + 0xffeadec7]
PUSH 0x33
PUSH EAX
CALL 0x00034d70
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [EAX + 0x14]
TEST AH,0x1
JNZ 0x0002fd50
AND EAX,0x402
CMP EAX,0x402
JNZ 0x0002fb59
SUB ESP,0x8
PUSH dword ptr [ESP + 0x20]
PUSH dword ptr [EBP + 0x34]
CALL 0x00016c30
MOV dword ptr [ESP + 0x1c],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002fff8
MOV ECX,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [EDI + 0x20]
SUB ESP,0xc
MOV EAX,dword ptr [EDI + 0x1c]
MOV dword ptr [ECX + 0x4],0x2
MOV dword ptr [ECX + 0xc],EDX
MOV dword ptr [ECX + 0x8],EAX
PUSH 0x8
CALL 0x00016dc8
MOV ECX,dword ptr [ESP + 0x1c]
MOV EDX,dword ptr [EDI + 0x14]
MOV dword ptr [ECX + 0x1c],EAX
MOV EAX,dword ptr [EDI + 0x10]
MOV dword ptr [ESP + 0x24],EDX
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,dword ptr [EBP + 0x34]
MOV ECX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x2c],EAX
ADD ESP,0x10
CMP dword ptr [ECX + 0x8],0x1
JA 0x0002ff30
MOV EAX,dword ptr [ESP + 0x18]
MOV EDX,dword ptr [ESP + 0x1c]
CMP dword ptr [EAX + 0xac],EDX
JZ 0x0002fde2
SUB ESP,0x8
LEA ECX,[EBX + 0xffeadec7]
PUSH 0x8b
PUSH ECX
CALL 0x00034d70
ADD ESP,0x10
MOV ECX,dword ptr [EDI + 0x8]
SUB ECX,0x11a
CMP ECX,0x4
JA 0x00030147
ADD EBX,dword ptr [EBX + ECX*0x4 + 0xffeadf94]
JMP EBX
SUB ESP,0x8
PUSH ESI
PUSH dword ptr [EBP + 0x34]
CALL 0x00016c30
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x00030020
MOV EAX,dword ptr [EDI + 0x10]
MOV EDX,dword ptr [EDI + 0x14]
MOV dword ptr [ESI + 0x4],0x2
MOV dword ptr [ESI + 0x10],EAX
MOV EAX,dword ptr [EDI + 0x8]
MOV dword ptr [ESI + 0x14],EDX
MOV EDX,dword ptr [EDI + 0xc]
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [EDI + 0x1c]
MOV dword ptr [ESI + 0xc],EDX
LEA EDX,[EAX + 0x4]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESI + 0x1c],EDX
MOV dword ptr [ESI + 0x18],EAX
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA ECX,[EBX + 0x2480]
MOV ECX,dword ptr [ECX + 0x30]
CMP ECX,0x1
JZ 0x0002fdbb
CMP ECX,0x2
JZ 0x00030079
TEST ECX,ECX
JNZ 0x0002fdbb
LEA ECX,[EBX + 0x16bc]
MOV ECX,dword ptr [ECX]
TEST ECX,ECX
JZ 0x0002fdbb
MOV EAX,dword ptr [ECX + 0x10]
TEST EAX,EAX
JNZ 0x0003006c
MOV EDX,EBP
MOV EBP,EDI
MOV EDI,ESI
JMP 0x0002ff8b
MOV ESI,dword ptr [ECX + 0x10]
TEST ESI,ESI
JNZ 0x00030064
MOV ECX,dword ptr [ECX + 0x18]
TEST ECX,ECX
JNZ 0x0002ff80
MOV ESI,EDI
MOV EDI,EBP
MOV EBP,EDX
JMP 0x0002fdbb
MOV EDX,dword ptr [EDI + 0x10]
MOV EDI,dword ptr [EBP + 0x34]
MOV dword ptr [ESI + 0x4],0x3
CMP dword ptr [EDX + 0xac],EDI
JZ 0x0002fcfa
MOV ESI,dword ptr [EDX + 0x54]
ADD ECX,dword ptr [EDX + 0x4c]
ADC EBX,dword ptr [EDX + 0x50]
MOV dword ptr [EAX + 0x8],ECX
MOV dword ptr [EAX + 0x4],ESI
MOV dword ptr [EAX + 0xc],EBX
JMP 0x0002fb59
SUB ESP,0x4
LEA EAX,[EBX + 0xffeadf20]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016310
MOV dword ptr [ESP],EAX
CALL 0x00034d20
ADD ESP,0x10
JMP 0x0002fca4
SUB ESP,0x4
LEA EAX,[EBX + 0xffeadf20]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016310
MOV dword ptr [ESP],EAX
CALL 0x00034d20
ADD ESP,0x10
JMP 0x0002fd6e
SUB ESP,0x4
LEA EAX,[EBX + 0xffeadf20]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016310
MOV dword ptr [ESP],EAX
CALL 0x00034d20
ADD ESP,0x10
JMP 0x0002fe19
LEA EAX,[EBX + 0xfffdeb9b]
MOV dword ptr [EDI + 0x4],0x2
MOV dword ptr [EDI + 0x1c],EAX
MOV dword ptr [EDI + 0x18],0x1
JMP 0x0002fc25
MOV EAX,ESI
MOV ESI,EDI
MOV EDI,EBP
MOV EBP,EDX
MOV ECX,dword ptr [EAX + 0x4]
CMP dword ptr [ECX + 0x8],0x1
JNZ 0x0002fdbb
MOV EAX,dword ptr [EDI + 0x8]
LEA ECX,[EAX + 0xfffffee6]
CMP ECX,0x4
JA 0x00030160
MOV EAX,dword ptr [EBX + ECX*0x4 + 0xffeadfa8]
ADD EAX,EBX
JMP EAX
SUB ESP,0x4
LEA EAX,[EBX + 0xffeadf20]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016310
MOV dword ptr [ESP],EAX
CALL 0x00034d20
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
JMP 0x0002fbec
PUSH EAX
LEA EAX,[EBX + 0xffeadfbc]
PUSH EAX
LEA EAX,[EBX + 0xffeadec7]
PUSH 0xb6
PUSH EAX
CALL 0x00033e90
LEA EAX,[EBX + 0xffeadfbc]
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xffeadec7]
PUSH 0x86
PUSH EAX
CALL 0x00033e90
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0002fae0(int param_1)\n\n{\n  uint uVar1;\n  undefined1 *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined1 *puVar11;\n  undefined8 uVar12;\n  undefined1 local_3c;\n  undefined1 auStack_24 [16];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2fae9;\n  uVar1 = *(uint *)(param_1 + 4);\n  if (uVar1 != 8) {\n    if (uVar1 < 9) {\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }\n    else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }\n    return;\n  }\n  iVar9 = *(int *)(param_1 + 0x18);\n  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    FUN_00034d70("../../ld/ldwrite.c",0x33);\n  }\n  if (((*(uint *)(iVar9 + 0x14) & 0x100) == 0) && ((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402)) {\n    return;\n  }\n  iVar8 = bfd_new_link_order(DAT_001d1414,iVar9);\n  if (iVar8 == 0) {\n    uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n    FUN_00034d20(uVar10);\n  }\n  uVar10 = *(undefined4 *)(param_1 + 0x20);\n  uVar3 = *(undefined4 *)(param_1 + 0x1c);\n  *(undefined4 *)(iVar8 + 4) = 2;\n  *(undefined4 *)(iVar8 + 0xc) = uVar10;\n  *(undefined4 *)(iVar8 + 8) = uVar3;\n  uVar10 = xmalloc(8);\n  puVar2 = *(undefined1 **)(param_1 + 0x14);\n  *(undefined4 *)(iVar8 + 0x1c) = uVar10;\n  uVar10 = *(undefined4 *)(param_1 + 0x10);\n  uVar12 = CONCAT44(puVar2,uVar10);\n  if ((*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2) ||\n     (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1)) goto LAB_0002fdbb;\n  puVar11 = puVar2;\n  if (DAT_001d14b0 != 2) {\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if ((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))\n    goto LAB_0002fdbb;\n    iVar6 = *(int *)(DAT_001d06bc + 0x10);\n    iVar4 = DAT_001d06bc;\n    while (iVar6 == 0) {\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if (*(int *)(*(int *)(iVar6 + 4) + 8) != 1) goto LAB_0002fdbb;\n  }\n  uVar12 = CONCAT44(puVar2,uVar10);\n  switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    func_0x000169a0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016390(auStack_24);\n    break;\n  case 0x11c:\n    func_0x000167b0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016aa0(auStack_24);\n    break;\n  case 0x11d:\n    func_0x00016ac0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x000167d0(auStack_24);\n    break;\n  case 0x11e:\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);\n  }\nLAB_0002fdbb:\n  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);\n  }\n  switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 8;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    uVar10 = 8;\n    break;\n  case 0x11c:\n    uVar10 = 4;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 4;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11d:\n    uVar10 = 2;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 2;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11e:\n    local_3c = (undefined1)uVar12;\n    uVar10 = 1;\n    **(undefined1 **)(iVar8 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar8 + 0x10) = 1;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);\n  }\n  *(undefined4 *)(iVar8 + 0x18) = uVar10;\n  return;\n}\n\n" comment (function_definition "void FUN_0002fae0(int param_1)\n\n{\n  uint uVar1;\n  undefined1 *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined1 *puVar11;\n  undefined8 uVar12;\n  undefined1 local_3c;\n  undefined1 auStack_24 [16];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2fae9;\n  uVar1 = *(uint *)(param_1 + 4);\n  if (uVar1 != 8) {\n    if (uVar1 < 9) {\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }\n    else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }\n    return;\n  }\n  iVar9 = *(int *)(param_1 + 0x18);\n  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    FUN_00034d70("../../ld/ldwrite.c",0x33);\n  }\n  if (((*(uint *)(iVar9 + 0x14) & 0x100) == 0) && ((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402)) {\n    return;\n  }\n  iVar8 = bfd_new_link_order(DAT_001d1414,iVar9);\n  if (iVar8 == 0) {\n    uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n    FUN_00034d20(uVar10);\n  }\n  uVar10 = *(undefined4 *)(param_1 + 0x20);\n  uVar3 = *(undefined4 *)(param_1 + 0x1c);\n  *(undefined4 *)(iVar8 + 4) = 2;\n  *(undefined4 *)(iVar8 + 0xc) = uVar10;\n  *(undefined4 *)(iVar8 + 8) = uVar3;\n  uVar10 = xmalloc(8);\n  puVar2 = *(undefined1 **)(param_1 + 0x14);\n  *(undefined4 *)(iVar8 + 0x1c) = uVar10;\n  uVar10 = *(undefined4 *)(param_1 + 0x10);\n  uVar12 = CONCAT44(puVar2,uVar10);\n  if ((*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2) ||\n     (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1)) goto LAB_0002fdbb;\n  puVar11 = puVar2;\n  if (DAT_001d14b0 != 2) {\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if ((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))\n    goto LAB_0002fdbb;\n    iVar6 = *(int *)(DAT_001d06bc + 0x10);\n    iVar4 = DAT_001d06bc;\n    while (iVar6 == 0) {\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if (*(int *)(*(int *)(iVar6 + 4) + 8) != 1) goto LAB_0002fdbb;\n  }\n  uVar12 = CONCAT44(puVar2,uVar10);\n  switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    func_0x000169a0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016390(auStack_24);\n    break;\n  case 0x11c:\n    func_0x000167b0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016aa0(auStack_24);\n    break;\n  case 0x11d:\n    func_0x00016ac0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x000167d0(auStack_24);\n    break;\n  case 0x11e:\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);\n  }\nLAB_0002fdbb:\n  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);\n  }\n  switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 8;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    uVar10 = 8;\n    break;\n  case 0x11c:\n    uVar10 = 4;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 4;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11d:\n    uVar10 = 2;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 2;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11e:\n    local_3c = (undefined1)uVar12;\n    uVar10 = 1;\n    **(undefined1 **)(iVar8 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar8 + 0x10) = 1;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);\n  }\n  *(undefined4 *)(iVar8 + 0x18) = uVar10;\n  return;\n}" primitive_type (function_declarator "FUN_0002fae0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  undefined1 *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined1 *puVar11;\n  undefined8 uVar12;\n  undefined1 local_3c;\n  undefined1 auStack_24 [16];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2fae9;\n  uVar1 = *(uint *)(param_1 + 4);\n  if (uVar1 != 8) {\n    if (uVar1 < 9) {\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }\n    else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }\n    return;\n  }\n  iVar9 = *(int *)(param_1 + 0x18);\n  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    FUN_00034d70("../../ld/ldwrite.c",0x33);\n  }\n  if (((*(uint *)(iVar9 + 0x14) & 0x100) == 0) && ((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402)) {\n    return;\n  }\n  iVar8 = bfd_new_link_order(DAT_001d1414,iVar9);\n  if (iVar8 == 0) {\n    uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n    FUN_00034d20(uVar10);\n  }\n  uVar10 = *(undefined4 *)(param_1 + 0x20);\n  uVar3 = *(undefined4 *)(param_1 + 0x1c);\n  *(undefined4 *)(iVar8 + 4) = 2;\n  *(undefined4 *)(iVar8 + 0xc) = uVar10;\n  *(undefined4 *)(iVar8 + 8) = uVar3;\n  uVar10 = xmalloc(8);\n  puVar2 = *(undefined1 **)(param_1 + 0x14);\n  *(undefined4 *)(iVar8 + 0x1c) = uVar10;\n  uVar10 = *(undefined4 *)(param_1 + 0x10);\n  uVar12 = CONCAT44(puVar2,uVar10);\n  if ((*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2) ||\n     (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1)) goto LAB_0002fdbb;\n  puVar11 = puVar2;\n  if (DAT_001d14b0 != 2) {\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if ((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))\n    goto LAB_0002fdbb;\n    iVar6 = *(int *)(DAT_001d06bc + 0x10);\n    iVar4 = DAT_001d06bc;\n    while (iVar6 == 0) {\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if (*(int *)(*(int *)(iVar6 + 4) + 8) != 1) goto LAB_0002fdbb;\n  }\n  uVar12 = CONCAT44(puVar2,uVar10);\n  switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    func_0x000169a0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016390(auStack_24);\n    break;\n  case 0x11c:\n    func_0x000167b0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016aa0(auStack_24);\n    break;\n  case 0x11d:\n    func_0x00016ac0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x000167d0(auStack_24);\n    break;\n  case 0x11e:\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);\n  }\nLAB_0002fdbb:\n  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);\n  }\n  switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 8;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    uVar10 = 8;\n    break;\n  case 0x11c:\n    uVar10 = 4;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 4;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11d:\n    uVar10 = 2;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 2;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11e:\n    local_3c = (undefined1)uVar12;\n    uVar10 = 1;\n    **(undefined1 **)(iVar8 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar8 + 0x10) = 1;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);\n  }\n  *(undefined4 *)(iVar8 + 0x18) = uVar10;\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "undefined1 local_3c;" type_identifier identifier ;) (declaration "undefined1 auStack_24 [16];" type_identifier (array_declarator "auStack_24 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x2fae9;" (assignment_expression "uStack_14 = 0x2fae9" identifier = number_literal) ;) (expression_statement "uVar1 = *(uint *)(param_1 + 4);" (assignment_expression "uVar1 = *(uint *)(param_1 + 4)" identifier = (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar1 != 8) {\n    if (uVar1 < 9) {\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }\n    else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }\n    return;\n  }" if (parenthesized_expression "(uVar1 != 8)" ( (binary_expression "uVar1 != 8" identifier != number_literal) )) (compound_statement "{\n    if (uVar1 < 9) {\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }\n    else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }\n    return;\n  }" { (if_statement "if (uVar1 < 9) {\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }\n    else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }" if (parenthesized_expression "(uVar1 < 9)" ( (binary_expression "uVar1 < 9" identifier < number_literal) )) (compound_statement "{\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }" { (if_statement "if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }" if (parenthesized_expression "(((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0))" ( (binary_expression "((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)" (parenthesized_expression "((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200))" ( (binary_expression "(uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)" (parenthesized_expression "(uVar1 == 5)" ( (binary_expression "uVar1 == 5" identifier == number_literal) )) && (parenthesized_expression "(iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)" ( (comma_expression "iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200" (assignment_expression "iVar9 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) , (binary_expression "(*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200" (parenthesized_expression "(*(ushort *)(iVar9 + 0x18) & 0x380)" ( (binary_expression "*(ushort *)(iVar9 + 0x18) & 0x380" (pointer_expression "*(ushort *)(iVar9 + 0x18)" * (cast_expression "(ushort *)(iVar9 + 0x18)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) && (parenthesized_expression "((*(byte *)(iVar9 + 0x15) & 0x80) == 0)" ( (binary_expression "(*(byte *)(iVar9 + 0x15) & 0x80) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x15) & 0x80)" ( (binary_expression "*(byte *)(iVar9 + 0x15) & 0x80" (pointer_expression "*(byte *)(iVar9 + 0x15)" * (cast_expression "(byte *)(iVar9 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x15)" ( (binary_expression "iVar9 + 0x15" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }" { (expression_statement "iVar8 = *(int *)(iVar9 + 0x54);" (assignment_expression "iVar8 = *(int *)(iVar9 + 0x54)" identifier = (pointer_expression "*(int *)(iVar9 + 0x54)" * (cast_expression "(int *)(iVar9 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x54)" ( (binary_expression "iVar9 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }" if (parenthesized_expression "(*(int *)(iVar8 + 0xac) != DAT_001d1414)" ( (binary_expression "*(int *)(iVar8 + 0xac) != DAT_001d1414" (pointer_expression "*(int *)(iVar8 + 0xac)" * (cast_expression "(int *)(iVar8 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xac)" ( (binary_expression "iVar8 + 0xac" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }" { (expression_statement "FUN_00034d70("../../ld/ldwrite.c",0xf8);" (call_expression "FUN_00034d70("../../ld/ldwrite.c",0xf8)" identifier (argument_list "("../../ld/ldwrite.c",0xf8)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }" if (parenthesized_expression "(((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           )" ( (binary_expression "((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)" (parenthesized_expression "((*(uint *)(iVar8 + 0x14) & 0x100) != 0)" ( (binary_expression "(*(uint *)(iVar8 + 0x14) & 0x100) != 0" (parenthesized_expression "(*(uint *)(iVar8 + 0x14) & 0x100)" ( (binary_expression "*(uint *)(iVar8 + 0x14) & 0x100" (pointer_expression "*(uint *)(iVar8 + 0x14)" * (cast_expression "(uint *)(iVar8 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)" ( (binary_expression "(*(uint *)(iVar8 + 0x14) & 0x402) == 0x402" (parenthesized_expression "(*(uint *)(iVar8 + 0x14) & 0x402)" ( (binary_expression "*(uint *)(iVar8 + 0x14) & 0x402" (pointer_expression "*(uint *)(iVar8 + 0x14)" * (cast_expression "(uint *)(iVar8 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }" { (expression_statement "iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);" (assignment_expression "iVar6 = bfd_new_link_order(DAT_001d1414,iVar8)" identifier = (call_expression "bfd_new_link_order(DAT_001d1414,iVar8)" identifier (argument_list "(DAT_001d1414,iVar8)" ( identifier , identifier )))) ;) (if_statement "if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }" { (expression_statement "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);" (assignment_expression "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier (argument_list "(0,"%F%P: bfd_new_link_order failed\n",5)" ( number_literal , (string_literal ""%F%P: bfd_new_link_order failed\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar10);" (call_expression "FUN_00034d20(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) })) (if_statement "if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }" if (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200)" ( (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x2200)" ( (binary_expression "*(uint *)(iVar9 + 0x14) & 0x2200" (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }" { (expression_statement "*(undefined4 *)(iVar6 + 4) = 2;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = 2" (pointer_expression "*(undefined4 *)(iVar6 + 4)" * (cast_expression "(undefined4 *)(iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(iVar6 + 0x1c) = "";" (assignment_expression "*(char **)(iVar6 + 0x1c) = """ (pointer_expression "*(char **)(iVar6 + 0x1c)" * (cast_expression "(char **)(iVar6 + 0x1c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) )))) = (string_literal """" " ")) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x18) = 1;" (assignment_expression "*(undefined4 *)(iVar6 + 0x18) = 1" (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" * (cast_expression "(undefined4 *)(iVar6 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }" else (compound_statement "{\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }" { (expression_statement "*(undefined4 *)(iVar6 + 4) = 1;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = 1" (pointer_expression "*(undefined4 *)(iVar6 + 4)" * (cast_expression "(undefined4 *)(iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(iVar6 + 0x18) = iVar9;" (assignment_expression "*(int *)(iVar6 + 0x18) = iVar9" (pointer_expression "*(int *)(iVar6 + 0x18)" * (cast_expression "(int *)(iVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }" if (parenthesized_expression "(*(int *)(iVar9 + 0x54) != iVar8)" ( (binary_expression "*(int *)(iVar9 + 0x54) != iVar8" (pointer_expression "*(int *)(iVar9 + 0x54)" * (cast_expression "(int *)(iVar9 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x54)" ( (binary_expression "iVar9 + 0x54" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }" { (expression_statement "FUN_00034d70("../../ld/ldwrite.c",0x111);" (call_expression "FUN_00034d70("../../ld/ldwrite.c",0x111)" identifier (argument_list "("../../ld/ldwrite.c",0x111)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal ))) ;) })) }))) (expression_statement "uVar10 = *(undefined4 *)(iVar9 + 0x30);" (assignment_expression "uVar10 = *(undefined4 *)(iVar9 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 0x30)" * (cast_expression "(undefined4 *)(iVar9 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);" (assignment_expression "*(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c)" (pointer_expression "*(undefined4 *)(iVar6 + 0x10)" * (cast_expression "(undefined4 *)(iVar6 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar9 + 0x2c)" * (cast_expression "(undefined4 *)(iVar9 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x2c)" ( (binary_expression "iVar9 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)(iVar9 + 0x4c);" (assignment_expression "uVar3 = *(undefined4 *)(iVar9 + 0x4c)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 0x4c)" * (cast_expression "(undefined4 *)(iVar9 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4c)" ( (binary_expression "iVar9 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x14) = uVar10;" (assignment_expression "*(undefined4 *)(iVar6 + 0x14) = uVar10" (pointer_expression "*(undefined4 *)(iVar6 + 0x14)" * (cast_expression "(undefined4 *)(iVar6 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = *(undefined4 *)(iVar9 + 0x50);" (assignment_expression "uVar10 = *(undefined4 *)(iVar9 + 0x50)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 0x50)" * (cast_expression "(undefined4 *)(iVar9 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x50)" ( (binary_expression "iVar9 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 8) = uVar3;" (assignment_expression "*(undefined4 *)(iVar6 + 8) = uVar3" (pointer_expression "*(undefined4 *)(iVar6 + 8)" * (cast_expression "(undefined4 *)(iVar6 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar6 + 0xc) = uVar10;" (assignment_expression "*(undefined4 *)(iVar6 + 0xc) = uVar10" (pointer_expression "*(undefined4 *)(iVar6 + 0xc)" * (cast_expression "(undefined4 *)(iVar6 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))) = identifier) ;) })) })) }) (else_clause "else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }" else (if_statement "if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }" if (parenthesized_expression "(uVar1 == 9)" ( (binary_expression "uVar1 == 9" identifier == number_literal) )) (compound_statement "{\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }" { (expression_statement "iVar9 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x24)" identifier = (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }" if (parenthesized_expression "(*(int *)(iVar9 + 0xac) != DAT_001d1414)" ( (binary_expression "*(int *)(iVar9 + 0xac) != DAT_001d1414" (pointer_expression "*(int *)(iVar9 + 0xac)" * (cast_expression "(int *)(iVar9 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xac)" ( (binary_expression "iVar9 + 0xac" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }" { (expression_statement "FUN_00034d70("../../ld/ldwrite.c",0xc5);" (call_expression "FUN_00034d70("../../ld/ldwrite.c",0xc5)" identifier (argument_list "("../../ld/ldwrite.c",0xc5)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }" if (parenthesized_expression "(((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))" ( (binary_expression "((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402)" (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x100) != 0)" ( (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x100) != 0" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x100)" ( (binary_expression "*(uint *)(iVar9 + 0x14) & 0x100" (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402)" ( (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x402) == 0x402" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x402)" ( (binary_expression "*(uint *)(iVar9 + 0x14) & 0x402" (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }" { (expression_statement "iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);" (assignment_expression "iVar9 = bfd_new_link_order(DAT_001d1414,iVar9)" identifier = (call_expression "bfd_new_link_order(DAT_001d1414,iVar9)" identifier (argument_list "(DAT_001d1414,iVar9)" ( identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }" { (expression_statement "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);" (assignment_expression "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier (argument_list "(0,"%F%P: bfd_new_link_order failed\n",5)" ( number_literal , (string_literal ""%F%P: bfd_new_link_order failed\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar10);" (call_expression "FUN_00034d20(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) })) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 0x28);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 0x28)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x28)" * (cast_expression "(undefined4 *)(param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);" (assignment_expression "*(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c)" (pointer_expression "*(undefined4 *)(iVar9 + 0xc)" * (cast_expression "(undefined4 *)(iVar9 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x2c)" * (cast_expression "(undefined4 *)(param_1 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar9 + 8) = uVar10;" (assignment_expression "*(undefined4 *)(iVar9 + 8) = uVar10" (pointer_expression "*(undefined4 *)(iVar9 + 8)" * (cast_expression "(undefined4 *)(iVar9 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));" (assignment_expression "uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc))" identifier = (call_expression "bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc))" identifier (argument_list "(*(undefined4 *)(param_1 + 0xc))" ( (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar9 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar9 + 0x14)" * (cast_expression "(undefined4 *)(iVar9 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x10) = uVar10;" (assignment_expression "*(undefined4 *)(iVar9 + 0x10) = uVar10" (pointer_expression "*(undefined4 *)(iVar9 + 0x10)" * (cast_expression "(undefined4 *)(iVar9 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar7 = (undefined4 *)xmalloc(0x10);" (assignment_expression "puVar7 = (undefined4 *)xmalloc(0x10)" identifier = (cast_expression "(undefined4 *)xmalloc(0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x10)" identifier (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar1 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(iVar9 + 0x18) = puVar7;" (assignment_expression "*(undefined4 **)(iVar9 + 0x18) = puVar7" (pointer_expression "*(undefined4 **)(iVar9 + 0x18)" * (cast_expression "(undefined4 **)(iVar9 + 0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar8 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = uVar10;" (assignment_expression "*puVar7 = uVar10" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "iVar6 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "puVar7[2] = uVar1;" (assignment_expression "puVar7[2] = uVar1" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[3] = iVar8;" (assignment_expression "puVar7[3] = iVar8" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar4 = DAT_001d1414;" (assignment_expression "iVar4 = DAT_001d1414" identifier = identifier) ;) (if_statement "if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }" { (expression_statement "iVar6 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar9 + 4) = 3;" (assignment_expression "*(undefined4 *)(iVar9 + 4) = 3" (pointer_expression "*(undefined4 *)(iVar9 + 4)" * (cast_expression "(undefined4 *)(iVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }" if (parenthesized_expression "(*(int *)(iVar6 + 0xac) != iVar4)" ( (binary_expression "*(int *)(iVar6 + 0xac) != iVar4" (pointer_expression "*(int *)(iVar6 + 0xac)" * (cast_expression "(int *)(iVar6 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xac)" ( (binary_expression "iVar6 + 0xac" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }" { (expression_statement "uVar10 = *(undefined4 *)(iVar6 + 0x54);" (assignment_expression "uVar10 = *(undefined4 *)(iVar6 + 0x54)" identifier = (pointer_expression "*(undefined4 *)(iVar6 + 0x54)" * (cast_expression "(undefined4 *)(iVar6 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x54)" ( (binary_expression "iVar6 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(uint *)(iVar6 + 0x4c);" (assignment_expression "uVar5 = *(uint *)(iVar6 + 0x4c)" identifier = (pointer_expression "*(uint *)(iVar6 + 0x4c)" * (cast_expression "(uint *)(iVar6 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x4c)" ( (binary_expression "iVar6 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(iVar6 + 0x50);" (assignment_expression "iVar9 = *(int *)(iVar6 + 0x50)" identifier = (pointer_expression "*(int *)(iVar6 + 0x50)" * (cast_expression "(int *)(iVar6 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x50)" ( (binary_expression "iVar6 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);" (assignment_expression "puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c)" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = (binary_expression "uVar1 + *(uint *)(iVar6 + 0x4c)" identifier + (pointer_expression "*(uint *)(iVar6 + 0x4c)" * (cast_expression "(uint *)(iVar6 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x4c)" ( (binary_expression "iVar6 + 0x4c" identifier + number_literal) )))))) ;) (expression_statement "puVar7[1] = uVar10;" (assignment_expression "puVar7[1] = uVar10" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);" (assignment_expression "puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5)" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = (binary_expression "iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5)" (binary_expression "iVar8 + iVar9" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar1,uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar1,uVar5)" identifier (argument_list "(uVar1,uVar5)" ( identifier , identifier )))))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }" else (compound_statement "{\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }" { (expression_statement "*(undefined4 *)(iVar9 + 4) = 4;" (assignment_expression "*(undefined4 *)(iVar9 + 4) = 4" (pointer_expression "*(undefined4 *)(iVar9 + 4)" * (cast_expression "(undefined4 *)(iVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "puVar7[1] = iVar6;" (assignment_expression "puVar7[1] = iVar6" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) })) }) (else_clause "else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }" else (if_statement "if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }" if (parenthesized_expression "(uVar1 == 0xc)" ( (binary_expression "uVar1 == 0xc" identifier == number_literal) )) (compound_statement "{\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }" { (expression_statement "iVar9 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }" if (parenthesized_expression "(*(int *)(iVar9 + 0xac) != DAT_001d1414)" ( (binary_expression "*(int *)(iVar9 + 0xac) != DAT_001d1414" (pointer_expression "*(int *)(iVar9 + 0xac)" * (cast_expression "(int *)(iVar9 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xac)" ( (binary_expression "iVar9 + 0xac" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }" { (expression_statement "FUN_00034d70("../../ld/ldwrite.c",0x121);" (call_expression "FUN_00034d70("../../ld/ldwrite.c",0x121)" identifier (argument_list "("../../ld/ldwrite.c",0x121)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }" if (parenthesized_expression "(((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))" ( (binary_expression "((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402)" (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x100) != 0)" ( (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x100) != 0" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x100)" ( (binary_expression "*(uint *)(iVar9 + 0x14) & 0x100" (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402)" ( (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x402) == 0x402" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x402)" ( (binary_expression "*(uint *)(iVar9 + 0x14) & 0x402" (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }" { (expression_statement "iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);" (assignment_expression "iVar9 = bfd_new_link_order(DAT_001d1414,iVar9)" identifier = (call_expression "bfd_new_link_order(DAT_001d1414,iVar9)" identifier (argument_list "(DAT_001d1414,iVar9)" ( identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }" { (expression_statement "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);" (assignment_expression "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier (argument_list "(0,"%F%P: bfd_new_link_order failed\n",5)" ( number_literal , (string_literal ""%F%P: bfd_new_link_order failed\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar10);" (call_expression "FUN_00034d20(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) })) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 0x10);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)(param_1 + 0x14);" (assignment_expression "uVar3 = *(undefined4 *)(param_1 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar9 + 4) = 2;" (assignment_expression "*(undefined4 *)(iVar9 + 4) = 2" (pointer_expression "*(undefined4 *)(iVar9 + 4)" * (cast_expression "(undefined4 *)(iVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x10) = uVar10;" (assignment_expression "*(undefined4 *)(iVar9 + 0x10) = uVar10" (pointer_expression "*(undefined4 *)(iVar9 + 0x10)" * (cast_expression "(undefined4 *)(iVar9 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x14) = uVar3;" (assignment_expression "*(undefined4 *)(iVar9 + 0x14) = uVar3" (pointer_expression "*(undefined4 *)(iVar9 + 0x14)" * (cast_expression "(undefined4 *)(iVar9 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = *(undefined4 *)(param_1 + 0xc);" (assignment_expression "uVar3 = *(undefined4 *)(param_1 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar9 + 8) = uVar10;" (assignment_expression "*(undefined4 *)(iVar9 + 8) = uVar10" (pointer_expression "*(undefined4 *)(iVar9 + 8)" * (cast_expression "(undefined4 *)(iVar9 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar7 = *(undefined4 **)(param_1 + 0x1c);" (assignment_expression "puVar7 = *(undefined4 **)(param_1 + 0x1c)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x1c)" * (cast_expression "(undefined4 **)(param_1 + 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar9 + 0xc) = uVar3;" (assignment_expression "*(undefined4 *)(iVar9 + 0xc) = uVar3" (pointer_expression "*(undefined4 *)(iVar9 + 0xc)" * (cast_expression "(undefined4 *)(iVar9 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = *puVar7;" (assignment_expression "uVar10 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "*(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;" (assignment_expression "*(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1" (pointer_expression "*(undefined4 **)(iVar9 + 0x1c)" * (cast_expression "(undefined4 **)(iVar9 + 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) )))) = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x18) = uVar10;" (assignment_expression "*(undefined4 *)(iVar9 + 0x18) = uVar10" (pointer_expression "*(undefined4 *)(iVar9 + 0x18)" * (cast_expression "(undefined4 *)(iVar9 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) })))))) (return_statement "return;" return ;) })) (expression_statement "iVar9 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    FUN_00034d70("../../ld/ldwrite.c",0x33);\n  }" if (parenthesized_expression "(*(int *)(iVar9 + 0xac) != DAT_001d1414)" ( (binary_expression "*(int *)(iVar9 + 0xac) != DAT_001d1414" (pointer_expression "*(int *)(iVar9 + 0xac)" * (cast_expression "(int *)(iVar9 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xac)" ( (binary_expression "iVar9 + 0xac" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n    FUN_00034d70("../../ld/ldwrite.c",0x33);\n  }" { (expression_statement "FUN_00034d70("../../ld/ldwrite.c",0x33);" (call_expression "FUN_00034d70("../../ld/ldwrite.c",0x33)" identifier (argument_list "("../../ld/ldwrite.c",0x33)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (((*(uint *)(iVar9 + 0x14) & 0x100) == 0) && ((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402)) {\n    return;\n  }" if (parenthesized_expression "(((*(uint *)(iVar9 + 0x14) & 0x100) == 0) && ((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402))" ( (binary_expression "((*(uint *)(iVar9 + 0x14) & 0x100) == 0) && ((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402)" (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x100) == 0)" ( (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x100) == 0" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x100)" ( (binary_expression "*(uint *)(iVar9 + 0x14) & 0x100" (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402)" ( (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x402) != 0x402" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x402)" ( (binary_expression "*(uint *)(iVar9 + 0x14) & 0x402" (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar8 = bfd_new_link_order(DAT_001d1414,iVar9);" (assignment_expression "iVar8 = bfd_new_link_order(DAT_001d1414,iVar9)" identifier = (call_expression "bfd_new_link_order(DAT_001d1414,iVar9)" identifier (argument_list "(DAT_001d1414,iVar9)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == 0) {\n    uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n    FUN_00034d20(uVar10);\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n    FUN_00034d20(uVar10);\n  }" { (expression_statement "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);" (assignment_expression "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier (argument_list "(0,"%F%P: bfd_new_link_order failed\n",5)" ( number_literal , (string_literal ""%F%P: bfd_new_link_order failed\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar10);" (call_expression "FUN_00034d20(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) })) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 0x20);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 0x20)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)(param_1 + 0x1c);" (assignment_expression "uVar3 = *(undefined4 *)(param_1 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x1c)" * (cast_expression "(undefined4 *)(param_1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar8 + 4) = 2;" (assignment_expression "*(undefined4 *)(iVar8 + 4) = 2" (pointer_expression "*(undefined4 *)(iVar8 + 4)" * (cast_expression "(undefined4 *)(iVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar8 + 0xc) = uVar10;" (assignment_expression "*(undefined4 *)(iVar8 + 0xc) = uVar10" (pointer_expression "*(undefined4 *)(iVar8 + 0xc)" * (cast_expression "(undefined4 *)(iVar8 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar8 + 8) = uVar3;" (assignment_expression "*(undefined4 *)(iVar8 + 8) = uVar3" (pointer_expression "*(undefined4 *)(iVar8 + 8)" * (cast_expression "(undefined4 *)(iVar8 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = xmalloc(8);" (assignment_expression "uVar10 = xmalloc(8)" identifier = (call_expression "xmalloc(8)" identifier (argument_list "(8)" ( number_literal )))) ;) (expression_statement "puVar2 = *(undefined1 **)(param_1 + 0x14);" (assignment_expression "puVar2 = *(undefined1 **)(param_1 + 0x14)" identifier = (pointer_expression "*(undefined1 **)(param_1 + 0x14)" * (cast_expression "(undefined1 **)(param_1 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x1c) = uVar10;" (assignment_expression "*(undefined4 *)(iVar8 + 0x1c) = uVar10" (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 0x10);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = CONCAT44(puVar2,uVar10);" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" identifier = (call_expression "CONCAT44(puVar2,uVar10)" identifier (argument_list "(puVar2,uVar10)" ( identifier , identifier )))) ;) (if_statement "if ((*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2) ||\n     (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1)) goto LAB_0002fdbb;" if (parenthesized_expression "((*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2) ||\n     (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1))" ( (binary_expression "(*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2) ||\n     (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1)" (parenthesized_expression "(*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2)" ( (binary_expression "*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2" (pointer_expression "*(uint *)(*(int *)(DAT_001d1414 + 4) + 8)" * (cast_expression "(uint *)(*(int *)(DAT_001d1414 + 4) + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_001d1414 + 4) + 8)" ( (binary_expression "*(int *)(DAT_001d1414 + 4) + 8" (pointer_expression "*(int *)(DAT_001d1414 + 4)" * (cast_expression "(int *)(DAT_001d1414 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1414 + 4)" ( (binary_expression "DAT_001d1414 + 4" identifier + number_literal) )))) + number_literal) )))) < number_literal) )) || (parenthesized_expression "(uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1)" ( (comma_expression "uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" identifier = (call_expression "CONCAT44(puVar2,uVar10)" identifier (argument_list "(puVar2,uVar10)" ( identifier , identifier )))) , (binary_expression "DAT_001d14b0 == 1" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0002fdbb;" goto statement_identifier ;)) (expression_statement "puVar11 = puVar2;" (assignment_expression "puVar11 = puVar2" identifier = identifier) ;) (if_statement "if (DAT_001d14b0 != 2) {\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if ((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))\n    goto LAB_0002fdbb;\n    iVar6 = *(int *)(DAT_001d06bc + 0x10);\n    iVar4 = DAT_001d06bc;\n    while (iVar6 == 0) {\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if (*(int *)(*(int *)(iVar6 + 4) + 8) != 1) goto LAB_0002fdbb;\n  }" if (parenthesized_expression "(DAT_001d14b0 != 2)" ( (binary_expression "DAT_001d14b0 != 2" identifier != number_literal) )) (compound_statement "{\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if ((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))\n    goto LAB_0002fdbb;\n    iVar6 = *(int *)(DAT_001d06bc + 0x10);\n    iVar4 = DAT_001d06bc;\n    while (iVar6 == 0) {\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if (*(int *)(*(int *)(iVar6 + 4) + 8) != 1) goto LAB_0002fdbb;\n  }" { (expression_statement "uVar12 = CONCAT44(puVar2,uVar10);" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" identifier = (call_expression "CONCAT44(puVar2,uVar10)" identifier (argument_list "(puVar2,uVar10)" ( identifier , identifier )))) ;) (if_statement "if ((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))\n    goto LAB_0002fdbb;" if (parenthesized_expression "((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))" ( (binary_expression "(DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0)" (parenthesized_expression "(DAT_001d14b0 != 0)" ( (binary_expression "DAT_001d14b0 != 0" identifier != number_literal) )) || (parenthesized_expression "(uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0)" ( (comma_expression "uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" identifier = (call_expression "CONCAT44(puVar2,uVar10)" identifier (argument_list "(puVar2,uVar10)" ( identifier , identifier )))) , (binary_expression "DAT_001d06bc == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0002fdbb;" goto statement_identifier ;)) (expression_statement "iVar6 = *(int *)(DAT_001d06bc + 0x10);" (assignment_expression "iVar6 = *(int *)(DAT_001d06bc + 0x10)" identifier = (pointer_expression "*(int *)(DAT_001d06bc + 0x10)" * (cast_expression "(int *)(DAT_001d06bc + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d06bc + 0x10)" ( (binary_expression "DAT_001d06bc + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = DAT_001d06bc;" (assignment_expression "iVar4 = DAT_001d06bc" identifier = identifier) ;) (while_statement "while (iVar6 == 0) {\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }" while (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }" { (expression_statement "iVar4 = *(int *)(iVar4 + 0x18);" (assignment_expression "iVar4 = *(int *)(iVar4 + 0x18)" identifier = (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = CONCAT44(puVar2,uVar10);" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" identifier = (call_expression "CONCAT44(puVar2,uVar10)" identifier (argument_list "(puVar2,uVar10)" ( identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) goto LAB_0002fdbb;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002fdbb;" goto statement_identifier ;)) (expression_statement "puVar11 = &DAT_001d13e0;" (assignment_expression "puVar11 = &DAT_001d13e0" identifier = (pointer_expression "&DAT_001d13e0" & identifier)) ;) (expression_statement "iVar6 = *(int *)(iVar4 + 0x10);" (assignment_expression "iVar6 = *(int *)(iVar4 + 0x10)" identifier = (pointer_expression "*(int *)(iVar4 + 0x10)" * (cast_expression "(int *)(iVar4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) ))))) ;) })) (expression_statement "uVar12 = CONCAT44(puVar2,uVar10);" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" identifier = (call_expression "CONCAT44(puVar2,uVar10)" identifier (argument_list "(puVar2,uVar10)" ( identifier , identifier )))) ;) (if_statement "if (*(int *)(*(int *)(iVar6 + 4) + 8) != 1) goto LAB_0002fdbb;" if (parenthesized_expression "(*(int *)(*(int *)(iVar6 + 4) + 8) != 1)" ( (binary_expression "*(int *)(*(int *)(iVar6 + 4) + 8) != 1" (pointer_expression "*(int *)(*(int *)(iVar6 + 4) + 8)" * (cast_expression "(int *)(*(int *)(iVar6 + 4) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 4) + 8)" ( (binary_expression "*(int *)(iVar6 + 4) + 8" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0002fdbb;" goto statement_identifier ;)) })) (expression_statement "uVar12 = CONCAT44(puVar2,uVar10);" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" identifier = (call_expression "CONCAT44(puVar2,uVar10)" identifier (argument_list "(puVar2,uVar10)" ( identifier , identifier )))) ;) (switch_statement "switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    func_0x000169a0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016390(auStack_24);\n    break;\n  case 0x11c:\n    func_0x000167b0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016aa0(auStack_24);\n    break;\n  case 0x11d:\n    func_0x00016ac0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x000167d0(auStack_24);\n    break;\n  case 0x11e:\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);\n  }" switch (parenthesized_expression "(*(undefined4 *)(param_1 + 8))" ( (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )) (compound_statement "{\n  case 0x11a:\n  case 0x11b:\n    func_0x000169a0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016390(auStack_24);\n    break;\n  case 0x11c:\n    func_0x000167b0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016aa0(auStack_24);\n    break;\n  case 0x11d:\n    func_0x00016ac0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x000167d0(auStack_24);\n    break;\n  case 0x11e:\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);\n  }" { (case_statement "case 0x11a:" case number_literal :) (case_statement "case 0x11b:\n    func_0x000169a0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016390(auStack_24);\n    break;" case number_literal : (expression_statement "func_0x000169a0(uVar10,puVar2,auStack_24);" (call_expression "func_0x000169a0(uVar10,puVar2,auStack_24)" identifier (argument_list "(uVar10,puVar2,auStack_24)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar12 = func_0x00016390(auStack_24);" (assignment_expression "uVar12 = func_0x00016390(auStack_24)" identifier = (call_expression "func_0x00016390(auStack_24)" identifier (argument_list "(auStack_24)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x11c:\n    func_0x000167b0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016aa0(auStack_24);\n    break;" case number_literal : (expression_statement "func_0x000167b0(uVar10,puVar2,auStack_24);" (call_expression "func_0x000167b0(uVar10,puVar2,auStack_24)" identifier (argument_list "(uVar10,puVar2,auStack_24)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar12 = func_0x00016aa0(auStack_24);" (assignment_expression "uVar12 = func_0x00016aa0(auStack_24)" identifier = (call_expression "func_0x00016aa0(auStack_24)" identifier (argument_list "(auStack_24)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x11d:\n    func_0x00016ac0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x000167d0(auStack_24);\n    break;" case number_literal : (expression_statement "func_0x00016ac0(uVar10,puVar2,auStack_24);" (call_expression "func_0x00016ac0(uVar10,puVar2,auStack_24)" identifier (argument_list "(uVar10,puVar2,auStack_24)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar12 = func_0x000167d0(auStack_24);" (assignment_expression "uVar12 = func_0x000167d0(auStack_24)" identifier = (call_expression "func_0x000167d0(auStack_24)" identifier (argument_list "(auStack_24)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x11e:\n    break;" case number_literal : (break_statement "break;" break ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n    FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);" default : comment (expression_statement "FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);" (call_expression "FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11)" identifier (argument_list "("../../ld/ldwrite.c",0x86,"build_link_order",puVar11)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal , (string_literal ""build_link_order"" " string_content ") , identifier ))) ;)) })) (labeled_statement "LAB_0002fdbb:\n  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);\n  }" statement_identifier : (if_statement "if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);\n  }" if (parenthesized_expression "(*(int *)(iVar9 + 0xac) != DAT_001d1414)" ( (binary_expression "*(int *)(iVar9 + 0xac) != DAT_001d1414" (pointer_expression "*(int *)(iVar9 + 0xac)" * (cast_expression "(int *)(iVar9 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xac)" ( (binary_expression "iVar9 + 0xac" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n    iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);\n  }" { (expression_statement "iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);" (assignment_expression "iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b)" identifier = (call_expression "FUN_00034d70("../../ld/ldwrite.c",0x8b)" identifier (argument_list "("../../ld/ldwrite.c",0x8b)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal )))) ;) }))) (switch_statement "switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 8;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    uVar10 = 8;\n    break;\n  case 0x11c:\n    uVar10 = 4;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 4;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11d:\n    uVar10 = 2;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 2;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11e:\n    local_3c = (undefined1)uVar12;\n    uVar10 = 1;\n    **(undefined1 **)(iVar8 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar8 + 0x10) = 1;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);\n  }" switch (parenthesized_expression "(*(undefined4 *)(param_1 + 8))" ( (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )) (compound_statement "{\n  case 0x11a:\n  case 0x11b:\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 8;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    uVar10 = 8;\n    break;\n  case 0x11c:\n    uVar10 = 4;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 4;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11d:\n    uVar10 = 2;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 2;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11e:\n    local_3c = (undefined1)uVar12;\n    uVar10 = 1;\n    **(undefined1 **)(iVar8 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar8 + 0x10) = 1;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);\n  }" { (case_statement "case 0x11a:" case number_literal :) (case_statement "case 0x11b:\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 8;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    uVar10 = 8;\n    break;" case number_literal : (expression_statement "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));" (call_expression "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c))" (parenthesized_expression "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))" ( (pointer_expression "**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24)" * (pointer_expression "*(code **)(*(int *)(DAT_001d1414 + 4) + 0x24)" * (cast_expression "(code **)(*(int *)(DAT_001d1414 + 4) + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_001d1414 + 4) + 0x24)" ( (binary_expression "*(int *)(DAT_001d1414 + 4) + 0x24" (pointer_expression "*(int *)(DAT_001d1414 + 4)" * (cast_expression "(int *)(DAT_001d1414 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1414 + 4)" ( (binary_expression "DAT_001d1414 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar12,*(undefined4 *)(iVar8 + 0x1c))" ( identifier , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x10) = 8;" (assignment_expression "*(undefined4 *)(iVar8 + 0x10) = 8" (pointer_expression "*(undefined4 *)(iVar8 + 0x10)" * (cast_expression "(undefined4 *)(iVar8 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" * (cast_expression "(undefined4 *)(iVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar10 = 8;" (assignment_expression "uVar10 = 8" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11c:\n    uVar10 = 4;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 4;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;" case number_literal : (expression_statement "uVar10 = 4;" (assignment_expression "uVar10 = 4" identifier = number_literal) ;) (expression_statement "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));" (call_expression "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c))" (parenthesized_expression "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))" ( (pointer_expression "**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30)" * (pointer_expression "*(code **)(*(int *)(DAT_001d1414 + 4) + 0x30)" * (cast_expression "(code **)(*(int *)(DAT_001d1414 + 4) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_001d1414 + 4) + 0x30)" ( (binary_expression "*(int *)(DAT_001d1414 + 4) + 0x30" (pointer_expression "*(int *)(DAT_001d1414 + 4)" * (cast_expression "(int *)(DAT_001d1414 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1414 + 4)" ( (binary_expression "DAT_001d1414 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar12,*(undefined4 *)(iVar8 + 0x1c))" ( identifier , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x10) = 4;" (assignment_expression "*(undefined4 *)(iVar8 + 0x10) = 4" (pointer_expression "*(undefined4 *)(iVar8 + 0x10)" * (cast_expression "(undefined4 *)(iVar8 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" * (cast_expression "(undefined4 *)(iVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11d:\n    uVar10 = 2;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 2;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;" case number_literal : (expression_statement "uVar10 = 2;" (assignment_expression "uVar10 = 2" identifier = number_literal) ;) (expression_statement "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));" (call_expression "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c))" (parenthesized_expression "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))" ( (pointer_expression "**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c)" * (pointer_expression "*(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c)" * (cast_expression "(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_001d1414 + 4) + 0x3c)" ( (binary_expression "*(int *)(DAT_001d1414 + 4) + 0x3c" (pointer_expression "*(int *)(DAT_001d1414 + 4)" * (cast_expression "(int *)(DAT_001d1414 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1414 + 4)" ( (binary_expression "DAT_001d1414 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar12,*(undefined4 *)(iVar8 + 0x1c))" ( identifier , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x10) = 2;" (assignment_expression "*(undefined4 *)(iVar8 + 0x10) = 2" (pointer_expression "*(undefined4 *)(iVar8 + 0x10)" * (cast_expression "(undefined4 *)(iVar8 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" * (cast_expression "(undefined4 *)(iVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11e:\n    local_3c = (undefined1)uVar12;\n    uVar10 = 1;\n    **(undefined1 **)(iVar8 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar8 + 0x10) = 1;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;" case number_literal : (expression_statement "local_3c = (undefined1)uVar12;" (assignment_expression "local_3c = (undefined1)uVar12" identifier = (cast_expression "(undefined1)uVar12" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) (expression_statement "**(undefined1 **)(iVar8 + 0x1c) = local_3c;" (assignment_expression "**(undefined1 **)(iVar8 + 0x1c) = local_3c" (pointer_expression "**(undefined1 **)(iVar8 + 0x1c)" * (pointer_expression "*(undefined1 **)(iVar8 + 0x1c)" * (cast_expression "(undefined1 **)(iVar8 + 0x1c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar8 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar8 + 0x10)" * (cast_expression "(undefined4 *)(iVar8 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" * (cast_expression "(undefined4 *)(iVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n    FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);" default : comment (expression_statement "FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);" (call_expression "FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9)" identifier (argument_list "("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal , (string_literal ""build_link_order"" " string_content ") , identifier ))) ;)) })) (expression_statement "*(undefined4 *)(iVar8 + 0x18) = uVar10;" (assignment_expression "*(undefined4 *)(iVar8 + 0x18) = uVar10" (pointer_expression "*(undefined4 *)(iVar8 + 0x18)" * (cast_expression "(undefined4 *)(iVar8 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid build_link_order(lang_statement_union_type *statement)\n\n{\n  void **ppvVar1;\n  statement_enum sVar2;\n  asection *paVar3;\n  bfd_section *pbVar4;\n  lang_statement_union **pplVar5;\n  name_list *pnVar6;\n  wildcard_list *pwVar7;\n  bfd_boolean bVar8;\n  lang_statement_union *plVar9;\n  uint uVar10;\n  void *pvVar11;\n  uint uVar12;\n  bfd *pbVar13;\n  undefined4 uVar14;\n  undefined4 *puVar15;\n  int iVar16;\n  char *pcVar17;\n  bfd *pbVar18;\n  bfd_vma bVar19;\n  undefined1 local_3c;\n  bfd_byte buffer [8];\n  \n  sVar2 = (statement->header).type;\n  if (sVar2 != lang_data_statement_enum) {\n    if (sVar2 < lang_reloc_statement_enum) {\n      if (((sVar2 == lang_input_section_enum) &&\n          (paVar3 = (statement->input_section).section,\n          (*(ushort *)&paVar3->field_0x18 & 0x380) != 0x200)) && ((paVar3->flags & 0x8000) == 0)) {\n        pbVar4 = paVar3->output_section;\n        if (pbVar4->owner != link_info.output_bfd) {\n          info_assert("../../ld/ldwrite.c",0xf8);\n        }\n        if (((pbVar4->flags & 0x100) != 0) || ((pbVar4->flags & 0x402) == 0x402)) {\n          iVar16 = bfd_new_link_order(link_info.output_bfd,pbVar4);\n          if (iVar16 == 0) {\n            pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            einfo(pcVar17);\n          }\n          if ((paVar3->flags & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar16 + 4) = 2;\n            *(char **)(iVar16 + 0x1c) = "";\n            *(undefined4 *)(iVar16 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar16 + 4) = 1;\n            *(asection **)(iVar16 + 0x18) = paVar3;\n            if (paVar3->output_section != pbVar4) {\n              info_assert("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar14 = *(undefined4 *)((int)&paVar3->size + 4);\n          *(int *)(iVar16 + 0x10) = (int)paVar3->size;\n          bVar19 = paVar3->output_offset;\n          *(undefined4 *)(iVar16 + 0x14) = uVar14;\n          uVar14 = *(undefined4 *)((int)&paVar3->output_offset + 4);\n          *(int *)(iVar16 + 8) = (int)bVar19;\n          *(undefined4 *)(iVar16 + 0xc) = uVar14;\n        }\n      }\n    }\n    else if (sVar2 == lang_reloc_statement_enum) {\n      paVar3 = (statement->reloc_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0xc5);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).handler_data[0];\n        *(wildcard_list **)(iVar16 + 0xc) = (statement->wild_statement).handler_data[1];\n        *(wildcard_list **)(iVar16 + 8) = pwVar7;\n        uVar14 = bfd_get_reloc_size((statement->wild_statement).filenames_sorted);\n        *(undefined4 *)(iVar16 + 0x14) = 0;\n        *(undefined4 *)(iVar16 + 0x10) = uVar14;\n        puVar15 = (undefined4 *)xmalloc(0x10);\n        pcVar17 = (statement->wild_statement).filename;\n        pplVar5 = (statement->wild_statement).children.tail;\n        *(undefined4 **)(iVar16 + 0x18) = puVar15;\n        pnVar6 = (statement->wild_statement).exclude_name_list;\n        *puVar15 = pcVar17;\n        pbVar18 = (bfd *)(statement->wild_statement).keep_sections;\n        puVar15[2] = pplVar5;\n        puVar15[3] = pnVar6;\n        pbVar13 = link_info.output_bfd;\n        if (pbVar18 == (bfd *)0x0) {\n          pbVar18 = (statement->input_statement).the_bfd;\n          *(undefined4 *)(iVar16 + 4) = 3;\n          if ((bfd *)pbVar18->build_id != pbVar13) {\n            uVar10 = (pbVar18->section_htab).count;\n            ppvVar1 = &(pbVar18->section_htab).memory;\n            pvVar11 = *ppvVar1;\n            uVar12 = (pbVar18->section_htab).size;\n            puVar15[2] = (int)pplVar5 + (int)*ppvVar1;\n            puVar15[1] = uVar10;\n            puVar15[3] = (int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11) + uVar12;\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar16 + 4) = 4;\n        }\n        puVar15[1] = pbVar18;\n      }\n    }\n    else if (sVar2 == lang_padding_statement_enum) {\n      paVar3 = (statement->data_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0x121);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).section_list;\n        bVar8 = (statement->wild_statement).keep_sections;\n        *(undefined4 *)(iVar16 + 4) = 2;\n        *(wildcard_list **)(iVar16 + 0x10) = pwVar7;\n        pcVar17 = (statement->wild_statement).filename;\n        *(bfd_boolean *)(iVar16 + 0x14) = bVar8;\n        bVar8 = (statement->wild_statement).filenames_sorted;\n        *(char **)(iVar16 + 8) = pcVar17;\n        paVar3 = (statement->output_section_statement).bfd_section;\n        *(bfd_boolean *)(iVar16 + 0xc) = bVar8;\n        pcVar17 = paVar3->name;\n        *(uint **)(iVar16 + 0x1c) = &paVar3->id;\n        *(char **)(iVar16 + 0x18) = pcVar17;\n        return;\n      }\n    }\n    return;\n  }\n  paVar3 = (statement->data_statement).output_section;\n  if (paVar3->owner != link_info.output_bfd) {\n    info_assert("../../ld/ldwrite.c",0x33);\n  }\n  if (((paVar3->flags & 0x100) == 0) && ((paVar3->flags & 0x402) != 0x402)) {\n    return;\n  }\n  iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n  if (iVar16 == 0) {\n    pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n    einfo(pcVar17);\n  }\n  pnVar6 = (statement->wild_statement).exclude_name_list;\n  pplVar5 = (statement->wild_statement).children.tail;\n  *(undefined4 *)(iVar16 + 4) = 2;\n  *(name_list **)(iVar16 + 0xc) = pnVar6;\n  *(lang_statement_union ***)(iVar16 + 8) = pplVar5;\n  uVar14 = xmalloc(8);\n  bVar8 = (statement->wild_statement).keep_sections;\n  *(undefined4 *)(iVar16 + 0x1c) = uVar14;\n  pwVar7 = (statement->wild_statement).section_list;\n  bVar19 = CONCAT44(bVar8,pwVar7);\n  if (((link_info.output_bfd)->xvec->byteorder < BFD_ENDIAN_UNKNOWN) ||\n     (bVar19 = CONCAT44(bVar8,pwVar7), command_line.endian == ENDIAN_BIG)) goto _L11;\n  if (command_line.endian != ENDIAN_LITTLE) {\n    bVar19 = CONCAT44(bVar8,pwVar7);\n    if ((command_line.endian != ENDIAN_UNSET) ||\n       (bVar19 = CONCAT44(bVar8,pwVar7), file_chain.head == (lang_statement_union *)0x0)) goto _L11;\n    pbVar4 = (bfd_section *)((file_chain.head)->input_statement).the_bfd;\n    plVar9 = file_chain.head;\n    while (pbVar4 == (bfd_section *)0x0) {\n      plVar9 = (lang_statement_union *)(plVar9->data_statement).output_section;\n      bVar19 = CONCAT44(bVar8,pwVar7);\n      if (plVar9 == (lang_statement_union *)0x0) goto _L11;\n      pbVar4 = (bfd_section *)(plVar9->input_statement).the_bfd;\n    }\n    bVar19 = CONCAT44(bVar8,pwVar7);\n    if (((bfd_target *)pbVar4->id)->byteorder != BFD_ENDIAN_LITTLE) goto _L11;\n  }\n  bVar19 = CONCAT44(bVar8,pwVar7);\n  switch((statement->data_statement).type) {\n  case 0x11a:\n  case 0x11b:\n    bfd_putl64(pwVar7,bVar8,buffer);\n    bVar19 = bfd_getb64(buffer);\n    break;\n  case 0x11c:\n    bfd_putl32(pwVar7,bVar8,buffer);\n    bVar19 = bfd_getb32(buffer);\n    break;\n  case 0x11d:\n    bfd_putl16(pwVar7,bVar8,buffer);\n    bVar19 = bfd_getb16(buffer);\n    break;\n  case 0x11e:\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    ld_abort("../../ld/ldwrite.c",0x86,"build_link_order");\n  }\n_L11:\n  if (paVar3->owner != link_info.output_bfd) {\n    info_assert("../../ld/ldwrite.c",0x8b);\n  }\n  switch((statement->data_statement).type) {\n  case 0x11a:\n  case 0x11b:\n    (*(link_info.output_bfd)->xvec->bfd_putx64)(bVar19,*(void **)(iVar16 + 0x1c));\n    *(undefined4 *)(iVar16 + 0x10) = 8;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    uVar14 = 8;\n    break;\n  case 0x11c:\n    uVar14 = 4;\n    (*(link_info.output_bfd)->xvec->bfd_putx32)(bVar19,*(void **)(iVar16 + 0x1c));\n    *(undefined4 *)(iVar16 + 0x10) = 4;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    break;\n  case 0x11d:\n    uVar14 = 2;\n    (*(link_info.output_bfd)->xvec->bfd_putx16)(bVar19,*(void **)(iVar16 + 0x1c));\n    *(undefined4 *)(iVar16 + 0x10) = 2;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    break;\n  case 0x11e:\n    local_3c = (undefined1)bVar19;\n    uVar14 = 1;\n    **(undefined1 **)(iVar16 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar16 + 0x10) = 1;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    ld_abort("../../ld/ldwrite.c",0xb6,"build_link_order");\n  }\n  *(undefined4 *)(iVar16 + 0x18) = uVar14;\n  return;\n}\n\n" comment comment (function_definition "void build_link_order(lang_statement_union_type *statement)\n\n{\n  void **ppvVar1;\n  statement_enum sVar2;\n  asection *paVar3;\n  bfd_section *pbVar4;\n  lang_statement_union **pplVar5;\n  name_list *pnVar6;\n  wildcard_list *pwVar7;\n  bfd_boolean bVar8;\n  lang_statement_union *plVar9;\n  uint uVar10;\n  void *pvVar11;\n  uint uVar12;\n  bfd *pbVar13;\n  undefined4 uVar14;\n  undefined4 *puVar15;\n  int iVar16;\n  char *pcVar17;\n  bfd *pbVar18;\n  bfd_vma bVar19;\n  undefined1 local_3c;\n  bfd_byte buffer [8];\n  \n  sVar2 = (statement->header).type;\n  if (sVar2 != lang_data_statement_enum) {\n    if (sVar2 < lang_reloc_statement_enum) {\n      if (((sVar2 == lang_input_section_enum) &&\n          (paVar3 = (statement->input_section).section,\n          (*(ushort *)&paVar3->field_0x18 & 0x380) != 0x200)) && ((paVar3->flags & 0x8000) == 0)) {\n        pbVar4 = paVar3->output_section;\n        if (pbVar4->owner != link_info.output_bfd) {\n          info_assert("../../ld/ldwrite.c",0xf8);\n        }\n        if (((pbVar4->flags & 0x100) != 0) || ((pbVar4->flags & 0x402) == 0x402)) {\n          iVar16 = bfd_new_link_order(link_info.output_bfd,pbVar4);\n          if (iVar16 == 0) {\n            pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            einfo(pcVar17);\n          }\n          if ((paVar3->flags & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar16 + 4) = 2;\n            *(char **)(iVar16 + 0x1c) = "";\n            *(undefined4 *)(iVar16 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar16 + 4) = 1;\n            *(asection **)(iVar16 + 0x18) = paVar3;\n            if (paVar3->output_section != pbVar4) {\n              info_assert("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar14 = *(undefined4 *)((int)&paVar3->size + 4);\n          *(int *)(iVar16 + 0x10) = (int)paVar3->size;\n          bVar19 = paVar3->output_offset;\n          *(undefined4 *)(iVar16 + 0x14) = uVar14;\n          uVar14 = *(undefined4 *)((int)&paVar3->output_offset + 4);\n          *(int *)(iVar16 + 8) = (int)bVar19;\n          *(undefined4 *)(iVar16 + 0xc) = uVar14;\n        }\n      }\n    }\n    else if (sVar2 == lang_reloc_statement_enum) {\n      paVar3 = (statement->reloc_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0xc5);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).handler_data[0];\n        *(wildcard_list **)(iVar16 + 0xc) = (statement->wild_statement).handler_data[1];\n        *(wildcard_list **)(iVar16 + 8) = pwVar7;\n        uVar14 = bfd_get_reloc_size((statement->wild_statement).filenames_sorted);\n        *(undefined4 *)(iVar16 + 0x14) = 0;\n        *(undefined4 *)(iVar16 + 0x10) = uVar14;\n        puVar15 = (undefined4 *)xmalloc(0x10);\n        pcVar17 = (statement->wild_statement).filename;\n        pplVar5 = (statement->wild_statement).children.tail;\n        *(undefined4 **)(iVar16 + 0x18) = puVar15;\n        pnVar6 = (statement->wild_statement).exclude_name_list;\n        *puVar15 = pcVar17;\n        pbVar18 = (bfd *)(statement->wild_statement).keep_sections;\n        puVar15[2] = pplVar5;\n        puVar15[3] = pnVar6;\n        pbVar13 = link_info.output_bfd;\n        if (pbVar18 == (bfd *)0x0) {\n          pbVar18 = (statement->input_statement).the_bfd;\n          *(undefined4 *)(iVar16 + 4) = 3;\n          if ((bfd *)pbVar18->build_id != pbVar13) {\n            uVar10 = (pbVar18->section_htab).count;\n            ppvVar1 = &(pbVar18->section_htab).memory;\n            pvVar11 = *ppvVar1;\n            uVar12 = (pbVar18->section_htab).size;\n            puVar15[2] = (int)pplVar5 + (int)*ppvVar1;\n            puVar15[1] = uVar10;\n            puVar15[3] = (int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11) + uVar12;\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar16 + 4) = 4;\n        }\n        puVar15[1] = pbVar18;\n      }\n    }\n    else if (sVar2 == lang_padding_statement_enum) {\n      paVar3 = (statement->data_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0x121);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).section_list;\n        bVar8 = (statement->wild_statement).keep_sections;\n        *(undefined4 *)(iVar16 + 4) = 2;\n        *(wildcard_list **)(iVar16 + 0x10) = pwVar7;\n        pcVar17 = (statement->wild_statement).filename;\n        *(bfd_boolean *)(iVar16 + 0x14) = bVar8;\n        bVar8 = (statement->wild_statement).filenames_sorted;\n        *(char **)(iVar16 + 8) = pcVar17;\n        paVar3 = (statement->output_section_statement).bfd_section;\n        *(bfd_boolean *)(iVar16 + 0xc) = bVar8;\n        pcVar17 = paVar3->name;\n        *(uint **)(iVar16 + 0x1c) = &paVar3->id;\n        *(char **)(iVar16 + 0x18) = pcVar17;\n        return;\n      }\n    }\n    return;\n  }\n  paVar3 = (statement->data_statement).output_section;\n  if (paVar3->owner != link_info.output_bfd) {\n    info_assert("../../ld/ldwrite.c",0x33);\n  }\n  if (((paVar3->flags & 0x100) == 0) && ((paVar3->flags & 0x402) != 0x402)) {\n    return;\n  }\n  iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n  if (iVar16 == 0) {\n    pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n    einfo(pcVar17);\n  }\n  pnVar6 = (statement->wild_statement).exclude_name_list;\n  pplVar5 = (statement->wild_statement).children.tail;\n  *(undefined4 *)(iVar16 + 4) = 2;\n  *(name_list **)(iVar16 + 0xc) = pnVar6;\n  *(lang_statement_union ***)(iVar16 + 8) = pplVar5;\n  uVar14 = xmalloc(8);\n  bVar8 = (statement->wild_statement).keep_sections;\n  *(undefined4 *)(iVar16 + 0x1c) = uVar14;\n  pwVar7 = (statement->wild_statement).section_list;\n  bVar19 = CONCAT44(bVar8,pwVar7);\n  if (((link_info.output_bfd)->xvec->byteorder < BFD_ENDIAN_UNKNOWN) ||\n     (bVar19 = CONCAT44(bVar8,pwVar7), command_line.endian == ENDIAN_BIG)) goto _L11;\n  if (command_line.endian != ENDIAN_LITTLE) {\n    bVar19 = CONCAT44(bVar8,pwVar7);\n    if ((command_line.endian != ENDIAN_UNSET) ||\n       (bVar19 = CONCAT44(bVar8,pwVar7), file_chain.head == (lang_statement_union *)0x0)) goto _L11;\n    pbVar4 = (bfd_section *)((file_chain.head)->input_statement).the_bfd;\n    plVar9 = file_chain.head;\n    while (pbVar4 == (bfd_section *)0x0) {\n      plVar9 = (lang_statement_union *)(plVar9->data_statement).output_section;\n      bVar19 = CONCAT44(bVar8,pwVar7);\n      if (plVar9 == (lang_statement_union *)0x0) goto _L11;\n      pbVar4 = (bfd_section *)(plVar9->input_statement).the_bfd;\n    }\n    bVar19 = CONCAT44(bVar8,pwVar7);\n    if (((bfd_target *)pbVar4->id)->byteorder != BFD_ENDIAN_LITTLE) goto _L11;\n  }\n  bVar19 = CONCAT44(bVar8,pwVar7);\n  switch((statement->data_statement).type) {\n  case 0x11a:\n  case 0x11b:\n    bfd_putl64(pwVar7,bVar8,buffer);\n    bVar19 = bfd_getb64(buffer);\n    break;\n  case 0x11c:\n    bfd_putl32(pwVar7,bVar8,buffer);\n    bVar19 = bfd_getb32(buffer);\n    break;\n  case 0x11d:\n    bfd_putl16(pwVar7,bVar8,buffer);\n    bVar19 = bfd_getb16(buffer);\n    break;\n  case 0x11e:\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    ld_abort("../../ld/ldwrite.c",0x86,"build_link_order");\n  }\n_L11:\n  if (paVar3->owner != link_info.output_bfd) {\n    info_assert("../../ld/ldwrite.c",0x8b);\n  }\n  switch((statement->data_statement).type) {\n  case 0x11a:\n  case 0x11b:\n    (*(link_info.output_bfd)->xvec->bfd_putx64)(bVar19,*(void **)(iVar16 + 0x1c));\n    *(undefined4 *)(iVar16 + 0x10) = 8;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    uVar14 = 8;\n    break;\n  case 0x11c:\n    uVar14 = 4;\n    (*(link_info.output_bfd)->xvec->bfd_putx32)(bVar19,*(void **)(iVar16 + 0x1c));\n    *(undefined4 *)(iVar16 + 0x10) = 4;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    break;\n  case 0x11d:\n    uVar14 = 2;\n    (*(link_info.output_bfd)->xvec->bfd_putx16)(bVar19,*(void **)(iVar16 + 0x1c));\n    *(undefined4 *)(iVar16 + 0x10) = 2;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    break;\n  case 0x11e:\n    local_3c = (undefined1)bVar19;\n    uVar14 = 1;\n    **(undefined1 **)(iVar16 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar16 + 0x10) = 1;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    ld_abort("../../ld/ldwrite.c",0xb6,"build_link_order");\n  }\n  *(undefined4 *)(iVar16 + 0x18) = uVar14;\n  return;\n}" primitive_type (function_declarator "build_link_order(lang_statement_union_type *statement)" identifier (parameter_list "(lang_statement_union_type *statement)" ( (parameter_declaration "lang_statement_union_type *statement" type_identifier (pointer_declarator "*statement" * identifier)) ))) (compound_statement "{\n  void **ppvVar1;\n  statement_enum sVar2;\n  asection *paVar3;\n  bfd_section *pbVar4;\n  lang_statement_union **pplVar5;\n  name_list *pnVar6;\n  wildcard_list *pwVar7;\n  bfd_boolean bVar8;\n  lang_statement_union *plVar9;\n  uint uVar10;\n  void *pvVar11;\n  uint uVar12;\n  bfd *pbVar13;\n  undefined4 uVar14;\n  undefined4 *puVar15;\n  int iVar16;\n  char *pcVar17;\n  bfd *pbVar18;\n  bfd_vma bVar19;\n  undefined1 local_3c;\n  bfd_byte buffer [8];\n  \n  sVar2 = (statement->header).type;\n  if (sVar2 != lang_data_statement_enum) {\n    if (sVar2 < lang_reloc_statement_enum) {\n      if (((sVar2 == lang_input_section_enum) &&\n          (paVar3 = (statement->input_section).section,\n          (*(ushort *)&paVar3->field_0x18 & 0x380) != 0x200)) && ((paVar3->flags & 0x8000) == 0)) {\n        pbVar4 = paVar3->output_section;\n        if (pbVar4->owner != link_info.output_bfd) {\n          info_assert("../../ld/ldwrite.c",0xf8);\n        }\n        if (((pbVar4->flags & 0x100) != 0) || ((pbVar4->flags & 0x402) == 0x402)) {\n          iVar16 = bfd_new_link_order(link_info.output_bfd,pbVar4);\n          if (iVar16 == 0) {\n            pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            einfo(pcVar17);\n          }\n          if ((paVar3->flags & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar16 + 4) = 2;\n            *(char **)(iVar16 + 0x1c) = "";\n            *(undefined4 *)(iVar16 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar16 + 4) = 1;\n            *(asection **)(iVar16 + 0x18) = paVar3;\n            if (paVar3->output_section != pbVar4) {\n              info_assert("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar14 = *(undefined4 *)((int)&paVar3->size + 4);\n          *(int *)(iVar16 + 0x10) = (int)paVar3->size;\n          bVar19 = paVar3->output_offset;\n          *(undefined4 *)(iVar16 + 0x14) = uVar14;\n          uVar14 = *(undefined4 *)((int)&paVar3->output_offset + 4);\n          *(int *)(iVar16 + 8) = (int)bVar19;\n          *(undefined4 *)(iVar16 + 0xc) = uVar14;\n        }\n      }\n    }\n    else if (sVar2 == lang_reloc_statement_enum) {\n      paVar3 = (statement->reloc_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0xc5);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).handler_data[0];\n        *(wildcard_list **)(iVar16 + 0xc) = (statement->wild_statement).handler_data[1];\n        *(wildcard_list **)(iVar16 + 8) = pwVar7;\n        uVar14 = bfd_get_reloc_size((statement->wild_statement).filenames_sorted);\n        *(undefined4 *)(iVar16 + 0x14) = 0;\n        *(undefined4 *)(iVar16 + 0x10) = uVar14;\n        puVar15 = (undefined4 *)xmalloc(0x10);\n        pcVar17 = (statement->wild_statement).filename;\n        pplVar5 = (statement->wild_statement).children.tail;\n        *(undefined4 **)(iVar16 + 0x18) = puVar15;\n        pnVar6 = (statement->wild_statement).exclude_name_list;\n        *puVar15 = pcVar17;\n        pbVar18 = (bfd *)(statement->wild_statement).keep_sections;\n        puVar15[2] = pplVar5;\n        puVar15[3] = pnVar6;\n        pbVar13 = link_info.output_bfd;\n        if (pbVar18 == (bfd *)0x0) {\n          pbVar18 = (statement->input_statement).the_bfd;\n          *(undefined4 *)(iVar16 + 4) = 3;\n          if ((bfd *)pbVar18->build_id != pbVar13) {\n            uVar10 = (pbVar18->section_htab).count;\n            ppvVar1 = &(pbVar18->section_htab).memory;\n            pvVar11 = *ppvVar1;\n            uVar12 = (pbVar18->section_htab).size;\n            puVar15[2] = (int)pplVar5 + (int)*ppvVar1;\n            puVar15[1] = uVar10;\n            puVar15[3] = (int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11) + uVar12;\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar16 + 4) = 4;\n        }\n        puVar15[1] = pbVar18;\n      }\n    }\n    else if (sVar2 == lang_padding_statement_enum) {\n      paVar3 = (statement->data_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0x121);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).section_list;\n        bVar8 = (statement->wild_statement).keep_sections;\n        *(undefined4 *)(iVar16 + 4) = 2;\n        *(wildcard_list **)(iVar16 + 0x10) = pwVar7;\n        pcVar17 = (statement->wild_statement).filename;\n        *(bfd_boolean *)(iVar16 + 0x14) = bVar8;\n        bVar8 = (statement->wild_statement).filenames_sorted;\n        *(char **)(iVar16 + 8) = pcVar17;\n        paVar3 = (statement->output_section_statement).bfd_section;\n        *(bfd_boolean *)(iVar16 + 0xc) = bVar8;\n        pcVar17 = paVar3->name;\n        *(uint **)(iVar16 + 0x1c) = &paVar3->id;\n        *(char **)(iVar16 + 0x18) = pcVar17;\n        return;\n      }\n    }\n    return;\n  }\n  paVar3 = (statement->data_statement).output_section;\n  if (paVar3->owner != link_info.output_bfd) {\n    info_assert("../../ld/ldwrite.c",0x33);\n  }\n  if (((paVar3->flags & 0x100) == 0) && ((paVar3->flags & 0x402) != 0x402)) {\n    return;\n  }\n  iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n  if (iVar16 == 0) {\n    pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n    einfo(pcVar17);\n  }\n  pnVar6 = (statement->wild_statement).exclude_name_list;\n  pplVar5 = (statement->wild_statement).children.tail;\n  *(undefined4 *)(iVar16 + 4) = 2;\n  *(name_list **)(iVar16 + 0xc) = pnVar6;\n  *(lang_statement_union ***)(iVar16 + 8) = pplVar5;\n  uVar14 = xmalloc(8);\n  bVar8 = (statement->wild_statement).keep_sections;\n  *(undefined4 *)(iVar16 + 0x1c) = uVar14;\n  pwVar7 = (statement->wild_statement).section_list;\n  bVar19 = CONCAT44(bVar8,pwVar7);\n  if (((link_info.output_bfd)->xvec->byteorder < BFD_ENDIAN_UNKNOWN) ||\n     (bVar19 = CONCAT44(bVar8,pwVar7), command_line.endian == ENDIAN_BIG)) goto _L11;\n  if (command_line.endian != ENDIAN_LITTLE) {\n    bVar19 = CONCAT44(bVar8,pwVar7);\n    if ((command_line.endian != ENDIAN_UNSET) ||\n       (bVar19 = CONCAT44(bVar8,pwVar7), file_chain.head == (lang_statement_union *)0x0)) goto _L11;\n    pbVar4 = (bfd_section *)((file_chain.head)->input_statement).the_bfd;\n    plVar9 = file_chain.head;\n    while (pbVar4 == (bfd_section *)0x0) {\n      plVar9 = (lang_statement_union *)(plVar9->data_statement).output_section;\n      bVar19 = CONCAT44(bVar8,pwVar7);\n      if (plVar9 == (lang_statement_union *)0x0) goto _L11;\n      pbVar4 = (bfd_section *)(plVar9->input_statement).the_bfd;\n    }\n    bVar19 = CONCAT44(bVar8,pwVar7);\n    if (((bfd_target *)pbVar4->id)->byteorder != BFD_ENDIAN_LITTLE) goto _L11;\n  }\n  bVar19 = CONCAT44(bVar8,pwVar7);\n  switch((statement->data_statement).type) {\n  case 0x11a:\n  case 0x11b:\n    bfd_putl64(pwVar7,bVar8,buffer);\n    bVar19 = bfd_getb64(buffer);\n    break;\n  case 0x11c:\n    bfd_putl32(pwVar7,bVar8,buffer);\n    bVar19 = bfd_getb32(buffer);\n    break;\n  case 0x11d:\n    bfd_putl16(pwVar7,bVar8,buffer);\n    bVar19 = bfd_getb16(buffer);\n    break;\n  case 0x11e:\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    ld_abort("../../ld/ldwrite.c",0x86,"build_link_order");\n  }\n_L11:\n  if (paVar3->owner != link_info.output_bfd) {\n    info_assert("../../ld/ldwrite.c",0x8b);\n  }\n  switch((statement->data_statement).type) {\n  case 0x11a:\n  case 0x11b:\n    (*(link_info.output_bfd)->xvec->bfd_putx64)(bVar19,*(void **)(iVar16 + 0x1c));\n    *(undefined4 *)(iVar16 + 0x10) = 8;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    uVar14 = 8;\n    break;\n  case 0x11c:\n    uVar14 = 4;\n    (*(link_info.output_bfd)->xvec->bfd_putx32)(bVar19,*(void **)(iVar16 + 0x1c));\n    *(undefined4 *)(iVar16 + 0x10) = 4;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    break;\n  case 0x11d:\n    uVar14 = 2;\n    (*(link_info.output_bfd)->xvec->bfd_putx16)(bVar19,*(void **)(iVar16 + 0x1c));\n    *(undefined4 *)(iVar16 + 0x10) = 2;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    break;\n  case 0x11e:\n    local_3c = (undefined1)bVar19;\n    uVar14 = 1;\n    **(undefined1 **)(iVar16 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar16 + 0x10) = 1;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    ld_abort("../../ld/ldwrite.c",0xb6,"build_link_order");\n  }\n  *(undefined4 *)(iVar16 + 0x18) = uVar14;\n  return;\n}" { (declaration "void **ppvVar1;" primitive_type (pointer_declarator "**ppvVar1" * (pointer_declarator "*ppvVar1" * identifier)) ;) (declaration "statement_enum sVar2;" type_identifier identifier ;) (declaration "asection *paVar3;" type_identifier (pointer_declarator "*paVar3" * identifier) ;) (declaration "bfd_section *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "lang_statement_union **pplVar5;" type_identifier (pointer_declarator "**pplVar5" * (pointer_declarator "*pplVar5" * identifier)) ;) (declaration "name_list *pnVar6;" type_identifier (pointer_declarator "*pnVar6" * identifier) ;) (declaration "wildcard_list *pwVar7;" type_identifier (pointer_declarator "*pwVar7" * identifier) ;) (declaration "bfd_boolean bVar8;" type_identifier identifier ;) (declaration "lang_statement_union *plVar9;" type_identifier (pointer_declarator "*plVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "void *pvVar11;" primitive_type (pointer_declarator "*pvVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "bfd *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "bfd *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "bfd_vma bVar19;" type_identifier identifier ;) (declaration "undefined1 local_3c;" type_identifier identifier ;) (declaration "bfd_byte buffer [8];" type_identifier (array_declarator "buffer [8]" identifier [ number_literal ]) ;) (expression_statement "sVar2 = (statement->header).type;" (assignment_expression "sVar2 = (statement->header).type" identifier = (field_expression "(statement->header).type" (parenthesized_expression "(statement->header)" ( (field_expression "statement->header" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (sVar2 != lang_data_statement_enum) {\n    if (sVar2 < lang_reloc_statement_enum) {\n      if (((sVar2 == lang_input_section_enum) &&\n          (paVar3 = (statement->input_section).section,\n          (*(ushort *)&paVar3->field_0x18 & 0x380) != 0x200)) && ((paVar3->flags & 0x8000) == 0)) {\n        pbVar4 = paVar3->output_section;\n        if (pbVar4->owner != link_info.output_bfd) {\n          info_assert("../../ld/ldwrite.c",0xf8);\n        }\n        if (((pbVar4->flags & 0x100) != 0) || ((pbVar4->flags & 0x402) == 0x402)) {\n          iVar16 = bfd_new_link_order(link_info.output_bfd,pbVar4);\n          if (iVar16 == 0) {\n            pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            einfo(pcVar17);\n          }\n          if ((paVar3->flags & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar16 + 4) = 2;\n            *(char **)(iVar16 + 0x1c) = "";\n            *(undefined4 *)(iVar16 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar16 + 4) = 1;\n            *(asection **)(iVar16 + 0x18) = paVar3;\n            if (paVar3->output_section != pbVar4) {\n              info_assert("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar14 = *(undefined4 *)((int)&paVar3->size + 4);\n          *(int *)(iVar16 + 0x10) = (int)paVar3->size;\n          bVar19 = paVar3->output_offset;\n          *(undefined4 *)(iVar16 + 0x14) = uVar14;\n          uVar14 = *(undefined4 *)((int)&paVar3->output_offset + 4);\n          *(int *)(iVar16 + 8) = (int)bVar19;\n          *(undefined4 *)(iVar16 + 0xc) = uVar14;\n        }\n      }\n    }\n    else if (sVar2 == lang_reloc_statement_enum) {\n      paVar3 = (statement->reloc_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0xc5);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).handler_data[0];\n        *(wildcard_list **)(iVar16 + 0xc) = (statement->wild_statement).handler_data[1];\n        *(wildcard_list **)(iVar16 + 8) = pwVar7;\n        uVar14 = bfd_get_reloc_size((statement->wild_statement).filenames_sorted);\n        *(undefined4 *)(iVar16 + 0x14) = 0;\n        *(undefined4 *)(iVar16 + 0x10) = uVar14;\n        puVar15 = (undefined4 *)xmalloc(0x10);\n        pcVar17 = (statement->wild_statement).filename;\n        pplVar5 = (statement->wild_statement).children.tail;\n        *(undefined4 **)(iVar16 + 0x18) = puVar15;\n        pnVar6 = (statement->wild_statement).exclude_name_list;\n        *puVar15 = pcVar17;\n        pbVar18 = (bfd *)(statement->wild_statement).keep_sections;\n        puVar15[2] = pplVar5;\n        puVar15[3] = pnVar6;\n        pbVar13 = link_info.output_bfd;\n        if (pbVar18 == (bfd *)0x0) {\n          pbVar18 = (statement->input_statement).the_bfd;\n          *(undefined4 *)(iVar16 + 4) = 3;\n          if ((bfd *)pbVar18->build_id != pbVar13) {\n            uVar10 = (pbVar18->section_htab).count;\n            ppvVar1 = &(pbVar18->section_htab).memory;\n            pvVar11 = *ppvVar1;\n            uVar12 = (pbVar18->section_htab).size;\n            puVar15[2] = (int)pplVar5 + (int)*ppvVar1;\n            puVar15[1] = uVar10;\n            puVar15[3] = (int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11) + uVar12;\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar16 + 4) = 4;\n        }\n        puVar15[1] = pbVar18;\n      }\n    }\n    else if (sVar2 == lang_padding_statement_enum) {\n      paVar3 = (statement->data_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0x121);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).section_list;\n        bVar8 = (statement->wild_statement).keep_sections;\n        *(undefined4 *)(iVar16 + 4) = 2;\n        *(wildcard_list **)(iVar16 + 0x10) = pwVar7;\n        pcVar17 = (statement->wild_statement).filename;\n        *(bfd_boolean *)(iVar16 + 0x14) = bVar8;\n        bVar8 = (statement->wild_statement).filenames_sorted;\n        *(char **)(iVar16 + 8) = pcVar17;\n        paVar3 = (statement->output_section_statement).bfd_section;\n        *(bfd_boolean *)(iVar16 + 0xc) = bVar8;\n        pcVar17 = paVar3->name;\n        *(uint **)(iVar16 + 0x1c) = &paVar3->id;\n        *(char **)(iVar16 + 0x18) = pcVar17;\n        return;\n      }\n    }\n    return;\n  }" if (parenthesized_expression "(sVar2 != lang_data_statement_enum)" ( (binary_expression "sVar2 != lang_data_statement_enum" identifier != identifier) )) (compound_statement "{\n    if (sVar2 < lang_reloc_statement_enum) {\n      if (((sVar2 == lang_input_section_enum) &&\n          (paVar3 = (statement->input_section).section,\n          (*(ushort *)&paVar3->field_0x18 & 0x380) != 0x200)) && ((paVar3->flags & 0x8000) == 0)) {\n        pbVar4 = paVar3->output_section;\n        if (pbVar4->owner != link_info.output_bfd) {\n          info_assert("../../ld/ldwrite.c",0xf8);\n        }\n        if (((pbVar4->flags & 0x100) != 0) || ((pbVar4->flags & 0x402) == 0x402)) {\n          iVar16 = bfd_new_link_order(link_info.output_bfd,pbVar4);\n          if (iVar16 == 0) {\n            pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            einfo(pcVar17);\n          }\n          if ((paVar3->flags & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar16 + 4) = 2;\n            *(char **)(iVar16 + 0x1c) = "";\n            *(undefined4 *)(iVar16 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar16 + 4) = 1;\n            *(asection **)(iVar16 + 0x18) = paVar3;\n            if (paVar3->output_section != pbVar4) {\n              info_assert("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar14 = *(undefined4 *)((int)&paVar3->size + 4);\n          *(int *)(iVar16 + 0x10) = (int)paVar3->size;\n          bVar19 = paVar3->output_offset;\n          *(undefined4 *)(iVar16 + 0x14) = uVar14;\n          uVar14 = *(undefined4 *)((int)&paVar3->output_offset + 4);\n          *(int *)(iVar16 + 8) = (int)bVar19;\n          *(undefined4 *)(iVar16 + 0xc) = uVar14;\n        }\n      }\n    }\n    else if (sVar2 == lang_reloc_statement_enum) {\n      paVar3 = (statement->reloc_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0xc5);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).handler_data[0];\n        *(wildcard_list **)(iVar16 + 0xc) = (statement->wild_statement).handler_data[1];\n        *(wildcard_list **)(iVar16 + 8) = pwVar7;\n        uVar14 = bfd_get_reloc_size((statement->wild_statement).filenames_sorted);\n        *(undefined4 *)(iVar16 + 0x14) = 0;\n        *(undefined4 *)(iVar16 + 0x10) = uVar14;\n        puVar15 = (undefined4 *)xmalloc(0x10);\n        pcVar17 = (statement->wild_statement).filename;\n        pplVar5 = (statement->wild_statement).children.tail;\n        *(undefined4 **)(iVar16 + 0x18) = puVar15;\n        pnVar6 = (statement->wild_statement).exclude_name_list;\n        *puVar15 = pcVar17;\n        pbVar18 = (bfd *)(statement->wild_statement).keep_sections;\n        puVar15[2] = pplVar5;\n        puVar15[3] = pnVar6;\n        pbVar13 = link_info.output_bfd;\n        if (pbVar18 == (bfd *)0x0) {\n          pbVar18 = (statement->input_statement).the_bfd;\n          *(undefined4 *)(iVar16 + 4) = 3;\n          if ((bfd *)pbVar18->build_id != pbVar13) {\n            uVar10 = (pbVar18->section_htab).count;\n            ppvVar1 = &(pbVar18->section_htab).memory;\n            pvVar11 = *ppvVar1;\n            uVar12 = (pbVar18->section_htab).size;\n            puVar15[2] = (int)pplVar5 + (int)*ppvVar1;\n            puVar15[1] = uVar10;\n            puVar15[3] = (int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11) + uVar12;\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar16 + 4) = 4;\n        }\n        puVar15[1] = pbVar18;\n      }\n    }\n    else if (sVar2 == lang_padding_statement_enum) {\n      paVar3 = (statement->data_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0x121);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).section_list;\n        bVar8 = (statement->wild_statement).keep_sections;\n        *(undefined4 *)(iVar16 + 4) = 2;\n        *(wildcard_list **)(iVar16 + 0x10) = pwVar7;\n        pcVar17 = (statement->wild_statement).filename;\n        *(bfd_boolean *)(iVar16 + 0x14) = bVar8;\n        bVar8 = (statement->wild_statement).filenames_sorted;\n        *(char **)(iVar16 + 8) = pcVar17;\n        paVar3 = (statement->output_section_statement).bfd_section;\n        *(bfd_boolean *)(iVar16 + 0xc) = bVar8;\n        pcVar17 = paVar3->name;\n        *(uint **)(iVar16 + 0x1c) = &paVar3->id;\n        *(char **)(iVar16 + 0x18) = pcVar17;\n        return;\n      }\n    }\n    return;\n  }" { (if_statement "if (sVar2 < lang_reloc_statement_enum) {\n      if (((sVar2 == lang_input_section_enum) &&\n          (paVar3 = (statement->input_section).section,\n          (*(ushort *)&paVar3->field_0x18 & 0x380) != 0x200)) && ((paVar3->flags & 0x8000) == 0)) {\n        pbVar4 = paVar3->output_section;\n        if (pbVar4->owner != link_info.output_bfd) {\n          info_assert("../../ld/ldwrite.c",0xf8);\n        }\n        if (((pbVar4->flags & 0x100) != 0) || ((pbVar4->flags & 0x402) == 0x402)) {\n          iVar16 = bfd_new_link_order(link_info.output_bfd,pbVar4);\n          if (iVar16 == 0) {\n            pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            einfo(pcVar17);\n          }\n          if ((paVar3->flags & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar16 + 4) = 2;\n            *(char **)(iVar16 + 0x1c) = "";\n            *(undefined4 *)(iVar16 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar16 + 4) = 1;\n            *(asection **)(iVar16 + 0x18) = paVar3;\n            if (paVar3->output_section != pbVar4) {\n              info_assert("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar14 = *(undefined4 *)((int)&paVar3->size + 4);\n          *(int *)(iVar16 + 0x10) = (int)paVar3->size;\n          bVar19 = paVar3->output_offset;\n          *(undefined4 *)(iVar16 + 0x14) = uVar14;\n          uVar14 = *(undefined4 *)((int)&paVar3->output_offset + 4);\n          *(int *)(iVar16 + 8) = (int)bVar19;\n          *(undefined4 *)(iVar16 + 0xc) = uVar14;\n        }\n      }\n    }\n    else if (sVar2 == lang_reloc_statement_enum) {\n      paVar3 = (statement->reloc_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0xc5);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).handler_data[0];\n        *(wildcard_list **)(iVar16 + 0xc) = (statement->wild_statement).handler_data[1];\n        *(wildcard_list **)(iVar16 + 8) = pwVar7;\n        uVar14 = bfd_get_reloc_size((statement->wild_statement).filenames_sorted);\n        *(undefined4 *)(iVar16 + 0x14) = 0;\n        *(undefined4 *)(iVar16 + 0x10) = uVar14;\n        puVar15 = (undefined4 *)xmalloc(0x10);\n        pcVar17 = (statement->wild_statement).filename;\n        pplVar5 = (statement->wild_statement).children.tail;\n        *(undefined4 **)(iVar16 + 0x18) = puVar15;\n        pnVar6 = (statement->wild_statement).exclude_name_list;\n        *puVar15 = pcVar17;\n        pbVar18 = (bfd *)(statement->wild_statement).keep_sections;\n        puVar15[2] = pplVar5;\n        puVar15[3] = pnVar6;\n        pbVar13 = link_info.output_bfd;\n        if (pbVar18 == (bfd *)0x0) {\n          pbVar18 = (statement->input_statement).the_bfd;\n          *(undefined4 *)(iVar16 + 4) = 3;\n          if ((bfd *)pbVar18->build_id != pbVar13) {\n            uVar10 = (pbVar18->section_htab).count;\n            ppvVar1 = &(pbVar18->section_htab).memory;\n            pvVar11 = *ppvVar1;\n            uVar12 = (pbVar18->section_htab).size;\n            puVar15[2] = (int)pplVar5 + (int)*ppvVar1;\n            puVar15[1] = uVar10;\n            puVar15[3] = (int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11) + uVar12;\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar16 + 4) = 4;\n        }\n        puVar15[1] = pbVar18;\n      }\n    }\n    else if (sVar2 == lang_padding_statement_enum) {\n      paVar3 = (statement->data_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0x121);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).section_list;\n        bVar8 = (statement->wild_statement).keep_sections;\n        *(undefined4 *)(iVar16 + 4) = 2;\n        *(wildcard_list **)(iVar16 + 0x10) = pwVar7;\n        pcVar17 = (statement->wild_statement).filename;\n        *(bfd_boolean *)(iVar16 + 0x14) = bVar8;\n        bVar8 = (statement->wild_statement).filenames_sorted;\n        *(char **)(iVar16 + 8) = pcVar17;\n        paVar3 = (statement->output_section_statement).bfd_section;\n        *(bfd_boolean *)(iVar16 + 0xc) = bVar8;\n        pcVar17 = paVar3->name;\n        *(uint **)(iVar16 + 0x1c) = &paVar3->id;\n        *(char **)(iVar16 + 0x18) = pcVar17;\n        return;\n      }\n    }" if (parenthesized_expression "(sVar2 < lang_reloc_statement_enum)" ( (binary_expression "sVar2 < lang_reloc_statement_enum" identifier < identifier) )) (compound_statement "{\n      if (((sVar2 == lang_input_section_enum) &&\n          (paVar3 = (statement->input_section).section,\n          (*(ushort *)&paVar3->field_0x18 & 0x380) != 0x200)) && ((paVar3->flags & 0x8000) == 0)) {\n        pbVar4 = paVar3->output_section;\n        if (pbVar4->owner != link_info.output_bfd) {\n          info_assert("../../ld/ldwrite.c",0xf8);\n        }\n        if (((pbVar4->flags & 0x100) != 0) || ((pbVar4->flags & 0x402) == 0x402)) {\n          iVar16 = bfd_new_link_order(link_info.output_bfd,pbVar4);\n          if (iVar16 == 0) {\n            pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            einfo(pcVar17);\n          }\n          if ((paVar3->flags & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar16 + 4) = 2;\n            *(char **)(iVar16 + 0x1c) = "";\n            *(undefined4 *)(iVar16 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar16 + 4) = 1;\n            *(asection **)(iVar16 + 0x18) = paVar3;\n            if (paVar3->output_section != pbVar4) {\n              info_assert("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar14 = *(undefined4 *)((int)&paVar3->size + 4);\n          *(int *)(iVar16 + 0x10) = (int)paVar3->size;\n          bVar19 = paVar3->output_offset;\n          *(undefined4 *)(iVar16 + 0x14) = uVar14;\n          uVar14 = *(undefined4 *)((int)&paVar3->output_offset + 4);\n          *(int *)(iVar16 + 8) = (int)bVar19;\n          *(undefined4 *)(iVar16 + 0xc) = uVar14;\n        }\n      }\n    }" { (if_statement "if (((sVar2 == lang_input_section_enum) &&\n          (paVar3 = (statement->input_section).section,\n          (*(ushort *)&paVar3->field_0x18 & 0x380) != 0x200)) && ((paVar3->flags & 0x8000) == 0)) {\n        pbVar4 = paVar3->output_section;\n        if (pbVar4->owner != link_info.output_bfd) {\n          info_assert("../../ld/ldwrite.c",0xf8);\n        }\n        if (((pbVar4->flags & 0x100) != 0) || ((pbVar4->flags & 0x402) == 0x402)) {\n          iVar16 = bfd_new_link_order(link_info.output_bfd,pbVar4);\n          if (iVar16 == 0) {\n            pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            einfo(pcVar17);\n          }\n          if ((paVar3->flags & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar16 + 4) = 2;\n            *(char **)(iVar16 + 0x1c) = "";\n            *(undefined4 *)(iVar16 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar16 + 4) = 1;\n            *(asection **)(iVar16 + 0x18) = paVar3;\n            if (paVar3->output_section != pbVar4) {\n              info_assert("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar14 = *(undefined4 *)((int)&paVar3->size + 4);\n          *(int *)(iVar16 + 0x10) = (int)paVar3->size;\n          bVar19 = paVar3->output_offset;\n          *(undefined4 *)(iVar16 + 0x14) = uVar14;\n          uVar14 = *(undefined4 *)((int)&paVar3->output_offset + 4);\n          *(int *)(iVar16 + 8) = (int)bVar19;\n          *(undefined4 *)(iVar16 + 0xc) = uVar14;\n        }\n      }" if (parenthesized_expression "(((sVar2 == lang_input_section_enum) &&\n          (paVar3 = (statement->input_section).section,\n          (*(ushort *)&paVar3->field_0x18 & 0x380) != 0x200)) && ((paVar3->flags & 0x8000) == 0))" ( (binary_expression "((sVar2 == lang_input_section_enum) &&\n          (paVar3 = (statement->input_section).section,\n          (*(ushort *)&paVar3->field_0x18 & 0x380) != 0x200)) && ((paVar3->flags & 0x8000) == 0)" (parenthesized_expression "((sVar2 == lang_input_section_enum) &&\n          (paVar3 = (statement->input_section).section,\n          (*(ushort *)&paVar3->field_0x18 & 0x380) != 0x200))" ( (binary_expression "(sVar2 == lang_input_section_enum) &&\n          (paVar3 = (statement->input_section).section,\n          (*(ushort *)&paVar3->field_0x18 & 0x380) != 0x200)" (parenthesized_expression "(sVar2 == lang_input_section_enum)" ( (binary_expression "sVar2 == lang_input_section_enum" identifier == identifier) )) && (parenthesized_expression "(paVar3 = (statement->input_section).section,\n          (*(ushort *)&paVar3->field_0x18 & 0x380) != 0x200)" ( (comma_expression "paVar3 = (statement->input_section).section,\n          (*(ushort *)&paVar3->field_0x18 & 0x380) != 0x200" (assignment_expression "paVar3 = (statement->input_section).section" identifier = (field_expression "(statement->input_section).section" (parenthesized_expression "(statement->input_section)" ( (field_expression "statement->input_section" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "(*(ushort *)&paVar3->field_0x18 & 0x380) != 0x200" (parenthesized_expression "(*(ushort *)&paVar3->field_0x18 & 0x380)" ( (binary_expression "*(ushort *)&paVar3->field_0x18 & 0x380" (pointer_expression "*(ushort *)&paVar3->field_0x18" * (cast_expression "(ushort *)&paVar3->field_0x18" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar3->field_0x18" & (field_expression "paVar3->field_0x18" identifier -> field_identifier)))) & number_literal) )) != number_literal)) ))) )) && (parenthesized_expression "((paVar3->flags & 0x8000) == 0)" ( (binary_expression "(paVar3->flags & 0x8000) == 0" (parenthesized_expression "(paVar3->flags & 0x8000)" ( (binary_expression "paVar3->flags & 0x8000" (field_expression "paVar3->flags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        pbVar4 = paVar3->output_section;\n        if (pbVar4->owner != link_info.output_bfd) {\n          info_assert("../../ld/ldwrite.c",0xf8);\n        }\n        if (((pbVar4->flags & 0x100) != 0) || ((pbVar4->flags & 0x402) == 0x402)) {\n          iVar16 = bfd_new_link_order(link_info.output_bfd,pbVar4);\n          if (iVar16 == 0) {\n            pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            einfo(pcVar17);\n          }\n          if ((paVar3->flags & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar16 + 4) = 2;\n            *(char **)(iVar16 + 0x1c) = "";\n            *(undefined4 *)(iVar16 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar16 + 4) = 1;\n            *(asection **)(iVar16 + 0x18) = paVar3;\n            if (paVar3->output_section != pbVar4) {\n              info_assert("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar14 = *(undefined4 *)((int)&paVar3->size + 4);\n          *(int *)(iVar16 + 0x10) = (int)paVar3->size;\n          bVar19 = paVar3->output_offset;\n          *(undefined4 *)(iVar16 + 0x14) = uVar14;\n          uVar14 = *(undefined4 *)((int)&paVar3->output_offset + 4);\n          *(int *)(iVar16 + 8) = (int)bVar19;\n          *(undefined4 *)(iVar16 + 0xc) = uVar14;\n        }\n      }" { (expression_statement "pbVar4 = paVar3->output_section;" (assignment_expression "pbVar4 = paVar3->output_section" identifier = (field_expression "paVar3->output_section" identifier -> field_identifier)) ;) (if_statement "if (pbVar4->owner != link_info.output_bfd) {\n          info_assert("../../ld/ldwrite.c",0xf8);\n        }" if (parenthesized_expression "(pbVar4->owner != link_info.output_bfd)" ( (binary_expression "pbVar4->owner != link_info.output_bfd" (field_expression "pbVar4->owner" identifier -> field_identifier) != (field_expression "link_info.output_bfd" identifier . field_identifier)) )) (compound_statement "{\n          info_assert("../../ld/ldwrite.c",0xf8);\n        }" { (expression_statement "info_assert("../../ld/ldwrite.c",0xf8);" (call_expression "info_assert("../../ld/ldwrite.c",0xf8)" identifier (argument_list "("../../ld/ldwrite.c",0xf8)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (((pbVar4->flags & 0x100) != 0) || ((pbVar4->flags & 0x402) == 0x402)) {\n          iVar16 = bfd_new_link_order(link_info.output_bfd,pbVar4);\n          if (iVar16 == 0) {\n            pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            einfo(pcVar17);\n          }\n          if ((paVar3->flags & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar16 + 4) = 2;\n            *(char **)(iVar16 + 0x1c) = "";\n            *(undefined4 *)(iVar16 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar16 + 4) = 1;\n            *(asection **)(iVar16 + 0x18) = paVar3;\n            if (paVar3->output_section != pbVar4) {\n              info_assert("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar14 = *(undefined4 *)((int)&paVar3->size + 4);\n          *(int *)(iVar16 + 0x10) = (int)paVar3->size;\n          bVar19 = paVar3->output_offset;\n          *(undefined4 *)(iVar16 + 0x14) = uVar14;\n          uVar14 = *(undefined4 *)((int)&paVar3->output_offset + 4);\n          *(int *)(iVar16 + 8) = (int)bVar19;\n          *(undefined4 *)(iVar16 + 0xc) = uVar14;\n        }" if (parenthesized_expression "(((pbVar4->flags & 0x100) != 0) || ((pbVar4->flags & 0x402) == 0x402))" ( (binary_expression "((pbVar4->flags & 0x100) != 0) || ((pbVar4->flags & 0x402) == 0x402)" (parenthesized_expression "((pbVar4->flags & 0x100) != 0)" ( (binary_expression "(pbVar4->flags & 0x100) != 0" (parenthesized_expression "(pbVar4->flags & 0x100)" ( (binary_expression "pbVar4->flags & 0x100" (field_expression "pbVar4->flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "((pbVar4->flags & 0x402) == 0x402)" ( (binary_expression "(pbVar4->flags & 0x402) == 0x402" (parenthesized_expression "(pbVar4->flags & 0x402)" ( (binary_expression "pbVar4->flags & 0x402" (field_expression "pbVar4->flags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          iVar16 = bfd_new_link_order(link_info.output_bfd,pbVar4);\n          if (iVar16 == 0) {\n            pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            einfo(pcVar17);\n          }\n          if ((paVar3->flags & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar16 + 4) = 2;\n            *(char **)(iVar16 + 0x1c) = "";\n            *(undefined4 *)(iVar16 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar16 + 4) = 1;\n            *(asection **)(iVar16 + 0x18) = paVar3;\n            if (paVar3->output_section != pbVar4) {\n              info_assert("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar14 = *(undefined4 *)((int)&paVar3->size + 4);\n          *(int *)(iVar16 + 0x10) = (int)paVar3->size;\n          bVar19 = paVar3->output_offset;\n          *(undefined4 *)(iVar16 + 0x14) = uVar14;\n          uVar14 = *(undefined4 *)((int)&paVar3->output_offset + 4);\n          *(int *)(iVar16 + 8) = (int)bVar19;\n          *(undefined4 *)(iVar16 + 0xc) = uVar14;\n        }" { (expression_statement "iVar16 = bfd_new_link_order(link_info.output_bfd,pbVar4);" (assignment_expression "iVar16 = bfd_new_link_order(link_info.output_bfd,pbVar4)" identifier = (call_expression "bfd_new_link_order(link_info.output_bfd,pbVar4)" identifier (argument_list "(link_info.output_bfd,pbVar4)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , identifier )))) ;) (if_statement "if (iVar16 == 0) {\n            pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            einfo(pcVar17);\n          }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n            pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            einfo(pcVar17);\n          }" { (expression_statement "pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);" (assignment_expression "pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier (argument_list "(0,"%F%P: bfd_new_link_order failed\n",5)" ( number_literal , (string_literal ""%F%P: bfd_new_link_order failed\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar17);" (call_expression "einfo(pcVar17)" identifier (argument_list "(pcVar17)" ( identifier ))) ;) })) (if_statement "if ((paVar3->flags & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar16 + 4) = 2;\n            *(char **)(iVar16 + 0x1c) = "";\n            *(undefined4 *)(iVar16 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar16 + 4) = 1;\n            *(asection **)(iVar16 + 0x18) = paVar3;\n            if (paVar3->output_section != pbVar4) {\n              info_assert("../../ld/ldwrite.c",0x111);\n            }\n          }" if (parenthesized_expression "((paVar3->flags & 0x2200) == 0x200)" ( (binary_expression "(paVar3->flags & 0x2200) == 0x200" (parenthesized_expression "(paVar3->flags & 0x2200)" ( (binary_expression "paVar3->flags & 0x2200" (field_expression "paVar3->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            *(undefined4 *)(iVar16 + 4) = 2;\n            *(char **)(iVar16 + 0x1c) = "";\n            *(undefined4 *)(iVar16 + 0x18) = 1;\n          }" { (expression_statement "*(undefined4 *)(iVar16 + 4) = 2;" (assignment_expression "*(undefined4 *)(iVar16 + 4) = 2" (pointer_expression "*(undefined4 *)(iVar16 + 4)" * (cast_expression "(undefined4 *)(iVar16 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(iVar16 + 0x1c) = "";" (assignment_expression "*(char **)(iVar16 + 0x1c) = """ (pointer_expression "*(char **)(iVar16 + 0x1c)" * (cast_expression "(char **)(iVar16 + 0x1c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x1c)" ( (binary_expression "iVar16 + 0x1c" identifier + number_literal) )))) = (string_literal """" " ")) ;) (expression_statement "*(undefined4 *)(iVar16 + 0x18) = 1;" (assignment_expression "*(undefined4 *)(iVar16 + 0x18) = 1" (pointer_expression "*(undefined4 *)(iVar16 + 0x18)" * (cast_expression "(undefined4 *)(iVar16 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x18)" ( (binary_expression "iVar16 + 0x18" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            *(undefined4 *)(iVar16 + 4) = 1;\n            *(asection **)(iVar16 + 0x18) = paVar3;\n            if (paVar3->output_section != pbVar4) {\n              info_assert("../../ld/ldwrite.c",0x111);\n            }\n          }" else (compound_statement "{\n            *(undefined4 *)(iVar16 + 4) = 1;\n            *(asection **)(iVar16 + 0x18) = paVar3;\n            if (paVar3->output_section != pbVar4) {\n              info_assert("../../ld/ldwrite.c",0x111);\n            }\n          }" { (expression_statement "*(undefined4 *)(iVar16 + 4) = 1;" (assignment_expression "*(undefined4 *)(iVar16 + 4) = 1" (pointer_expression "*(undefined4 *)(iVar16 + 4)" * (cast_expression "(undefined4 *)(iVar16 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(asection **)(iVar16 + 0x18) = paVar3;" (assignment_expression "*(asection **)(iVar16 + 0x18) = paVar3" (pointer_expression "*(asection **)(iVar16 + 0x18)" * (cast_expression "(asection **)(iVar16 + 0x18)" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x18)" ( (binary_expression "iVar16 + 0x18" identifier + number_literal) )))) = identifier) ;) (if_statement "if (paVar3->output_section != pbVar4) {\n              info_assert("../../ld/ldwrite.c",0x111);\n            }" if (parenthesized_expression "(paVar3->output_section != pbVar4)" ( (binary_expression "paVar3->output_section != pbVar4" (field_expression "paVar3->output_section" identifier -> field_identifier) != identifier) )) (compound_statement "{\n              info_assert("../../ld/ldwrite.c",0x111);\n            }" { (expression_statement "info_assert("../../ld/ldwrite.c",0x111);" (call_expression "info_assert("../../ld/ldwrite.c",0x111)" identifier (argument_list "("../../ld/ldwrite.c",0x111)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal ))) ;) })) }))) (expression_statement "uVar14 = *(undefined4 *)((int)&paVar3->size + 4);" (assignment_expression "uVar14 = *(undefined4 *)((int)&paVar3->size + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&paVar3->size + 4)" * (cast_expression "(undefined4 *)((int)&paVar3->size + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar3->size + 4)" ( (binary_expression "(int)&paVar3->size + 4" (cast_expression "(int)&paVar3->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar3->size" & (field_expression "paVar3->size" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*(int *)(iVar16 + 0x10) = (int)paVar3->size;" (assignment_expression "*(int *)(iVar16 + 0x10) = (int)paVar3->size" (pointer_expression "*(int *)(iVar16 + 0x10)" * (cast_expression "(int *)(iVar16 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x10)" ( (binary_expression "iVar16 + 0x10" identifier + number_literal) )))) = (cast_expression "(int)paVar3->size" ( (type_descriptor "int" primitive_type) ) (field_expression "paVar3->size" identifier -> field_identifier))) ;) (expression_statement "bVar19 = paVar3->output_offset;" (assignment_expression "bVar19 = paVar3->output_offset" identifier = (field_expression "paVar3->output_offset" identifier -> field_identifier)) ;) (expression_statement "*(undefined4 *)(iVar16 + 0x14) = uVar14;" (assignment_expression "*(undefined4 *)(iVar16 + 0x14) = uVar14" (pointer_expression "*(undefined4 *)(iVar16 + 0x14)" * (cast_expression "(undefined4 *)(iVar16 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x14)" ( (binary_expression "iVar16 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar14 = *(undefined4 *)((int)&paVar3->output_offset + 4);" (assignment_expression "uVar14 = *(undefined4 *)((int)&paVar3->output_offset + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&paVar3->output_offset + 4)" * (cast_expression "(undefined4 *)((int)&paVar3->output_offset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar3->output_offset + 4)" ( (binary_expression "(int)&paVar3->output_offset + 4" (cast_expression "(int)&paVar3->output_offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar3->output_offset" & (field_expression "paVar3->output_offset" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*(int *)(iVar16 + 8) = (int)bVar19;" (assignment_expression "*(int *)(iVar16 + 8) = (int)bVar19" (pointer_expression "*(int *)(iVar16 + 8)" * (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) = (cast_expression "(int)bVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(undefined4 *)(iVar16 + 0xc) = uVar14;" (assignment_expression "*(undefined4 *)(iVar16 + 0xc) = uVar14" (pointer_expression "*(undefined4 *)(iVar16 + 0xc)" * (cast_expression "(undefined4 *)(iVar16 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) )))) = identifier) ;) })) })) }) (else_clause "else if (sVar2 == lang_reloc_statement_enum) {\n      paVar3 = (statement->reloc_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0xc5);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).handler_data[0];\n        *(wildcard_list **)(iVar16 + 0xc) = (statement->wild_statement).handler_data[1];\n        *(wildcard_list **)(iVar16 + 8) = pwVar7;\n        uVar14 = bfd_get_reloc_size((statement->wild_statement).filenames_sorted);\n        *(undefined4 *)(iVar16 + 0x14) = 0;\n        *(undefined4 *)(iVar16 + 0x10) = uVar14;\n        puVar15 = (undefined4 *)xmalloc(0x10);\n        pcVar17 = (statement->wild_statement).filename;\n        pplVar5 = (statement->wild_statement).children.tail;\n        *(undefined4 **)(iVar16 + 0x18) = puVar15;\n        pnVar6 = (statement->wild_statement).exclude_name_list;\n        *puVar15 = pcVar17;\n        pbVar18 = (bfd *)(statement->wild_statement).keep_sections;\n        puVar15[2] = pplVar5;\n        puVar15[3] = pnVar6;\n        pbVar13 = link_info.output_bfd;\n        if (pbVar18 == (bfd *)0x0) {\n          pbVar18 = (statement->input_statement).the_bfd;\n          *(undefined4 *)(iVar16 + 4) = 3;\n          if ((bfd *)pbVar18->build_id != pbVar13) {\n            uVar10 = (pbVar18->section_htab).count;\n            ppvVar1 = &(pbVar18->section_htab).memory;\n            pvVar11 = *ppvVar1;\n            uVar12 = (pbVar18->section_htab).size;\n            puVar15[2] = (int)pplVar5 + (int)*ppvVar1;\n            puVar15[1] = uVar10;\n            puVar15[3] = (int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11) + uVar12;\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar16 + 4) = 4;\n        }\n        puVar15[1] = pbVar18;\n      }\n    }\n    else if (sVar2 == lang_padding_statement_enum) {\n      paVar3 = (statement->data_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0x121);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).section_list;\n        bVar8 = (statement->wild_statement).keep_sections;\n        *(undefined4 *)(iVar16 + 4) = 2;\n        *(wildcard_list **)(iVar16 + 0x10) = pwVar7;\n        pcVar17 = (statement->wild_statement).filename;\n        *(bfd_boolean *)(iVar16 + 0x14) = bVar8;\n        bVar8 = (statement->wild_statement).filenames_sorted;\n        *(char **)(iVar16 + 8) = pcVar17;\n        paVar3 = (statement->output_section_statement).bfd_section;\n        *(bfd_boolean *)(iVar16 + 0xc) = bVar8;\n        pcVar17 = paVar3->name;\n        *(uint **)(iVar16 + 0x1c) = &paVar3->id;\n        *(char **)(iVar16 + 0x18) = pcVar17;\n        return;\n      }\n    }" else (if_statement "if (sVar2 == lang_reloc_statement_enum) {\n      paVar3 = (statement->reloc_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0xc5);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).handler_data[0];\n        *(wildcard_list **)(iVar16 + 0xc) = (statement->wild_statement).handler_data[1];\n        *(wildcard_list **)(iVar16 + 8) = pwVar7;\n        uVar14 = bfd_get_reloc_size((statement->wild_statement).filenames_sorted);\n        *(undefined4 *)(iVar16 + 0x14) = 0;\n        *(undefined4 *)(iVar16 + 0x10) = uVar14;\n        puVar15 = (undefined4 *)xmalloc(0x10);\n        pcVar17 = (statement->wild_statement).filename;\n        pplVar5 = (statement->wild_statement).children.tail;\n        *(undefined4 **)(iVar16 + 0x18) = puVar15;\n        pnVar6 = (statement->wild_statement).exclude_name_list;\n        *puVar15 = pcVar17;\n        pbVar18 = (bfd *)(statement->wild_statement).keep_sections;\n        puVar15[2] = pplVar5;\n        puVar15[3] = pnVar6;\n        pbVar13 = link_info.output_bfd;\n        if (pbVar18 == (bfd *)0x0) {\n          pbVar18 = (statement->input_statement).the_bfd;\n          *(undefined4 *)(iVar16 + 4) = 3;\n          if ((bfd *)pbVar18->build_id != pbVar13) {\n            uVar10 = (pbVar18->section_htab).count;\n            ppvVar1 = &(pbVar18->section_htab).memory;\n            pvVar11 = *ppvVar1;\n            uVar12 = (pbVar18->section_htab).size;\n            puVar15[2] = (int)pplVar5 + (int)*ppvVar1;\n            puVar15[1] = uVar10;\n            puVar15[3] = (int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11) + uVar12;\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar16 + 4) = 4;\n        }\n        puVar15[1] = pbVar18;\n      }\n    }\n    else if (sVar2 == lang_padding_statement_enum) {\n      paVar3 = (statement->data_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0x121);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).section_list;\n        bVar8 = (statement->wild_statement).keep_sections;\n        *(undefined4 *)(iVar16 + 4) = 2;\n        *(wildcard_list **)(iVar16 + 0x10) = pwVar7;\n        pcVar17 = (statement->wild_statement).filename;\n        *(bfd_boolean *)(iVar16 + 0x14) = bVar8;\n        bVar8 = (statement->wild_statement).filenames_sorted;\n        *(char **)(iVar16 + 8) = pcVar17;\n        paVar3 = (statement->output_section_statement).bfd_section;\n        *(bfd_boolean *)(iVar16 + 0xc) = bVar8;\n        pcVar17 = paVar3->name;\n        *(uint **)(iVar16 + 0x1c) = &paVar3->id;\n        *(char **)(iVar16 + 0x18) = pcVar17;\n        return;\n      }\n    }" if (parenthesized_expression "(sVar2 == lang_reloc_statement_enum)" ( (binary_expression "sVar2 == lang_reloc_statement_enum" identifier == identifier) )) (compound_statement "{\n      paVar3 = (statement->reloc_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0xc5);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).handler_data[0];\n        *(wildcard_list **)(iVar16 + 0xc) = (statement->wild_statement).handler_data[1];\n        *(wildcard_list **)(iVar16 + 8) = pwVar7;\n        uVar14 = bfd_get_reloc_size((statement->wild_statement).filenames_sorted);\n        *(undefined4 *)(iVar16 + 0x14) = 0;\n        *(undefined4 *)(iVar16 + 0x10) = uVar14;\n        puVar15 = (undefined4 *)xmalloc(0x10);\n        pcVar17 = (statement->wild_statement).filename;\n        pplVar5 = (statement->wild_statement).children.tail;\n        *(undefined4 **)(iVar16 + 0x18) = puVar15;\n        pnVar6 = (statement->wild_statement).exclude_name_list;\n        *puVar15 = pcVar17;\n        pbVar18 = (bfd *)(statement->wild_statement).keep_sections;\n        puVar15[2] = pplVar5;\n        puVar15[3] = pnVar6;\n        pbVar13 = link_info.output_bfd;\n        if (pbVar18 == (bfd *)0x0) {\n          pbVar18 = (statement->input_statement).the_bfd;\n          *(undefined4 *)(iVar16 + 4) = 3;\n          if ((bfd *)pbVar18->build_id != pbVar13) {\n            uVar10 = (pbVar18->section_htab).count;\n            ppvVar1 = &(pbVar18->section_htab).memory;\n            pvVar11 = *ppvVar1;\n            uVar12 = (pbVar18->section_htab).size;\n            puVar15[2] = (int)pplVar5 + (int)*ppvVar1;\n            puVar15[1] = uVar10;\n            puVar15[3] = (int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11) + uVar12;\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar16 + 4) = 4;\n        }\n        puVar15[1] = pbVar18;\n      }\n    }" { (expression_statement "paVar3 = (statement->reloc_statement).output_section;" (assignment_expression "paVar3 = (statement->reloc_statement).output_section" identifier = (field_expression "(statement->reloc_statement).output_section" (parenthesized_expression "(statement->reloc_statement)" ( (field_expression "statement->reloc_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0xc5);\n      }" if (parenthesized_expression "(paVar3->owner != link_info.output_bfd)" ( (binary_expression "paVar3->owner != link_info.output_bfd" (field_expression "paVar3->owner" identifier -> field_identifier) != (field_expression "link_info.output_bfd" identifier . field_identifier)) )) (compound_statement "{\n        info_assert("../../ld/ldwrite.c",0xc5);\n      }" { (expression_statement "info_assert("../../ld/ldwrite.c",0xc5);" (call_expression "info_assert("../../ld/ldwrite.c",0xc5)" identifier (argument_list "("../../ld/ldwrite.c",0xc5)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).handler_data[0];\n        *(wildcard_list **)(iVar16 + 0xc) = (statement->wild_statement).handler_data[1];\n        *(wildcard_list **)(iVar16 + 8) = pwVar7;\n        uVar14 = bfd_get_reloc_size((statement->wild_statement).filenames_sorted);\n        *(undefined4 *)(iVar16 + 0x14) = 0;\n        *(undefined4 *)(iVar16 + 0x10) = uVar14;\n        puVar15 = (undefined4 *)xmalloc(0x10);\n        pcVar17 = (statement->wild_statement).filename;\n        pplVar5 = (statement->wild_statement).children.tail;\n        *(undefined4 **)(iVar16 + 0x18) = puVar15;\n        pnVar6 = (statement->wild_statement).exclude_name_list;\n        *puVar15 = pcVar17;\n        pbVar18 = (bfd *)(statement->wild_statement).keep_sections;\n        puVar15[2] = pplVar5;\n        puVar15[3] = pnVar6;\n        pbVar13 = link_info.output_bfd;\n        if (pbVar18 == (bfd *)0x0) {\n          pbVar18 = (statement->input_statement).the_bfd;\n          *(undefined4 *)(iVar16 + 4) = 3;\n          if ((bfd *)pbVar18->build_id != pbVar13) {\n            uVar10 = (pbVar18->section_htab).count;\n            ppvVar1 = &(pbVar18->section_htab).memory;\n            pvVar11 = *ppvVar1;\n            uVar12 = (pbVar18->section_htab).size;\n            puVar15[2] = (int)pplVar5 + (int)*ppvVar1;\n            puVar15[1] = uVar10;\n            puVar15[3] = (int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11) + uVar12;\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar16 + 4) = 4;\n        }\n        puVar15[1] = pbVar18;\n      }" if (parenthesized_expression "(((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402))" ( (binary_expression "((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)" (parenthesized_expression "((paVar3->flags & 0x100) != 0)" ( (binary_expression "(paVar3->flags & 0x100) != 0" (parenthesized_expression "(paVar3->flags & 0x100)" ( (binary_expression "paVar3->flags & 0x100" (field_expression "paVar3->flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "((paVar3->flags & 0x402) == 0x402)" ( (binary_expression "(paVar3->flags & 0x402) == 0x402" (parenthesized_expression "(paVar3->flags & 0x402)" ( (binary_expression "paVar3->flags & 0x402" (field_expression "paVar3->flags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).handler_data[0];\n        *(wildcard_list **)(iVar16 + 0xc) = (statement->wild_statement).handler_data[1];\n        *(wildcard_list **)(iVar16 + 8) = pwVar7;\n        uVar14 = bfd_get_reloc_size((statement->wild_statement).filenames_sorted);\n        *(undefined4 *)(iVar16 + 0x14) = 0;\n        *(undefined4 *)(iVar16 + 0x10) = uVar14;\n        puVar15 = (undefined4 *)xmalloc(0x10);\n        pcVar17 = (statement->wild_statement).filename;\n        pplVar5 = (statement->wild_statement).children.tail;\n        *(undefined4 **)(iVar16 + 0x18) = puVar15;\n        pnVar6 = (statement->wild_statement).exclude_name_list;\n        *puVar15 = pcVar17;\n        pbVar18 = (bfd *)(statement->wild_statement).keep_sections;\n        puVar15[2] = pplVar5;\n        puVar15[3] = pnVar6;\n        pbVar13 = link_info.output_bfd;\n        if (pbVar18 == (bfd *)0x0) {\n          pbVar18 = (statement->input_statement).the_bfd;\n          *(undefined4 *)(iVar16 + 4) = 3;\n          if ((bfd *)pbVar18->build_id != pbVar13) {\n            uVar10 = (pbVar18->section_htab).count;\n            ppvVar1 = &(pbVar18->section_htab).memory;\n            pvVar11 = *ppvVar1;\n            uVar12 = (pbVar18->section_htab).size;\n            puVar15[2] = (int)pplVar5 + (int)*ppvVar1;\n            puVar15[1] = uVar10;\n            puVar15[3] = (int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11) + uVar12;\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar16 + 4) = 4;\n        }\n        puVar15[1] = pbVar18;\n      }" { (expression_statement "iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);" (assignment_expression "iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3)" identifier = (call_expression "bfd_new_link_order(link_info.output_bfd,paVar3)" identifier (argument_list "(link_info.output_bfd,paVar3)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , identifier )))) ;) (if_statement "if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }" { (expression_statement "pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);" (assignment_expression "pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier (argument_list "(0,"%F%P: bfd_new_link_order failed\n",5)" ( number_literal , (string_literal ""%F%P: bfd_new_link_order failed\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar17);" (call_expression "einfo(pcVar17)" identifier (argument_list "(pcVar17)" ( identifier ))) ;) })) (expression_statement "pwVar7 = (statement->wild_statement).handler_data[0];" (assignment_expression "pwVar7 = (statement->wild_statement).handler_data[0]" identifier = (subscript_expression "(statement->wild_statement).handler_data[0]" (field_expression "(statement->wild_statement).handler_data" (parenthesized_expression "(statement->wild_statement)" ( (field_expression "statement->wild_statement" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "*(wildcard_list **)(iVar16 + 0xc) = (statement->wild_statement).handler_data[1];" (assignment_expression "*(wildcard_list **)(iVar16 + 0xc) = (statement->wild_statement).handler_data[1]" (pointer_expression "*(wildcard_list **)(iVar16 + 0xc)" * (cast_expression "(wildcard_list **)(iVar16 + 0xc)" ( (type_descriptor "wildcard_list **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) )))) = (subscript_expression "(statement->wild_statement).handler_data[1]" (field_expression "(statement->wild_statement).handler_data" (parenthesized_expression "(statement->wild_statement)" ( (field_expression "statement->wild_statement" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "*(wildcard_list **)(iVar16 + 8) = pwVar7;" (assignment_expression "*(wildcard_list **)(iVar16 + 8) = pwVar7" (pointer_expression "*(wildcard_list **)(iVar16 + 8)" * (cast_expression "(wildcard_list **)(iVar16 + 8)" ( (type_descriptor "wildcard_list **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar14 = bfd_get_reloc_size((statement->wild_statement).filenames_sorted);" (assignment_expression "uVar14 = bfd_get_reloc_size((statement->wild_statement).filenames_sorted)" identifier = (call_expression "bfd_get_reloc_size((statement->wild_statement).filenames_sorted)" identifier (argument_list "((statement->wild_statement).filenames_sorted)" ( (field_expression "(statement->wild_statement).filenames_sorted" (parenthesized_expression "(statement->wild_statement)" ( (field_expression "statement->wild_statement" identifier -> field_identifier) )) . field_identifier) )))) ;) (expression_statement "*(undefined4 *)(iVar16 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar16 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar16 + 0x14)" * (cast_expression "(undefined4 *)(iVar16 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x14)" ( (binary_expression "iVar16 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar16 + 0x10) = uVar14;" (assignment_expression "*(undefined4 *)(iVar16 + 0x10) = uVar14" (pointer_expression "*(undefined4 *)(iVar16 + 0x10)" * (cast_expression "(undefined4 *)(iVar16 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x10)" ( (binary_expression "iVar16 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar15 = (undefined4 *)xmalloc(0x10);" (assignment_expression "puVar15 = (undefined4 *)xmalloc(0x10)" identifier = (cast_expression "(undefined4 *)xmalloc(0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x10)" identifier (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "pcVar17 = (statement->wild_statement).filename;" (assignment_expression "pcVar17 = (statement->wild_statement).filename" identifier = (field_expression "(statement->wild_statement).filename" (parenthesized_expression "(statement->wild_statement)" ( (field_expression "statement->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pplVar5 = (statement->wild_statement).children.tail;" (assignment_expression "pplVar5 = (statement->wild_statement).children.tail" identifier = (field_expression "(statement->wild_statement).children.tail" (field_expression "(statement->wild_statement).children" (parenthesized_expression "(statement->wild_statement)" ( (field_expression "statement->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 **)(iVar16 + 0x18) = puVar15;" (assignment_expression "*(undefined4 **)(iVar16 + 0x18) = puVar15" (pointer_expression "*(undefined4 **)(iVar16 + 0x18)" * (cast_expression "(undefined4 **)(iVar16 + 0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x18)" ( (binary_expression "iVar16 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "pnVar6 = (statement->wild_statement).exclude_name_list;" (assignment_expression "pnVar6 = (statement->wild_statement).exclude_name_list" identifier = (field_expression "(statement->wild_statement).exclude_name_list" (parenthesized_expression "(statement->wild_statement)" ( (field_expression "statement->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*puVar15 = pcVar17;" (assignment_expression "*puVar15 = pcVar17" (pointer_expression "*puVar15" * identifier) = identifier) ;) (expression_statement "pbVar18 = (bfd *)(statement->wild_statement).keep_sections;" (assignment_expression "pbVar18 = (bfd *)(statement->wild_statement).keep_sections" identifier = (cast_expression "(bfd *)(statement->wild_statement).keep_sections" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(statement->wild_statement).keep_sections" (parenthesized_expression "(statement->wild_statement)" ( (field_expression "statement->wild_statement" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "puVar15[2] = pplVar5;" (assignment_expression "puVar15[2] = pplVar5" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[3] = pnVar6;" (assignment_expression "puVar15[3] = pnVar6" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar13 = link_info.output_bfd;" (assignment_expression "pbVar13 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) (if_statement "if (pbVar18 == (bfd *)0x0) {\n          pbVar18 = (statement->input_statement).the_bfd;\n          *(undefined4 *)(iVar16 + 4) = 3;\n          if ((bfd *)pbVar18->build_id != pbVar13) {\n            uVar10 = (pbVar18->section_htab).count;\n            ppvVar1 = &(pbVar18->section_htab).memory;\n            pvVar11 = *ppvVar1;\n            uVar12 = (pbVar18->section_htab).size;\n            puVar15[2] = (int)pplVar5 + (int)*ppvVar1;\n            puVar15[1] = uVar10;\n            puVar15[3] = (int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11) + uVar12;\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar16 + 4) = 4;\n        }" if (parenthesized_expression "(pbVar18 == (bfd *)0x0)" ( (binary_expression "pbVar18 == (bfd *)0x0" identifier == (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pbVar18 = (statement->input_statement).the_bfd;\n          *(undefined4 *)(iVar16 + 4) = 3;\n          if ((bfd *)pbVar18->build_id != pbVar13) {\n            uVar10 = (pbVar18->section_htab).count;\n            ppvVar1 = &(pbVar18->section_htab).memory;\n            pvVar11 = *ppvVar1;\n            uVar12 = (pbVar18->section_htab).size;\n            puVar15[2] = (int)pplVar5 + (int)*ppvVar1;\n            puVar15[1] = uVar10;\n            puVar15[3] = (int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11) + uVar12;\n            return;\n          }\n        }" { (expression_statement "pbVar18 = (statement->input_statement).the_bfd;" (assignment_expression "pbVar18 = (statement->input_statement).the_bfd" identifier = (field_expression "(statement->input_statement).the_bfd" (parenthesized_expression "(statement->input_statement)" ( (field_expression "statement->input_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)(iVar16 + 4) = 3;" (assignment_expression "*(undefined4 *)(iVar16 + 4) = 3" (pointer_expression "*(undefined4 *)(iVar16 + 4)" * (cast_expression "(undefined4 *)(iVar16 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) )))) = number_literal) ;) (if_statement "if ((bfd *)pbVar18->build_id != pbVar13) {\n            uVar10 = (pbVar18->section_htab).count;\n            ppvVar1 = &(pbVar18->section_htab).memory;\n            pvVar11 = *ppvVar1;\n            uVar12 = (pbVar18->section_htab).size;\n            puVar15[2] = (int)pplVar5 + (int)*ppvVar1;\n            puVar15[1] = uVar10;\n            puVar15[3] = (int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11) + uVar12;\n            return;\n          }" if (parenthesized_expression "((bfd *)pbVar18->build_id != pbVar13)" ( (binary_expression "(bfd *)pbVar18->build_id != pbVar13" (cast_expression "(bfd *)pbVar18->build_id" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar18->build_id" identifier -> field_identifier)) != identifier) )) (compound_statement "{\n            uVar10 = (pbVar18->section_htab).count;\n            ppvVar1 = &(pbVar18->section_htab).memory;\n            pvVar11 = *ppvVar1;\n            uVar12 = (pbVar18->section_htab).size;\n            puVar15[2] = (int)pplVar5 + (int)*ppvVar1;\n            puVar15[1] = uVar10;\n            puVar15[3] = (int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11) + uVar12;\n            return;\n          }" { (expression_statement "uVar10 = (pbVar18->section_htab).count;" (assignment_expression "uVar10 = (pbVar18->section_htab).count" identifier = (field_expression "(pbVar18->section_htab).count" (parenthesized_expression "(pbVar18->section_htab)" ( (field_expression "pbVar18->section_htab" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "ppvVar1 = &(pbVar18->section_htab).memory;" (assignment_expression "ppvVar1 = &(pbVar18->section_htab).memory" identifier = (pointer_expression "&(pbVar18->section_htab).memory" & (field_expression "(pbVar18->section_htab).memory" (parenthesized_expression "(pbVar18->section_htab)" ( (field_expression "pbVar18->section_htab" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "pvVar11 = *ppvVar1;" (assignment_expression "pvVar11 = *ppvVar1" identifier = (pointer_expression "*ppvVar1" * identifier)) ;) (expression_statement "uVar12 = (pbVar18->section_htab).size;" (assignment_expression "uVar12 = (pbVar18->section_htab).size" identifier = (field_expression "(pbVar18->section_htab).size" (parenthesized_expression "(pbVar18->section_htab)" ( (field_expression "pbVar18->section_htab" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar15[2] = (int)pplVar5 + (int)*ppvVar1;" (assignment_expression "puVar15[2] = (int)pplVar5 + (int)*ppvVar1" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = (binary_expression "(int)pplVar5 + (int)*ppvVar1" (cast_expression "(int)pplVar5" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)*ppvVar1" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppvVar1" * identifier)))) ;) (expression_statement "puVar15[1] = uVar10;" (assignment_expression "puVar15[1] = uVar10" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[3] = (int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11) + uVar12;" (assignment_expression "puVar15[3] = (int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11) + uVar12" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = (binary_expression "(int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11) + uVar12" (binary_expression "(int)&pnVar6->name + CARRY4((uint)pplVar5,(uint)pvVar11)" (cast_expression "(int)&pnVar6->name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pnVar6->name" & (field_expression "pnVar6->name" identifier -> field_identifier))) + (call_expression "CARRY4((uint)pplVar5,(uint)pvVar11)" identifier (argument_list "((uint)pplVar5,(uint)pvVar11)" ( (cast_expression "(uint)pplVar5" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(uint)pvVar11" ( (type_descriptor "uint" type_identifier) ) identifier) )))) + identifier)) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n          *(undefined4 *)(iVar16 + 4) = 4;\n        }" else (compound_statement "{\n          *(undefined4 *)(iVar16 + 4) = 4;\n        }" { (expression_statement "*(undefined4 *)(iVar16 + 4) = 4;" (assignment_expression "*(undefined4 *)(iVar16 + 4) = 4" (pointer_expression "*(undefined4 *)(iVar16 + 4)" * (cast_expression "(undefined4 *)(iVar16 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "puVar15[1] = pbVar18;" (assignment_expression "puVar15[1] = pbVar18" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = identifier) ;) })) }) (else_clause "else if (sVar2 == lang_padding_statement_enum) {\n      paVar3 = (statement->data_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0x121);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).section_list;\n        bVar8 = (statement->wild_statement).keep_sections;\n        *(undefined4 *)(iVar16 + 4) = 2;\n        *(wildcard_list **)(iVar16 + 0x10) = pwVar7;\n        pcVar17 = (statement->wild_statement).filename;\n        *(bfd_boolean *)(iVar16 + 0x14) = bVar8;\n        bVar8 = (statement->wild_statement).filenames_sorted;\n        *(char **)(iVar16 + 8) = pcVar17;\n        paVar3 = (statement->output_section_statement).bfd_section;\n        *(bfd_boolean *)(iVar16 + 0xc) = bVar8;\n        pcVar17 = paVar3->name;\n        *(uint **)(iVar16 + 0x1c) = &paVar3->id;\n        *(char **)(iVar16 + 0x18) = pcVar17;\n        return;\n      }\n    }" else (if_statement "if (sVar2 == lang_padding_statement_enum) {\n      paVar3 = (statement->data_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0x121);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).section_list;\n        bVar8 = (statement->wild_statement).keep_sections;\n        *(undefined4 *)(iVar16 + 4) = 2;\n        *(wildcard_list **)(iVar16 + 0x10) = pwVar7;\n        pcVar17 = (statement->wild_statement).filename;\n        *(bfd_boolean *)(iVar16 + 0x14) = bVar8;\n        bVar8 = (statement->wild_statement).filenames_sorted;\n        *(char **)(iVar16 + 8) = pcVar17;\n        paVar3 = (statement->output_section_statement).bfd_section;\n        *(bfd_boolean *)(iVar16 + 0xc) = bVar8;\n        pcVar17 = paVar3->name;\n        *(uint **)(iVar16 + 0x1c) = &paVar3->id;\n        *(char **)(iVar16 + 0x18) = pcVar17;\n        return;\n      }\n    }" if (parenthesized_expression "(sVar2 == lang_padding_statement_enum)" ( (binary_expression "sVar2 == lang_padding_statement_enum" identifier == identifier) )) (compound_statement "{\n      paVar3 = (statement->data_statement).output_section;\n      if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0x121);\n      }\n      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).section_list;\n        bVar8 = (statement->wild_statement).keep_sections;\n        *(undefined4 *)(iVar16 + 4) = 2;\n        *(wildcard_list **)(iVar16 + 0x10) = pwVar7;\n        pcVar17 = (statement->wild_statement).filename;\n        *(bfd_boolean *)(iVar16 + 0x14) = bVar8;\n        bVar8 = (statement->wild_statement).filenames_sorted;\n        *(char **)(iVar16 + 8) = pcVar17;\n        paVar3 = (statement->output_section_statement).bfd_section;\n        *(bfd_boolean *)(iVar16 + 0xc) = bVar8;\n        pcVar17 = paVar3->name;\n        *(uint **)(iVar16 + 0x1c) = &paVar3->id;\n        *(char **)(iVar16 + 0x18) = pcVar17;\n        return;\n      }\n    }" { (expression_statement "paVar3 = (statement->data_statement).output_section;" (assignment_expression "paVar3 = (statement->data_statement).output_section" identifier = (field_expression "(statement->data_statement).output_section" (parenthesized_expression "(statement->data_statement)" ( (field_expression "statement->data_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (paVar3->owner != link_info.output_bfd) {\n        info_assert("../../ld/ldwrite.c",0x121);\n      }" if (parenthesized_expression "(paVar3->owner != link_info.output_bfd)" ( (binary_expression "paVar3->owner != link_info.output_bfd" (field_expression "paVar3->owner" identifier -> field_identifier) != (field_expression "link_info.output_bfd" identifier . field_identifier)) )) (compound_statement "{\n        info_assert("../../ld/ldwrite.c",0x121);\n      }" { (expression_statement "info_assert("../../ld/ldwrite.c",0x121);" (call_expression "info_assert("../../ld/ldwrite.c",0x121)" identifier (argument_list "("../../ld/ldwrite.c",0x121)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).section_list;\n        bVar8 = (statement->wild_statement).keep_sections;\n        *(undefined4 *)(iVar16 + 4) = 2;\n        *(wildcard_list **)(iVar16 + 0x10) = pwVar7;\n        pcVar17 = (statement->wild_statement).filename;\n        *(bfd_boolean *)(iVar16 + 0x14) = bVar8;\n        bVar8 = (statement->wild_statement).filenames_sorted;\n        *(char **)(iVar16 + 8) = pcVar17;\n        paVar3 = (statement->output_section_statement).bfd_section;\n        *(bfd_boolean *)(iVar16 + 0xc) = bVar8;\n        pcVar17 = paVar3->name;\n        *(uint **)(iVar16 + 0x1c) = &paVar3->id;\n        *(char **)(iVar16 + 0x18) = pcVar17;\n        return;\n      }" if (parenthesized_expression "(((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402))" ( (binary_expression "((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)" (parenthesized_expression "((paVar3->flags & 0x100) != 0)" ( (binary_expression "(paVar3->flags & 0x100) != 0" (parenthesized_expression "(paVar3->flags & 0x100)" ( (binary_expression "paVar3->flags & 0x100" (field_expression "paVar3->flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "((paVar3->flags & 0x402) == 0x402)" ( (binary_expression "(paVar3->flags & 0x402) == 0x402" (parenthesized_expression "(paVar3->flags & 0x402)" ( (binary_expression "paVar3->flags & 0x402" (field_expression "paVar3->flags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);\n        if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }\n        pwVar7 = (statement->wild_statement).section_list;\n        bVar8 = (statement->wild_statement).keep_sections;\n        *(undefined4 *)(iVar16 + 4) = 2;\n        *(wildcard_list **)(iVar16 + 0x10) = pwVar7;\n        pcVar17 = (statement->wild_statement).filename;\n        *(bfd_boolean *)(iVar16 + 0x14) = bVar8;\n        bVar8 = (statement->wild_statement).filenames_sorted;\n        *(char **)(iVar16 + 8) = pcVar17;\n        paVar3 = (statement->output_section_statement).bfd_section;\n        *(bfd_boolean *)(iVar16 + 0xc) = bVar8;\n        pcVar17 = paVar3->name;\n        *(uint **)(iVar16 + 0x1c) = &paVar3->id;\n        *(char **)(iVar16 + 0x18) = pcVar17;\n        return;\n      }" { (expression_statement "iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);" (assignment_expression "iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3)" identifier = (call_expression "bfd_new_link_order(link_info.output_bfd,paVar3)" identifier (argument_list "(link_info.output_bfd,paVar3)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , identifier )))) ;) (if_statement "if (iVar16 == 0) {\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          einfo(pcVar17);\n        }" { (expression_statement "pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);" (assignment_expression "pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier (argument_list "(0,"%F%P: bfd_new_link_order failed\n",5)" ( number_literal , (string_literal ""%F%P: bfd_new_link_order failed\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar17);" (call_expression "einfo(pcVar17)" identifier (argument_list "(pcVar17)" ( identifier ))) ;) })) (expression_statement "pwVar7 = (statement->wild_statement).section_list;" (assignment_expression "pwVar7 = (statement->wild_statement).section_list" identifier = (field_expression "(statement->wild_statement).section_list" (parenthesized_expression "(statement->wild_statement)" ( (field_expression "statement->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "bVar8 = (statement->wild_statement).keep_sections;" (assignment_expression "bVar8 = (statement->wild_statement).keep_sections" identifier = (field_expression "(statement->wild_statement).keep_sections" (parenthesized_expression "(statement->wild_statement)" ( (field_expression "statement->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)(iVar16 + 4) = 2;" (assignment_expression "*(undefined4 *)(iVar16 + 4) = 2" (pointer_expression "*(undefined4 *)(iVar16 + 4)" * (cast_expression "(undefined4 *)(iVar16 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(wildcard_list **)(iVar16 + 0x10) = pwVar7;" (assignment_expression "*(wildcard_list **)(iVar16 + 0x10) = pwVar7" (pointer_expression "*(wildcard_list **)(iVar16 + 0x10)" * (cast_expression "(wildcard_list **)(iVar16 + 0x10)" ( (type_descriptor "wildcard_list **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x10)" ( (binary_expression "iVar16 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar17 = (statement->wild_statement).filename;" (assignment_expression "pcVar17 = (statement->wild_statement).filename" identifier = (field_expression "(statement->wild_statement).filename" (parenthesized_expression "(statement->wild_statement)" ( (field_expression "statement->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(bfd_boolean *)(iVar16 + 0x14) = bVar8;" (assignment_expression "*(bfd_boolean *)(iVar16 + 0x14) = bVar8" (pointer_expression "*(bfd_boolean *)(iVar16 + 0x14)" * (cast_expression "(bfd_boolean *)(iVar16 + 0x14)" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x14)" ( (binary_expression "iVar16 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "bVar8 = (statement->wild_statement).filenames_sorted;" (assignment_expression "bVar8 = (statement->wild_statement).filenames_sorted" identifier = (field_expression "(statement->wild_statement).filenames_sorted" (parenthesized_expression "(statement->wild_statement)" ( (field_expression "statement->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(char **)(iVar16 + 8) = pcVar17;" (assignment_expression "*(char **)(iVar16 + 8) = pcVar17" (pointer_expression "*(char **)(iVar16 + 8)" * (cast_expression "(char **)(iVar16 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "paVar3 = (statement->output_section_statement).bfd_section;" (assignment_expression "paVar3 = (statement->output_section_statement).bfd_section" identifier = (field_expression "(statement->output_section_statement).bfd_section" (parenthesized_expression "(statement->output_section_statement)" ( (field_expression "statement->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(bfd_boolean *)(iVar16 + 0xc) = bVar8;" (assignment_expression "*(bfd_boolean *)(iVar16 + 0xc) = bVar8" (pointer_expression "*(bfd_boolean *)(iVar16 + 0xc)" * (cast_expression "(bfd_boolean *)(iVar16 + 0xc)" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar17 = paVar3->name;" (assignment_expression "pcVar17 = paVar3->name" identifier = (field_expression "paVar3->name" identifier -> field_identifier)) ;) (expression_statement "*(uint **)(iVar16 + 0x1c) = &paVar3->id;" (assignment_expression "*(uint **)(iVar16 + 0x1c) = &paVar3->id" (pointer_expression "*(uint **)(iVar16 + 0x1c)" * (cast_expression "(uint **)(iVar16 + 0x1c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x1c)" ( (binary_expression "iVar16 + 0x1c" identifier + number_literal) )))) = (pointer_expression "&paVar3->id" & (field_expression "paVar3->id" identifier -> field_identifier))) ;) (expression_statement "*(char **)(iVar16 + 0x18) = pcVar17;" (assignment_expression "*(char **)(iVar16 + 0x18) = pcVar17" (pointer_expression "*(char **)(iVar16 + 0x18)" * (cast_expression "(char **)(iVar16 + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x18)" ( (binary_expression "iVar16 + 0x18" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) })))))) (return_statement "return;" return ;) })) (expression_statement "paVar3 = (statement->data_statement).output_section;" (assignment_expression "paVar3 = (statement->data_statement).output_section" identifier = (field_expression "(statement->data_statement).output_section" (parenthesized_expression "(statement->data_statement)" ( (field_expression "statement->data_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (paVar3->owner != link_info.output_bfd) {\n    info_assert("../../ld/ldwrite.c",0x33);\n  }" if (parenthesized_expression "(paVar3->owner != link_info.output_bfd)" ( (binary_expression "paVar3->owner != link_info.output_bfd" (field_expression "paVar3->owner" identifier -> field_identifier) != (field_expression "link_info.output_bfd" identifier . field_identifier)) )) (compound_statement "{\n    info_assert("../../ld/ldwrite.c",0x33);\n  }" { (expression_statement "info_assert("../../ld/ldwrite.c",0x33);" (call_expression "info_assert("../../ld/ldwrite.c",0x33)" identifier (argument_list "("../../ld/ldwrite.c",0x33)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (((paVar3->flags & 0x100) == 0) && ((paVar3->flags & 0x402) != 0x402)) {\n    return;\n  }" if (parenthesized_expression "(((paVar3->flags & 0x100) == 0) && ((paVar3->flags & 0x402) != 0x402))" ( (binary_expression "((paVar3->flags & 0x100) == 0) && ((paVar3->flags & 0x402) != 0x402)" (parenthesized_expression "((paVar3->flags & 0x100) == 0)" ( (binary_expression "(paVar3->flags & 0x100) == 0" (parenthesized_expression "(paVar3->flags & 0x100)" ( (binary_expression "paVar3->flags & 0x100" (field_expression "paVar3->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "((paVar3->flags & 0x402) != 0x402)" ( (binary_expression "(paVar3->flags & 0x402) != 0x402" (parenthesized_expression "(paVar3->flags & 0x402)" ( (binary_expression "paVar3->flags & 0x402" (field_expression "paVar3->flags" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3);" (assignment_expression "iVar16 = bfd_new_link_order(link_info.output_bfd,paVar3)" identifier = (call_expression "bfd_new_link_order(link_info.output_bfd,paVar3)" identifier (argument_list "(link_info.output_bfd,paVar3)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , identifier )))) ;) (if_statement "if (iVar16 == 0) {\n    pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n    einfo(pcVar17);\n  }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n    einfo(pcVar17);\n  }" { (expression_statement "pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);" (assignment_expression "pcVar17 = (char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier (argument_list "(0,"%F%P: bfd_new_link_order failed\n",5)" ( number_literal , (string_literal ""%F%P: bfd_new_link_order failed\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar17);" (call_expression "einfo(pcVar17)" identifier (argument_list "(pcVar17)" ( identifier ))) ;) })) (expression_statement "pnVar6 = (statement->wild_statement).exclude_name_list;" (assignment_expression "pnVar6 = (statement->wild_statement).exclude_name_list" identifier = (field_expression "(statement->wild_statement).exclude_name_list" (parenthesized_expression "(statement->wild_statement)" ( (field_expression "statement->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pplVar5 = (statement->wild_statement).children.tail;" (assignment_expression "pplVar5 = (statement->wild_statement).children.tail" identifier = (field_expression "(statement->wild_statement).children.tail" (field_expression "(statement->wild_statement).children" (parenthesized_expression "(statement->wild_statement)" ( (field_expression "statement->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)(iVar16 + 4) = 2;" (assignment_expression "*(undefined4 *)(iVar16 + 4) = 2" (pointer_expression "*(undefined4 *)(iVar16 + 4)" * (cast_expression "(undefined4 *)(iVar16 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 4)" ( (binary_expression "iVar16 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(name_list **)(iVar16 + 0xc) = pnVar6;" (assignment_expression "*(name_list **)(iVar16 + 0xc) = pnVar6" (pointer_expression "*(name_list **)(iVar16 + 0xc)" * (cast_expression "(name_list **)(iVar16 + 0xc)" ( (type_descriptor "name_list **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0xc)" ( (binary_expression "iVar16 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(lang_statement_union ***)(iVar16 + 8) = pplVar5;" (assignment_expression "*(lang_statement_union ***)(iVar16 + 8) = pplVar5" (pointer_expression "*(lang_statement_union ***)(iVar16 + 8)" * (cast_expression "(lang_statement_union ***)(iVar16 + 8)" ( (type_descriptor "lang_statement_union ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar14 = xmalloc(8);" (assignment_expression "uVar14 = xmalloc(8)" identifier = (call_expression "xmalloc(8)" identifier (argument_list "(8)" ( number_literal )))) ;) (expression_statement "bVar8 = (statement->wild_statement).keep_sections;" (assignment_expression "bVar8 = (statement->wild_statement).keep_sections" identifier = (field_expression "(statement->wild_statement).keep_sections" (parenthesized_expression "(statement->wild_statement)" ( (field_expression "statement->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)(iVar16 + 0x1c) = uVar14;" (assignment_expression "*(undefined4 *)(iVar16 + 0x1c) = uVar14" (pointer_expression "*(undefined4 *)(iVar16 + 0x1c)" * (cast_expression "(undefined4 *)(iVar16 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x1c)" ( (binary_expression "iVar16 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pwVar7 = (statement->wild_statement).section_list;" (assignment_expression "pwVar7 = (statement->wild_statement).section_list" identifier = (field_expression "(statement->wild_statement).section_list" (parenthesized_expression "(statement->wild_statement)" ( (field_expression "statement->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "bVar19 = CONCAT44(bVar8,pwVar7);" (assignment_expression "bVar19 = CONCAT44(bVar8,pwVar7)" identifier = (call_expression "CONCAT44(bVar8,pwVar7)" identifier (argument_list "(bVar8,pwVar7)" ( identifier , identifier )))) ;) (if_statement "if (((link_info.output_bfd)->xvec->byteorder < BFD_ENDIAN_UNKNOWN) ||\n     (bVar19 = CONCAT44(bVar8,pwVar7), command_line.endian == ENDIAN_BIG)) goto _L11;" if (parenthesized_expression "(((link_info.output_bfd)->xvec->byteorder < BFD_ENDIAN_UNKNOWN) ||\n     (bVar19 = CONCAT44(bVar8,pwVar7), command_line.endian == ENDIAN_BIG))" ( (binary_expression "((link_info.output_bfd)->xvec->byteorder < BFD_ENDIAN_UNKNOWN) ||\n     (bVar19 = CONCAT44(bVar8,pwVar7), command_line.endian == ENDIAN_BIG)" (parenthesized_expression "((link_info.output_bfd)->xvec->byteorder < BFD_ENDIAN_UNKNOWN)" ( (binary_expression "(link_info.output_bfd)->xvec->byteorder < BFD_ENDIAN_UNKNOWN" (field_expression "(link_info.output_bfd)->xvec->byteorder" (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) -> field_identifier) < identifier) )) || (parenthesized_expression "(bVar19 = CONCAT44(bVar8,pwVar7), command_line.endian == ENDIAN_BIG)" ( (comma_expression "bVar19 = CONCAT44(bVar8,pwVar7), command_line.endian == ENDIAN_BIG" (assignment_expression "bVar19 = CONCAT44(bVar8,pwVar7)" identifier = (call_expression "CONCAT44(bVar8,pwVar7)" identifier (argument_list "(bVar8,pwVar7)" ( identifier , identifier )))) , (binary_expression "command_line.endian == ENDIAN_BIG" (field_expression "command_line.endian" identifier . field_identifier) == identifier)) ))) )) (goto_statement "goto _L11;" goto statement_identifier ;)) (if_statement "if (command_line.endian != ENDIAN_LITTLE) {\n    bVar19 = CONCAT44(bVar8,pwVar7);\n    if ((command_line.endian != ENDIAN_UNSET) ||\n       (bVar19 = CONCAT44(bVar8,pwVar7), file_chain.head == (lang_statement_union *)0x0)) goto _L11;\n    pbVar4 = (bfd_section *)((file_chain.head)->input_statement).the_bfd;\n    plVar9 = file_chain.head;\n    while (pbVar4 == (bfd_section *)0x0) {\n      plVar9 = (lang_statement_union *)(plVar9->data_statement).output_section;\n      bVar19 = CONCAT44(bVar8,pwVar7);\n      if (plVar9 == (lang_statement_union *)0x0) goto _L11;\n      pbVar4 = (bfd_section *)(plVar9->input_statement).the_bfd;\n    }\n    bVar19 = CONCAT44(bVar8,pwVar7);\n    if (((bfd_target *)pbVar4->id)->byteorder != BFD_ENDIAN_LITTLE) goto _L11;\n  }" if (parenthesized_expression "(command_line.endian != ENDIAN_LITTLE)" ( (binary_expression "command_line.endian != ENDIAN_LITTLE" (field_expression "command_line.endian" identifier . field_identifier) != identifier) )) (compound_statement "{\n    bVar19 = CONCAT44(bVar8,pwVar7);\n    if ((command_line.endian != ENDIAN_UNSET) ||\n       (bVar19 = CONCAT44(bVar8,pwVar7), file_chain.head == (lang_statement_union *)0x0)) goto _L11;\n    pbVar4 = (bfd_section *)((file_chain.head)->input_statement).the_bfd;\n    plVar9 = file_chain.head;\n    while (pbVar4 == (bfd_section *)0x0) {\n      plVar9 = (lang_statement_union *)(plVar9->data_statement).output_section;\n      bVar19 = CONCAT44(bVar8,pwVar7);\n      if (plVar9 == (lang_statement_union *)0x0) goto _L11;\n      pbVar4 = (bfd_section *)(plVar9->input_statement).the_bfd;\n    }\n    bVar19 = CONCAT44(bVar8,pwVar7);\n    if (((bfd_target *)pbVar4->id)->byteorder != BFD_ENDIAN_LITTLE) goto _L11;\n  }" { (expression_statement "bVar19 = CONCAT44(bVar8,pwVar7);" (assignment_expression "bVar19 = CONCAT44(bVar8,pwVar7)" identifier = (call_expression "CONCAT44(bVar8,pwVar7)" identifier (argument_list "(bVar8,pwVar7)" ( identifier , identifier )))) ;) (if_statement "if ((command_line.endian != ENDIAN_UNSET) ||\n       (bVar19 = CONCAT44(bVar8,pwVar7), file_chain.head == (lang_statement_union *)0x0)) goto _L11;" if (parenthesized_expression "((command_line.endian != ENDIAN_UNSET) ||\n       (bVar19 = CONCAT44(bVar8,pwVar7), file_chain.head == (lang_statement_union *)0x0))" ( (binary_expression "(command_line.endian != ENDIAN_UNSET) ||\n       (bVar19 = CONCAT44(bVar8,pwVar7), file_chain.head == (lang_statement_union *)0x0)" (parenthesized_expression "(command_line.endian != ENDIAN_UNSET)" ( (binary_expression "command_line.endian != ENDIAN_UNSET" (field_expression "command_line.endian" identifier . field_identifier) != identifier) )) || (parenthesized_expression "(bVar19 = CONCAT44(bVar8,pwVar7), file_chain.head == (lang_statement_union *)0x0)" ( (comma_expression "bVar19 = CONCAT44(bVar8,pwVar7), file_chain.head == (lang_statement_union *)0x0" (assignment_expression "bVar19 = CONCAT44(bVar8,pwVar7)" identifier = (call_expression "CONCAT44(bVar8,pwVar7)" identifier (argument_list "(bVar8,pwVar7)" ( identifier , identifier )))) , (binary_expression "file_chain.head == (lang_statement_union *)0x0" (field_expression "file_chain.head" identifier . field_identifier) == (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto _L11;" goto statement_identifier ;)) (expression_statement "pbVar4 = (bfd_section *)((file_chain.head)->input_statement).the_bfd;" (assignment_expression "pbVar4 = (bfd_section *)((file_chain.head)->input_statement).the_bfd" identifier = (cast_expression "(bfd_section *)((file_chain.head)->input_statement).the_bfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((file_chain.head)->input_statement).the_bfd" (parenthesized_expression "((file_chain.head)->input_statement)" ( (field_expression "(file_chain.head)->input_statement" (parenthesized_expression "(file_chain.head)" ( (field_expression "file_chain.head" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))) ;) (expression_statement "plVar9 = file_chain.head;" (assignment_expression "plVar9 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (while_statement "while (pbVar4 == (bfd_section *)0x0) {\n      plVar9 = (lang_statement_union *)(plVar9->data_statement).output_section;\n      bVar19 = CONCAT44(bVar8,pwVar7);\n      if (plVar9 == (lang_statement_union *)0x0) goto _L11;\n      pbVar4 = (bfd_section *)(plVar9->input_statement).the_bfd;\n    }" while (parenthesized_expression "(pbVar4 == (bfd_section *)0x0)" ( (binary_expression "pbVar4 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      plVar9 = (lang_statement_union *)(plVar9->data_statement).output_section;\n      bVar19 = CONCAT44(bVar8,pwVar7);\n      if (plVar9 == (lang_statement_union *)0x0) goto _L11;\n      pbVar4 = (bfd_section *)(plVar9->input_statement).the_bfd;\n    }" { (expression_statement "plVar9 = (lang_statement_union *)(plVar9->data_statement).output_section;" (assignment_expression "plVar9 = (lang_statement_union *)(plVar9->data_statement).output_section" identifier = (cast_expression "(lang_statement_union *)(plVar9->data_statement).output_section" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar9->data_statement).output_section" (parenthesized_expression "(plVar9->data_statement)" ( (field_expression "plVar9->data_statement" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "bVar19 = CONCAT44(bVar8,pwVar7);" (assignment_expression "bVar19 = CONCAT44(bVar8,pwVar7)" identifier = (call_expression "CONCAT44(bVar8,pwVar7)" identifier (argument_list "(bVar8,pwVar7)" ( identifier , identifier )))) ;) (if_statement "if (plVar9 == (lang_statement_union *)0x0) goto _L11;" if (parenthesized_expression "(plVar9 == (lang_statement_union *)0x0)" ( (binary_expression "plVar9 == (lang_statement_union *)0x0" identifier == (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto _L11;" goto statement_identifier ;)) (expression_statement "pbVar4 = (bfd_section *)(plVar9->input_statement).the_bfd;" (assignment_expression "pbVar4 = (bfd_section *)(plVar9->input_statement).the_bfd" identifier = (cast_expression "(bfd_section *)(plVar9->input_statement).the_bfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar9->input_statement).the_bfd" (parenthesized_expression "(plVar9->input_statement)" ( (field_expression "plVar9->input_statement" identifier -> field_identifier) )) . field_identifier))) ;) })) (expression_statement "bVar19 = CONCAT44(bVar8,pwVar7);" (assignment_expression "bVar19 = CONCAT44(bVar8,pwVar7)" identifier = (call_expression "CONCAT44(bVar8,pwVar7)" identifier (argument_list "(bVar8,pwVar7)" ( identifier , identifier )))) ;) (if_statement "if (((bfd_target *)pbVar4->id)->byteorder != BFD_ENDIAN_LITTLE) goto _L11;" if (parenthesized_expression "(((bfd_target *)pbVar4->id)->byteorder != BFD_ENDIAN_LITTLE)" ( (binary_expression "((bfd_target *)pbVar4->id)->byteorder != BFD_ENDIAN_LITTLE" (field_expression "((bfd_target *)pbVar4->id)->byteorder" (parenthesized_expression "((bfd_target *)pbVar4->id)" ( (cast_expression "(bfd_target *)pbVar4->id" ( (type_descriptor "bfd_target *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar4->id" identifier -> field_identifier)) )) -> field_identifier) != identifier) )) (goto_statement "goto _L11;" goto statement_identifier ;)) })) (expression_statement "bVar19 = CONCAT44(bVar8,pwVar7);" (assignment_expression "bVar19 = CONCAT44(bVar8,pwVar7)" identifier = (call_expression "CONCAT44(bVar8,pwVar7)" identifier (argument_list "(bVar8,pwVar7)" ( identifier , identifier )))) ;) (switch_statement "switch((statement->data_statement).type) {\n  case 0x11a:\n  case 0x11b:\n    bfd_putl64(pwVar7,bVar8,buffer);\n    bVar19 = bfd_getb64(buffer);\n    break;\n  case 0x11c:\n    bfd_putl32(pwVar7,bVar8,buffer);\n    bVar19 = bfd_getb32(buffer);\n    break;\n  case 0x11d:\n    bfd_putl16(pwVar7,bVar8,buffer);\n    bVar19 = bfd_getb16(buffer);\n    break;\n  case 0x11e:\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    ld_abort("../../ld/ldwrite.c",0x86,"build_link_order");\n  }" switch (parenthesized_expression "((statement->data_statement).type)" ( (field_expression "(statement->data_statement).type" (parenthesized_expression "(statement->data_statement)" ( (field_expression "statement->data_statement" identifier -> field_identifier) )) . field_identifier) )) (compound_statement "{\n  case 0x11a:\n  case 0x11b:\n    bfd_putl64(pwVar7,bVar8,buffer);\n    bVar19 = bfd_getb64(buffer);\n    break;\n  case 0x11c:\n    bfd_putl32(pwVar7,bVar8,buffer);\n    bVar19 = bfd_getb32(buffer);\n    break;\n  case 0x11d:\n    bfd_putl16(pwVar7,bVar8,buffer);\n    bVar19 = bfd_getb16(buffer);\n    break;\n  case 0x11e:\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    ld_abort("../../ld/ldwrite.c",0x86,"build_link_order");\n  }" { (case_statement "case 0x11a:" case number_literal :) (case_statement "case 0x11b:\n    bfd_putl64(pwVar7,bVar8,buffer);\n    bVar19 = bfd_getb64(buffer);\n    break;" case number_literal : (expression_statement "bfd_putl64(pwVar7,bVar8,buffer);" (call_expression "bfd_putl64(pwVar7,bVar8,buffer)" identifier (argument_list "(pwVar7,bVar8,buffer)" ( identifier , identifier , identifier ))) ;) (expression_statement "bVar19 = bfd_getb64(buffer);" (assignment_expression "bVar19 = bfd_getb64(buffer)" identifier = (call_expression "bfd_getb64(buffer)" identifier (argument_list "(buffer)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x11c:\n    bfd_putl32(pwVar7,bVar8,buffer);\n    bVar19 = bfd_getb32(buffer);\n    break;" case number_literal : (expression_statement "bfd_putl32(pwVar7,bVar8,buffer);" (call_expression "bfd_putl32(pwVar7,bVar8,buffer)" identifier (argument_list "(pwVar7,bVar8,buffer)" ( identifier , identifier , identifier ))) ;) (expression_statement "bVar19 = bfd_getb32(buffer);" (assignment_expression "bVar19 = bfd_getb32(buffer)" identifier = (call_expression "bfd_getb32(buffer)" identifier (argument_list "(buffer)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x11d:\n    bfd_putl16(pwVar7,bVar8,buffer);\n    bVar19 = bfd_getb16(buffer);\n    break;" case number_literal : (expression_statement "bfd_putl16(pwVar7,bVar8,buffer);" (call_expression "bfd_putl16(pwVar7,bVar8,buffer)" identifier (argument_list "(pwVar7,bVar8,buffer)" ( identifier , identifier , identifier ))) ;) (expression_statement "bVar19 = bfd_getb16(buffer);" (assignment_expression "bVar19 = bfd_getb16(buffer)" identifier = (call_expression "bfd_getb16(buffer)" identifier (argument_list "(buffer)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x11e:\n    break;" case number_literal : (break_statement "break;" break ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n    ld_abort("../../ld/ldwrite.c",0x86,"build_link_order");" default : comment (expression_statement "ld_abort("../../ld/ldwrite.c",0x86,"build_link_order");" (call_expression "ld_abort("../../ld/ldwrite.c",0x86,"build_link_order")" identifier (argument_list "("../../ld/ldwrite.c",0x86,"build_link_order")" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal , (string_literal ""build_link_order"" " string_content ") ))) ;)) })) (labeled_statement "_L11:\n  if (paVar3->owner != link_info.output_bfd) {\n    info_assert("../../ld/ldwrite.c",0x8b);\n  }" statement_identifier : (if_statement "if (paVar3->owner != link_info.output_bfd) {\n    info_assert("../../ld/ldwrite.c",0x8b);\n  }" if (parenthesized_expression "(paVar3->owner != link_info.output_bfd)" ( (binary_expression "paVar3->owner != link_info.output_bfd" (field_expression "paVar3->owner" identifier -> field_identifier) != (field_expression "link_info.output_bfd" identifier . field_identifier)) )) (compound_statement "{\n    info_assert("../../ld/ldwrite.c",0x8b);\n  }" { (expression_statement "info_assert("../../ld/ldwrite.c",0x8b);" (call_expression "info_assert("../../ld/ldwrite.c",0x8b)" identifier (argument_list "("../../ld/ldwrite.c",0x8b)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal ))) ;) }))) (switch_statement "switch((statement->data_statement).type) {\n  case 0x11a:\n  case 0x11b:\n    (*(link_info.output_bfd)->xvec->bfd_putx64)(bVar19,*(void **)(iVar16 + 0x1c));\n    *(undefined4 *)(iVar16 + 0x10) = 8;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    uVar14 = 8;\n    break;\n  case 0x11c:\n    uVar14 = 4;\n    (*(link_info.output_bfd)->xvec->bfd_putx32)(bVar19,*(void **)(iVar16 + 0x1c));\n    *(undefined4 *)(iVar16 + 0x10) = 4;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    break;\n  case 0x11d:\n    uVar14 = 2;\n    (*(link_info.output_bfd)->xvec->bfd_putx16)(bVar19,*(void **)(iVar16 + 0x1c));\n    *(undefined4 *)(iVar16 + 0x10) = 2;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    break;\n  case 0x11e:\n    local_3c = (undefined1)bVar19;\n    uVar14 = 1;\n    **(undefined1 **)(iVar16 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar16 + 0x10) = 1;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    ld_abort("../../ld/ldwrite.c",0xb6,"build_link_order");\n  }" switch (parenthesized_expression "((statement->data_statement).type)" ( (field_expression "(statement->data_statement).type" (parenthesized_expression "(statement->data_statement)" ( (field_expression "statement->data_statement" identifier -> field_identifier) )) . field_identifier) )) (compound_statement "{\n  case 0x11a:\n  case 0x11b:\n    (*(link_info.output_bfd)->xvec->bfd_putx64)(bVar19,*(void **)(iVar16 + 0x1c));\n    *(undefined4 *)(iVar16 + 0x10) = 8;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    uVar14 = 8;\n    break;\n  case 0x11c:\n    uVar14 = 4;\n    (*(link_info.output_bfd)->xvec->bfd_putx32)(bVar19,*(void **)(iVar16 + 0x1c));\n    *(undefined4 *)(iVar16 + 0x10) = 4;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    break;\n  case 0x11d:\n    uVar14 = 2;\n    (*(link_info.output_bfd)->xvec->bfd_putx16)(bVar19,*(void **)(iVar16 + 0x1c));\n    *(undefined4 *)(iVar16 + 0x10) = 2;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    break;\n  case 0x11e:\n    local_3c = (undefined1)bVar19;\n    uVar14 = 1;\n    **(undefined1 **)(iVar16 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar16 + 0x10) = 1;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    ld_abort("../../ld/ldwrite.c",0xb6,"build_link_order");\n  }" { (case_statement "case 0x11a:" case number_literal :) (case_statement "case 0x11b:\n    (*(link_info.output_bfd)->xvec->bfd_putx64)(bVar19,*(void **)(iVar16 + 0x1c));\n    *(undefined4 *)(iVar16 + 0x10) = 8;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    uVar14 = 8;\n    break;" case number_literal : (expression_statement "(*(link_info.output_bfd)->xvec->bfd_putx64)(bVar19,*(void **)(iVar16 + 0x1c));" (call_expression "(*(link_info.output_bfd)->xvec->bfd_putx64)(bVar19,*(void **)(iVar16 + 0x1c))" (parenthesized_expression "(*(link_info.output_bfd)->xvec->bfd_putx64)" ( (pointer_expression "*(link_info.output_bfd)->xvec->bfd_putx64" * (field_expression "(link_info.output_bfd)->xvec->bfd_putx64" (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) -> field_identifier)) )) (argument_list "(bVar19,*(void **)(iVar16 + 0x1c))" ( identifier , (pointer_expression "*(void **)(iVar16 + 0x1c)" * (cast_expression "(void **)(iVar16 + 0x1c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x1c)" ( (binary_expression "iVar16 + 0x1c" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(iVar16 + 0x10) = 8;" (assignment_expression "*(undefined4 *)(iVar16 + 0x10) = 8" (pointer_expression "*(undefined4 *)(iVar16 + 0x10)" * (cast_expression "(undefined4 *)(iVar16 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x10)" ( (binary_expression "iVar16 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar16 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar16 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar16 + 0x14)" * (cast_expression "(undefined4 *)(iVar16 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x14)" ( (binary_expression "iVar16 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar14 = 8;" (assignment_expression "uVar14 = 8" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11c:\n    uVar14 = 4;\n    (*(link_info.output_bfd)->xvec->bfd_putx32)(bVar19,*(void **)(iVar16 + 0x1c));\n    *(undefined4 *)(iVar16 + 0x10) = 4;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    break;" case number_literal : (expression_statement "uVar14 = 4;" (assignment_expression "uVar14 = 4" identifier = number_literal) ;) (expression_statement "(*(link_info.output_bfd)->xvec->bfd_putx32)(bVar19,*(void **)(iVar16 + 0x1c));" (call_expression "(*(link_info.output_bfd)->xvec->bfd_putx32)(bVar19,*(void **)(iVar16 + 0x1c))" (parenthesized_expression "(*(link_info.output_bfd)->xvec->bfd_putx32)" ( (pointer_expression "*(link_info.output_bfd)->xvec->bfd_putx32" * (field_expression "(link_info.output_bfd)->xvec->bfd_putx32" (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) -> field_identifier)) )) (argument_list "(bVar19,*(void **)(iVar16 + 0x1c))" ( identifier , (pointer_expression "*(void **)(iVar16 + 0x1c)" * (cast_expression "(void **)(iVar16 + 0x1c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x1c)" ( (binary_expression "iVar16 + 0x1c" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(iVar16 + 0x10) = 4;" (assignment_expression "*(undefined4 *)(iVar16 + 0x10) = 4" (pointer_expression "*(undefined4 *)(iVar16 + 0x10)" * (cast_expression "(undefined4 *)(iVar16 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x10)" ( (binary_expression "iVar16 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar16 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar16 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar16 + 0x14)" * (cast_expression "(undefined4 *)(iVar16 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x14)" ( (binary_expression "iVar16 + 0x14" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11d:\n    uVar14 = 2;\n    (*(link_info.output_bfd)->xvec->bfd_putx16)(bVar19,*(void **)(iVar16 + 0x1c));\n    *(undefined4 *)(iVar16 + 0x10) = 2;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    break;" case number_literal : (expression_statement "uVar14 = 2;" (assignment_expression "uVar14 = 2" identifier = number_literal) ;) (expression_statement "(*(link_info.output_bfd)->xvec->bfd_putx16)(bVar19,*(void **)(iVar16 + 0x1c));" (call_expression "(*(link_info.output_bfd)->xvec->bfd_putx16)(bVar19,*(void **)(iVar16 + 0x1c))" (parenthesized_expression "(*(link_info.output_bfd)->xvec->bfd_putx16)" ( (pointer_expression "*(link_info.output_bfd)->xvec->bfd_putx16" * (field_expression "(link_info.output_bfd)->xvec->bfd_putx16" (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) -> field_identifier)) )) (argument_list "(bVar19,*(void **)(iVar16 + 0x1c))" ( identifier , (pointer_expression "*(void **)(iVar16 + 0x1c)" * (cast_expression "(void **)(iVar16 + 0x1c)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x1c)" ( (binary_expression "iVar16 + 0x1c" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(iVar16 + 0x10) = 2;" (assignment_expression "*(undefined4 *)(iVar16 + 0x10) = 2" (pointer_expression "*(undefined4 *)(iVar16 + 0x10)" * (cast_expression "(undefined4 *)(iVar16 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x10)" ( (binary_expression "iVar16 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar16 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar16 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar16 + 0x14)" * (cast_expression "(undefined4 *)(iVar16 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x14)" ( (binary_expression "iVar16 + 0x14" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11e:\n    local_3c = (undefined1)bVar19;\n    uVar14 = 1;\n    **(undefined1 **)(iVar16 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar16 + 0x10) = 1;\n    *(undefined4 *)(iVar16 + 0x14) = 0;\n    break;" case number_literal : (expression_statement "local_3c = (undefined1)bVar19;" (assignment_expression "local_3c = (undefined1)bVar19" identifier = (cast_expression "(undefined1)bVar19" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "**(undefined1 **)(iVar16 + 0x1c) = local_3c;" (assignment_expression "**(undefined1 **)(iVar16 + 0x1c) = local_3c" (pointer_expression "**(undefined1 **)(iVar16 + 0x1c)" * (pointer_expression "*(undefined1 **)(iVar16 + 0x1c)" * (cast_expression "(undefined1 **)(iVar16 + 0x1c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar16 + 0x1c)" ( (binary_expression "iVar16 + 0x1c" identifier + number_literal) ))))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar16 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar16 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar16 + 0x10)" * (cast_expression "(undefined4 *)(iVar16 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x10)" ( (binary_expression "iVar16 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar16 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar16 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar16 + 0x14)" * (cast_expression "(undefined4 *)(iVar16 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x14)" ( (binary_expression "iVar16 + 0x14" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n    ld_abort("../../ld/ldwrite.c",0xb6,"build_link_order");" default : comment (expression_statement "ld_abort("../../ld/ldwrite.c",0xb6,"build_link_order");" (call_expression "ld_abort("../../ld/ldwrite.c",0xb6,"build_link_order")" identifier (argument_list "("../../ld/ldwrite.c",0xb6,"build_link_order")" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal , (string_literal ""build_link_order"" " string_content ") ))) ;)) })) (expression_statement "*(undefined4 *)(iVar16 + 0x18) = uVar14;" (assignment_expression "*(undefined4 *)(iVar16 + 0x18) = uVar14" (pointer_expression "*(undefined4 *)(iVar16 + 0x18)" * (cast_expression "(undefined4 *)(iVar16 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x18)" ( (binary_expression "iVar16 + 0x18" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0002fae0(int param_1)\n\n{\n  uint uVar1;\n  undefined1 *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined1 *puVar11;\n  undefined8 uVar12;\n  undefined1 local_3c;\n  undefined1 auStack_24 [16];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2fae9;\n  uVar1 = *(uint *)(param_1 + 4);\n  if (uVar1 != 8) {\n    if (uVar1 < 9) {\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }\n    else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }\n    return;\n  }\n  iVar9 = *(int *)(param_1 + 0x18);\n  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    FUN_00034d70("../../ld/ldwrite.c",0x33);\n  }\n  if (((*(uint *)(iVar9 + 0x14) & 0x100) == 0) && ((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402)) {\n    return;\n  }\n  iVar8 = bfd_new_link_order(DAT_001d1414,iVar9);\n  if (iVar8 == 0) {\n    uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n    FUN_00034d20(uVar10);\n  }\n  uVar10 = *(undefined4 *)(param_1 + 0x20);\n  uVar3 = *(undefined4 *)(param_1 + 0x1c);\n  *(undefined4 *)(iVar8 + 4) = 2;\n  *(undefined4 *)(iVar8 + 0xc) = uVar10;\n  *(undefined4 *)(iVar8 + 8) = uVar3;\n  uVar10 = xmalloc(8);\n  puVar2 = *(undefined1 **)(param_1 + 0x14);\n  *(undefined4 *)(iVar8 + 0x1c) = uVar10;\n  uVar10 = *(undefined4 *)(param_1 + 0x10);\n  uVar12 = CONCAT44(puVar2,uVar10);\n  if ((*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2) ||\n     (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1)) goto LAB_0002fdbb;\n  puVar11 = puVar2;\n  if (DAT_001d14b0 != 2) {\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if ((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))\n    goto LAB_0002fdbb;\n    iVar6 = *(int *)(DAT_001d06bc + 0x10);\n    iVar4 = DAT_001d06bc;\n    while (iVar6 == 0) {\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if (*(int *)(*(int *)(iVar6 + 4) + 8) != 1) goto LAB_0002fdbb;\n  }\n  uVar12 = CONCAT44(puVar2,uVar10);\n  switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    func_0x000169a0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016390(auStack_24);\n    break;\n  case 0x11c:\n    func_0x000167b0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016aa0(auStack_24);\n    break;\n  case 0x11d:\n    func_0x00016ac0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x000167d0(auStack_24);\n    break;\n  case 0x11e:\n    break;\n  default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);\n  }\nLAB_0002fdbb:\n  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);\n  }\n  switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 8;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    uVar10 = 8;\n    break;\n  case 0x11c:\n    uVar10 = 4;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 4;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11d:\n    uVar10 = 2;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 2;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11e:\n    local_3c = (undefined1)uVar12;\n    uVar10 = 1;\n    **(undefined1 **)(iVar8 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar8 + 0x10) = 1;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);\n  }\n  *(undefined4 *)(iVar8 + 0x18) = uVar10;\n  return;\n}\n\n" (function_definition "void FUN_0002fae0(int param_1)\n\n{\n  uint uVar1;\n  undefined1 *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined1 *puVar11;\n  undefined8 uVar12;\n  undefined1 local_3c;\n  undefined1 auStack_24 [16];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2fae9;\n  uVar1 = *(uint *)(param_1 + 4);\n  if (uVar1 != 8) {\n    if (uVar1 < 9) {\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }\n    else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }\n    return;\n  }\n  iVar9 = *(int *)(param_1 + 0x18);\n  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    FUN_00034d70("../../ld/ldwrite.c",0x33);\n  }\n  if (((*(uint *)(iVar9 + 0x14) & 0x100) == 0) && ((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402)) {\n    return;\n  }\n  iVar8 = bfd_new_link_order(DAT_001d1414,iVar9);\n  if (iVar8 == 0) {\n    uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n    FUN_00034d20(uVar10);\n  }\n  uVar10 = *(undefined4 *)(param_1 + 0x20);\n  uVar3 = *(undefined4 *)(param_1 + 0x1c);\n  *(undefined4 *)(iVar8 + 4) = 2;\n  *(undefined4 *)(iVar8 + 0xc) = uVar10;\n  *(undefined4 *)(iVar8 + 8) = uVar3;\n  uVar10 = xmalloc(8);\n  puVar2 = *(undefined1 **)(param_1 + 0x14);\n  *(undefined4 *)(iVar8 + 0x1c) = uVar10;\n  uVar10 = *(undefined4 *)(param_1 + 0x10);\n  uVar12 = CONCAT44(puVar2,uVar10);\n  if ((*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2) ||\n     (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1)) goto LAB_0002fdbb;\n  puVar11 = puVar2;\n  if (DAT_001d14b0 != 2) {\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if ((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))\n    goto LAB_0002fdbb;\n    iVar6 = *(int *)(DAT_001d06bc + 0x10);\n    iVar4 = DAT_001d06bc;\n    while (iVar6 == 0) {\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if (*(int *)(*(int *)(iVar6 + 4) + 8) != 1) goto LAB_0002fdbb;\n  }\n  uVar12 = CONCAT44(puVar2,uVar10);\n  switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    func_0x000169a0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016390(auStack_24);\n    break;\n  case 0x11c:\n    func_0x000167b0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016aa0(auStack_24);\n    break;\n  case 0x11d:\n    func_0x00016ac0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x000167d0(auStack_24);\n    break;\n  case 0x11e:\n    break;\n  default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);\n  }\nLAB_0002fdbb:\n  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);\n  }\n  switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 8;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    uVar10 = 8;\n    break;\n  case 0x11c:\n    uVar10 = 4;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 4;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11d:\n    uVar10 = 2;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 2;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11e:\n    local_3c = (undefined1)uVar12;\n    uVar10 = 1;\n    **(undefined1 **)(iVar8 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar8 + 0x10) = 1;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);\n  }\n  *(undefined4 *)(iVar8 + 0x18) = uVar10;\n  return;\n}" primitive_type (function_declarator "FUN_0002fae0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  undefined1 *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined1 *puVar11;\n  undefined8 uVar12;\n  undefined1 local_3c;\n  undefined1 auStack_24 [16];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2fae9;\n  uVar1 = *(uint *)(param_1 + 4);\n  if (uVar1 != 8) {\n    if (uVar1 < 9) {\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }\n    else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }\n    return;\n  }\n  iVar9 = *(int *)(param_1 + 0x18);\n  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    FUN_00034d70("../../ld/ldwrite.c",0x33);\n  }\n  if (((*(uint *)(iVar9 + 0x14) & 0x100) == 0) && ((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402)) {\n    return;\n  }\n  iVar8 = bfd_new_link_order(DAT_001d1414,iVar9);\n  if (iVar8 == 0) {\n    uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n    FUN_00034d20(uVar10);\n  }\n  uVar10 = *(undefined4 *)(param_1 + 0x20);\n  uVar3 = *(undefined4 *)(param_1 + 0x1c);\n  *(undefined4 *)(iVar8 + 4) = 2;\n  *(undefined4 *)(iVar8 + 0xc) = uVar10;\n  *(undefined4 *)(iVar8 + 8) = uVar3;\n  uVar10 = xmalloc(8);\n  puVar2 = *(undefined1 **)(param_1 + 0x14);\n  *(undefined4 *)(iVar8 + 0x1c) = uVar10;\n  uVar10 = *(undefined4 *)(param_1 + 0x10);\n  uVar12 = CONCAT44(puVar2,uVar10);\n  if ((*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2) ||\n     (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1)) goto LAB_0002fdbb;\n  puVar11 = puVar2;\n  if (DAT_001d14b0 != 2) {\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if ((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))\n    goto LAB_0002fdbb;\n    iVar6 = *(int *)(DAT_001d06bc + 0x10);\n    iVar4 = DAT_001d06bc;\n    while (iVar6 == 0) {\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if (*(int *)(*(int *)(iVar6 + 4) + 8) != 1) goto LAB_0002fdbb;\n  }\n  uVar12 = CONCAT44(puVar2,uVar10);\n  switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    func_0x000169a0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016390(auStack_24);\n    break;\n  case 0x11c:\n    func_0x000167b0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016aa0(auStack_24);\n    break;\n  case 0x11d:\n    func_0x00016ac0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x000167d0(auStack_24);\n    break;\n  case 0x11e:\n    break;\n  default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);\n  }\nLAB_0002fdbb:\n  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);\n  }\n  switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 8;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    uVar10 = 8;\n    break;\n  case 0x11c:\n    uVar10 = 4;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 4;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11d:\n    uVar10 = 2;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 2;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11e:\n    local_3c = (undefined1)uVar12;\n    uVar10 = 1;\n    **(undefined1 **)(iVar8 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar8 + 0x10) = 1;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);\n  }\n  *(undefined4 *)(iVar8 + 0x18) = uVar10;\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined1 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined8 uVar12;" type_identifier identifier ;) (declaration "undefined1 local_3c;" type_identifier identifier ;) (declaration "undefined1 auStack_24 [16];" type_identifier (array_declarator "auStack_24 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x2fae9;" (assignment_expression "uStack_14 = 0x2fae9" identifier = number_literal) ;) (expression_statement "uVar1 = *(uint *)(param_1 + 4);" (assignment_expression "uVar1 = *(uint *)(param_1 + 4)" identifier = (pointer_expression "*(uint *)(param_1 + 4)" * (cast_expression "(uint *)(param_1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (if_statement "if (uVar1 != 8) {\n    if (uVar1 < 9) {\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }\n    else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }\n    return;\n  }" if (parenthesized_expression "(uVar1 != 8)" ( (binary_expression "uVar1 != 8" identifier != number_literal) )) (compound_statement "{\n    if (uVar1 < 9) {\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }\n    else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }\n    return;\n  }" { (if_statement "if (uVar1 < 9) {\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }\n    else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }" if (parenthesized_expression "(uVar1 < 9)" ( (binary_expression "uVar1 < 9" identifier < number_literal) )) (compound_statement "{\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }" { (if_statement "if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }" if (parenthesized_expression "(((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0))" ( (binary_expression "((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)" (parenthesized_expression "((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200))" ( (binary_expression "(uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)" (parenthesized_expression "(uVar1 == 5)" ( (binary_expression "uVar1 == 5" identifier == number_literal) )) && (parenthesized_expression "(iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)" ( (comma_expression "iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200" (assignment_expression "iVar9 = *(int *)(param_1 + 8)" identifier = (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) , (binary_expression "(*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200" (parenthesized_expression "(*(ushort *)(iVar9 + 0x18) & 0x380)" ( (binary_expression "*(ushort *)(iVar9 + 0x18) & 0x380" (pointer_expression "*(ushort *)(iVar9 + 0x18)" * (cast_expression "(ushort *)(iVar9 + 0x18)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) && (parenthesized_expression "((*(byte *)(iVar9 + 0x15) & 0x80) == 0)" ( (binary_expression "(*(byte *)(iVar9 + 0x15) & 0x80) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x15) & 0x80)" ( (binary_expression "*(byte *)(iVar9 + 0x15) & 0x80" (pointer_expression "*(byte *)(iVar9 + 0x15)" * (cast_expression "(byte *)(iVar9 + 0x15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x15)" ( (binary_expression "iVar9 + 0x15" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }" { (expression_statement "iVar8 = *(int *)(iVar9 + 0x54);" (assignment_expression "iVar8 = *(int *)(iVar9 + 0x54)" identifier = (pointer_expression "*(int *)(iVar9 + 0x54)" * (cast_expression "(int *)(iVar9 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x54)" ( (binary_expression "iVar9 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }" if (parenthesized_expression "(*(int *)(iVar8 + 0xac) != DAT_001d1414)" ( (binary_expression "*(int *)(iVar8 + 0xac) != DAT_001d1414" (pointer_expression "*(int *)(iVar8 + 0xac)" * (cast_expression "(int *)(iVar8 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xac)" ( (binary_expression "iVar8 + 0xac" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }" { (expression_statement "FUN_00034d70("../../ld/ldwrite.c",0xf8);" (call_expression "FUN_00034d70("../../ld/ldwrite.c",0xf8)" identifier (argument_list "("../../ld/ldwrite.c",0xf8)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }" if (parenthesized_expression "(((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           )" ( (binary_expression "((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)" (parenthesized_expression "((*(uint *)(iVar8 + 0x14) & 0x100) != 0)" ( (binary_expression "(*(uint *)(iVar8 + 0x14) & 0x100) != 0" (parenthesized_expression "(*(uint *)(iVar8 + 0x14) & 0x100)" ( (binary_expression "*(uint *)(iVar8 + 0x14) & 0x100" (pointer_expression "*(uint *)(iVar8 + 0x14)" * (cast_expression "(uint *)(iVar8 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)" ( (binary_expression "(*(uint *)(iVar8 + 0x14) & 0x402) == 0x402" (parenthesized_expression "(*(uint *)(iVar8 + 0x14) & 0x402)" ( (binary_expression "*(uint *)(iVar8 + 0x14) & 0x402" (pointer_expression "*(uint *)(iVar8 + 0x14)" * (cast_expression "(uint *)(iVar8 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }" { (expression_statement "iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);" (assignment_expression "iVar6 = bfd_new_link_order(DAT_001d1414,iVar8)" identifier = (call_expression "bfd_new_link_order(DAT_001d1414,iVar8)" identifier (argument_list "(DAT_001d1414,iVar8)" ( identifier , identifier )))) ;) (if_statement "if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }" { (expression_statement "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);" (assignment_expression "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier (argument_list "(0,"%F%P: bfd_new_link_order failed\n",5)" ( number_literal , (string_literal ""%F%P: bfd_new_link_order failed\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar10);" (call_expression "FUN_00034d20(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) })) (if_statement "if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }" if (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200)" ( (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x2200)" ( (binary_expression "*(uint *)(iVar9 + 0x14) & 0x2200" (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }" { (expression_statement "*(undefined4 *)(iVar6 + 4) = 2;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = 2" (pointer_expression "*(undefined4 *)(iVar6 + 4)" * (cast_expression "(undefined4 *)(iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)(iVar6 + 0x1c) = "";" (assignment_expression "*(char **)(iVar6 + 0x1c) = """ (pointer_expression "*(char **)(iVar6 + 0x1c)" * (cast_expression "(char **)(iVar6 + 0x1c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar6 + 0x1c)" ( (binary_expression "iVar6 + 0x1c" identifier + number_literal) )))) = (string_literal """" " ")) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x18) = 1;" (assignment_expression "*(undefined4 *)(iVar6 + 0x18) = 1" (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" * (cast_expression "(undefined4 *)(iVar6 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }" else (compound_statement "{\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }" { (expression_statement "*(undefined4 *)(iVar6 + 4) = 1;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = 1" (pointer_expression "*(undefined4 *)(iVar6 + 4)" * (cast_expression "(undefined4 *)(iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(iVar6 + 0x18) = iVar9;" (assignment_expression "*(int *)(iVar6 + 0x18) = iVar9" (pointer_expression "*(int *)(iVar6 + 0x18)" * (cast_expression "(int *)(iVar6 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x18)" ( (binary_expression "iVar6 + 0x18" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }" if (parenthesized_expression "(*(int *)(iVar9 + 0x54) != iVar8)" ( (binary_expression "*(int *)(iVar9 + 0x54) != iVar8" (pointer_expression "*(int *)(iVar9 + 0x54)" * (cast_expression "(int *)(iVar9 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x54)" ( (binary_expression "iVar9 + 0x54" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }" { (expression_statement "FUN_00034d70("../../ld/ldwrite.c",0x111);" (call_expression "FUN_00034d70("../../ld/ldwrite.c",0x111)" identifier (argument_list "("../../ld/ldwrite.c",0x111)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal ))) ;) })) }))) (expression_statement "uVar10 = *(undefined4 *)(iVar9 + 0x30);" (assignment_expression "uVar10 = *(undefined4 *)(iVar9 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 0x30)" * (cast_expression "(undefined4 *)(iVar9 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x30)" ( (binary_expression "iVar9 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);" (assignment_expression "*(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c)" (pointer_expression "*(undefined4 *)(iVar6 + 0x10)" * (cast_expression "(undefined4 *)(iVar6 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar9 + 0x2c)" * (cast_expression "(undefined4 *)(iVar9 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x2c)" ( (binary_expression "iVar9 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)(iVar9 + 0x4c);" (assignment_expression "uVar3 = *(undefined4 *)(iVar9 + 0x4c)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 0x4c)" * (cast_expression "(undefined4 *)(iVar9 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x4c)" ( (binary_expression "iVar9 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 0x14) = uVar10;" (assignment_expression "*(undefined4 *)(iVar6 + 0x14) = uVar10" (pointer_expression "*(undefined4 *)(iVar6 + 0x14)" * (cast_expression "(undefined4 *)(iVar6 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x14)" ( (binary_expression "iVar6 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = *(undefined4 *)(iVar9 + 0x50);" (assignment_expression "uVar10 = *(undefined4 *)(iVar9 + 0x50)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 0x50)" * (cast_expression "(undefined4 *)(iVar9 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x50)" ( (binary_expression "iVar9 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar6 + 8) = uVar3;" (assignment_expression "*(undefined4 *)(iVar6 + 8) = uVar3" (pointer_expression "*(undefined4 *)(iVar6 + 8)" * (cast_expression "(undefined4 *)(iVar6 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar6 + 0xc) = uVar10;" (assignment_expression "*(undefined4 *)(iVar6 + 0xc) = uVar10" (pointer_expression "*(undefined4 *)(iVar6 + 0xc)" * (cast_expression "(undefined4 *)(iVar6 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xc)" ( (binary_expression "iVar6 + 0xc" identifier + number_literal) )))) = identifier) ;) })) })) }) (else_clause "else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }" else (if_statement "if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }" if (parenthesized_expression "(uVar1 == 9)" ( (binary_expression "uVar1 == 9" identifier == number_literal) )) (compound_statement "{\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }" { (expression_statement "iVar9 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x24)" identifier = (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }" if (parenthesized_expression "(*(int *)(iVar9 + 0xac) != DAT_001d1414)" ( (binary_expression "*(int *)(iVar9 + 0xac) != DAT_001d1414" (pointer_expression "*(int *)(iVar9 + 0xac)" * (cast_expression "(int *)(iVar9 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xac)" ( (binary_expression "iVar9 + 0xac" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }" { (expression_statement "FUN_00034d70("../../ld/ldwrite.c",0xc5);" (call_expression "FUN_00034d70("../../ld/ldwrite.c",0xc5)" identifier (argument_list "("../../ld/ldwrite.c",0xc5)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }" if (parenthesized_expression "(((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))" ( (binary_expression "((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402)" (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x100) != 0)" ( (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x100) != 0" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x100)" ( (binary_expression "*(uint *)(iVar9 + 0x14) & 0x100" (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402)" ( (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x402) == 0x402" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x402)" ( (binary_expression "*(uint *)(iVar9 + 0x14) & 0x402" (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }" { (expression_statement "iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);" (assignment_expression "iVar9 = bfd_new_link_order(DAT_001d1414,iVar9)" identifier = (call_expression "bfd_new_link_order(DAT_001d1414,iVar9)" identifier (argument_list "(DAT_001d1414,iVar9)" ( identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }" { (expression_statement "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);" (assignment_expression "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier (argument_list "(0,"%F%P: bfd_new_link_order failed\n",5)" ( number_literal , (string_literal ""%F%P: bfd_new_link_order failed\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar10);" (call_expression "FUN_00034d20(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) })) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 0x28);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 0x28)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x28)" * (cast_expression "(undefined4 *)(param_1 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);" (assignment_expression "*(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c)" (pointer_expression "*(undefined4 *)(iVar9 + 0xc)" * (cast_expression "(undefined4 *)(iVar9 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x2c)" * (cast_expression "(undefined4 *)(param_1 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar9 + 8) = uVar10;" (assignment_expression "*(undefined4 *)(iVar9 + 8) = uVar10" (pointer_expression "*(undefined4 *)(iVar9 + 8)" * (cast_expression "(undefined4 *)(iVar9 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));" (assignment_expression "uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc))" identifier = (call_expression "bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc))" identifier (argument_list "(*(undefined4 *)(param_1 + 0xc))" ( (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar9 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar9 + 0x14)" * (cast_expression "(undefined4 *)(iVar9 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x10) = uVar10;" (assignment_expression "*(undefined4 *)(iVar9 + 0x10) = uVar10" (pointer_expression "*(undefined4 *)(iVar9 + 0x10)" * (cast_expression "(undefined4 *)(iVar9 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar7 = (undefined4 *)xmalloc(0x10);" (assignment_expression "puVar7 = (undefined4 *)xmalloc(0x10)" identifier = (cast_expression "(undefined4 *)xmalloc(0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x10)" identifier (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar1 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar1 = *(uint *)(param_1 + 0x1c)" identifier = (pointer_expression "*(uint *)(param_1 + 0x1c)" * (cast_expression "(uint *)(param_1 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 **)(iVar9 + 0x18) = puVar7;" (assignment_expression "*(undefined4 **)(iVar9 + 0x18) = puVar7" (pointer_expression "*(undefined4 **)(iVar9 + 0x18)" * (cast_expression "(undefined4 **)(iVar9 + 0x18)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar8 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x20)" identifier = (pointer_expression "*(int *)(param_1 + 0x20)" * (cast_expression "(int *)(param_1 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = uVar10;" (assignment_expression "*puVar7 = uVar10" (pointer_expression "*puVar7" * identifier) = identifier) ;) (expression_statement "iVar6 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x14)" identifier = (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "puVar7[2] = uVar1;" (assignment_expression "puVar7[2] = uVar1" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[3] = iVar8;" (assignment_expression "puVar7[3] = iVar8" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar4 = DAT_001d1414;" (assignment_expression "iVar4 = DAT_001d1414" identifier = identifier) ;) (if_statement "if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }" { (expression_statement "iVar6 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x10)" identifier = (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar9 + 4) = 3;" (assignment_expression "*(undefined4 *)(iVar9 + 4) = 3" (pointer_expression "*(undefined4 *)(iVar9 + 4)" * (cast_expression "(undefined4 *)(iVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }" if (parenthesized_expression "(*(int *)(iVar6 + 0xac) != iVar4)" ( (binary_expression "*(int *)(iVar6 + 0xac) != iVar4" (pointer_expression "*(int *)(iVar6 + 0xac)" * (cast_expression "(int *)(iVar6 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0xac)" ( (binary_expression "iVar6 + 0xac" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }" { (expression_statement "uVar10 = *(undefined4 *)(iVar6 + 0x54);" (assignment_expression "uVar10 = *(undefined4 *)(iVar6 + 0x54)" identifier = (pointer_expression "*(undefined4 *)(iVar6 + 0x54)" * (cast_expression "(undefined4 *)(iVar6 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x54)" ( (binary_expression "iVar6 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = *(uint *)(iVar6 + 0x4c);" (assignment_expression "uVar5 = *(uint *)(iVar6 + 0x4c)" identifier = (pointer_expression "*(uint *)(iVar6 + 0x4c)" * (cast_expression "(uint *)(iVar6 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x4c)" ( (binary_expression "iVar6 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(iVar6 + 0x50);" (assignment_expression "iVar9 = *(int *)(iVar6 + 0x50)" identifier = (pointer_expression "*(int *)(iVar6 + 0x50)" * (cast_expression "(int *)(iVar6 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x50)" ( (binary_expression "iVar6 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);" (assignment_expression "puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c)" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = (binary_expression "uVar1 + *(uint *)(iVar6 + 0x4c)" identifier + (pointer_expression "*(uint *)(iVar6 + 0x4c)" * (cast_expression "(uint *)(iVar6 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x4c)" ( (binary_expression "iVar6 + 0x4c" identifier + number_literal) )))))) ;) (expression_statement "puVar7[1] = uVar10;" (assignment_expression "puVar7[1] = uVar10" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);" (assignment_expression "puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5)" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = (binary_expression "iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5)" (binary_expression "iVar8 + iVar9" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar1,uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar1,uVar5)" identifier (argument_list "(uVar1,uVar5)" ( identifier , identifier )))))) ;) (return_statement "return;" return ;) })) }) (else_clause "else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }" else (compound_statement "{\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }" { (expression_statement "*(undefined4 *)(iVar9 + 4) = 4;" (assignment_expression "*(undefined4 *)(iVar9 + 4) = 4" (pointer_expression "*(undefined4 *)(iVar9 + 4)" * (cast_expression "(undefined4 *)(iVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "puVar7[1] = iVar6;" (assignment_expression "puVar7[1] = iVar6" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) })) }) (else_clause "else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }" else (if_statement "if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }" if (parenthesized_expression "(uVar1 == 0xc)" ( (binary_expression "uVar1 == 0xc" identifier == number_literal) )) (compound_statement "{\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }" { (expression_statement "iVar9 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }" if (parenthesized_expression "(*(int *)(iVar9 + 0xac) != DAT_001d1414)" ( (binary_expression "*(int *)(iVar9 + 0xac) != DAT_001d1414" (pointer_expression "*(int *)(iVar9 + 0xac)" * (cast_expression "(int *)(iVar9 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xac)" ( (binary_expression "iVar9 + 0xac" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }" { (expression_statement "FUN_00034d70("../../ld/ldwrite.c",0x121);" (call_expression "FUN_00034d70("../../ld/ldwrite.c",0x121)" identifier (argument_list "("../../ld/ldwrite.c",0x121)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }" if (parenthesized_expression "(((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))" ( (binary_expression "((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402)" (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x100) != 0)" ( (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x100) != 0" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x100)" ( (binary_expression "*(uint *)(iVar9 + 0x14) & 0x100" (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402)" ( (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x402) == 0x402" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x402)" ( (binary_expression "*(uint *)(iVar9 + 0x14) & 0x402" (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }" { (expression_statement "iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);" (assignment_expression "iVar9 = bfd_new_link_order(DAT_001d1414,iVar9)" identifier = (call_expression "bfd_new_link_order(DAT_001d1414,iVar9)" identifier (argument_list "(DAT_001d1414,iVar9)" ( identifier , identifier )))) ;) (if_statement "if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }" { (expression_statement "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);" (assignment_expression "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier (argument_list "(0,"%F%P: bfd_new_link_order failed\n",5)" ( number_literal , (string_literal ""%F%P: bfd_new_link_order failed\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar10);" (call_expression "FUN_00034d20(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) })) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 0x10);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)(param_1 + 0x14);" (assignment_expression "uVar3 = *(undefined4 *)(param_1 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x14)" * (cast_expression "(undefined4 *)(param_1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar9 + 4) = 2;" (assignment_expression "*(undefined4 *)(iVar9 + 4) = 2" (pointer_expression "*(undefined4 *)(iVar9 + 4)" * (cast_expression "(undefined4 *)(iVar9 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x10) = uVar10;" (assignment_expression "*(undefined4 *)(iVar9 + 0x10) = uVar10" (pointer_expression "*(undefined4 *)(iVar9 + 0x10)" * (cast_expression "(undefined4 *)(iVar9 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x14) = uVar3;" (assignment_expression "*(undefined4 *)(iVar9 + 0x14) = uVar3" (pointer_expression "*(undefined4 *)(iVar9 + 0x14)" * (cast_expression "(undefined4 *)(iVar9 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = *(undefined4 *)(param_1 + 0xc);" (assignment_expression "uVar3 = *(undefined4 *)(param_1 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar9 + 8) = uVar10;" (assignment_expression "*(undefined4 *)(iVar9 + 8) = uVar10" (pointer_expression "*(undefined4 *)(iVar9 + 8)" * (cast_expression "(undefined4 *)(iVar9 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar7 = *(undefined4 **)(param_1 + 0x1c);" (assignment_expression "puVar7 = *(undefined4 **)(param_1 + 0x1c)" identifier = (pointer_expression "*(undefined4 **)(param_1 + 0x1c)" * (cast_expression "(undefined4 **)(param_1 + 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar9 + 0xc) = uVar3;" (assignment_expression "*(undefined4 *)(iVar9 + 0xc) = uVar3" (pointer_expression "*(undefined4 *)(iVar9 + 0xc)" * (cast_expression "(undefined4 *)(iVar9 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = *puVar7;" (assignment_expression "uVar10 = *puVar7" identifier = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "*(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;" (assignment_expression "*(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1" (pointer_expression "*(undefined4 **)(iVar9 + 0x1c)" * (cast_expression "(undefined4 **)(iVar9 + 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) )))) = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x18) = uVar10;" (assignment_expression "*(undefined4 *)(iVar9 + 0x18) = uVar10" (pointer_expression "*(undefined4 *)(iVar9 + 0x18)" * (cast_expression "(undefined4 *)(iVar9 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) })))))) (return_statement "return;" return ;) })) (expression_statement "iVar9 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x18)" identifier = (pointer_expression "*(int *)(param_1 + 0x18)" * (cast_expression "(int *)(param_1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    FUN_00034d70("../../ld/ldwrite.c",0x33);\n  }" if (parenthesized_expression "(*(int *)(iVar9 + 0xac) != DAT_001d1414)" ( (binary_expression "*(int *)(iVar9 + 0xac) != DAT_001d1414" (pointer_expression "*(int *)(iVar9 + 0xac)" * (cast_expression "(int *)(iVar9 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xac)" ( (binary_expression "iVar9 + 0xac" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n    FUN_00034d70("../../ld/ldwrite.c",0x33);\n  }" { (expression_statement "FUN_00034d70("../../ld/ldwrite.c",0x33);" (call_expression "FUN_00034d70("../../ld/ldwrite.c",0x33)" identifier (argument_list "("../../ld/ldwrite.c",0x33)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (((*(uint *)(iVar9 + 0x14) & 0x100) == 0) && ((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402)) {\n    return;\n  }" if (parenthesized_expression "(((*(uint *)(iVar9 + 0x14) & 0x100) == 0) && ((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402))" ( (binary_expression "((*(uint *)(iVar9 + 0x14) & 0x100) == 0) && ((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402)" (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x100) == 0)" ( (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x100) == 0" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x100)" ( (binary_expression "*(uint *)(iVar9 + 0x14) & 0x100" (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402)" ( (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x402) != 0x402" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x402)" ( (binary_expression "*(uint *)(iVar9 + 0x14) & 0x402" (pointer_expression "*(uint *)(iVar9 + 0x14)" * (cast_expression "(uint *)(iVar9 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "iVar8 = bfd_new_link_order(DAT_001d1414,iVar9);" (assignment_expression "iVar8 = bfd_new_link_order(DAT_001d1414,iVar9)" identifier = (call_expression "bfd_new_link_order(DAT_001d1414,iVar9)" identifier (argument_list "(DAT_001d1414,iVar9)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 == 0) {\n    uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n    FUN_00034d20(uVar10);\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n    FUN_00034d20(uVar10);\n  }" { (expression_statement "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);" (assignment_expression "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" identifier (argument_list "(0,"%F%P: bfd_new_link_order failed\n",5)" ( number_literal , (string_literal ""%F%P: bfd_new_link_order failed\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00034d20(uVar10);" (call_expression "FUN_00034d20(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) })) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 0x20);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 0x20)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x20)" * (cast_expression "(undefined4 *)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined4 *)(param_1 + 0x1c);" (assignment_expression "uVar3 = *(undefined4 *)(param_1 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x1c)" * (cast_expression "(undefined4 *)(param_1 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar8 + 4) = 2;" (assignment_expression "*(undefined4 *)(iVar8 + 4) = 2" (pointer_expression "*(undefined4 *)(iVar8 + 4)" * (cast_expression "(undefined4 *)(iVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar8 + 0xc) = uVar10;" (assignment_expression "*(undefined4 *)(iVar8 + 0xc) = uVar10" (pointer_expression "*(undefined4 *)(iVar8 + 0xc)" * (cast_expression "(undefined4 *)(iVar8 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar8 + 8) = uVar3;" (assignment_expression "*(undefined4 *)(iVar8 + 8) = uVar3" (pointer_expression "*(undefined4 *)(iVar8 + 8)" * (cast_expression "(undefined4 *)(iVar8 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = xmalloc(8);" (assignment_expression "uVar10 = xmalloc(8)" identifier = (call_expression "xmalloc(8)" identifier (argument_list "(8)" ( number_literal )))) ;) (expression_statement "puVar2 = *(undefined1 **)(param_1 + 0x14);" (assignment_expression "puVar2 = *(undefined1 **)(param_1 + 0x14)" identifier = (pointer_expression "*(undefined1 **)(param_1 + 0x14)" * (cast_expression "(undefined1 **)(param_1 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x1c) = uVar10;" (assignment_expression "*(undefined4 *)(iVar8 + 0x1c) = uVar10" (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 0x10);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = CONCAT44(puVar2,uVar10);" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" identifier = (call_expression "CONCAT44(puVar2,uVar10)" identifier (argument_list "(puVar2,uVar10)" ( identifier , identifier )))) ;) (if_statement "if ((*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2) ||\n     (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1)) goto LAB_0002fdbb;" if (parenthesized_expression "((*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2) ||\n     (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1))" ( (binary_expression "(*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2) ||\n     (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1)" (parenthesized_expression "(*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2)" ( (binary_expression "*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2" (pointer_expression "*(uint *)(*(int *)(DAT_001d1414 + 4) + 8)" * (cast_expression "(uint *)(*(int *)(DAT_001d1414 + 4) + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_001d1414 + 4) + 8)" ( (binary_expression "*(int *)(DAT_001d1414 + 4) + 8" (pointer_expression "*(int *)(DAT_001d1414 + 4)" * (cast_expression "(int *)(DAT_001d1414 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1414 + 4)" ( (binary_expression "DAT_001d1414 + 4" identifier + number_literal) )))) + number_literal) )))) < number_literal) )) || (parenthesized_expression "(uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1)" ( (comma_expression "uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" identifier = (call_expression "CONCAT44(puVar2,uVar10)" identifier (argument_list "(puVar2,uVar10)" ( identifier , identifier )))) , (binary_expression "DAT_001d14b0 == 1" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0002fdbb;" goto statement_identifier ;)) (expression_statement "puVar11 = puVar2;" (assignment_expression "puVar11 = puVar2" identifier = identifier) ;) (if_statement "if (DAT_001d14b0 != 2) {\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if ((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))\n    goto LAB_0002fdbb;\n    iVar6 = *(int *)(DAT_001d06bc + 0x10);\n    iVar4 = DAT_001d06bc;\n    while (iVar6 == 0) {\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if (*(int *)(*(int *)(iVar6 + 4) + 8) != 1) goto LAB_0002fdbb;\n  }" if (parenthesized_expression "(DAT_001d14b0 != 2)" ( (binary_expression "DAT_001d14b0 != 2" identifier != number_literal) )) (compound_statement "{\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if ((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))\n    goto LAB_0002fdbb;\n    iVar6 = *(int *)(DAT_001d06bc + 0x10);\n    iVar4 = DAT_001d06bc;\n    while (iVar6 == 0) {\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if (*(int *)(*(int *)(iVar6 + 4) + 8) != 1) goto LAB_0002fdbb;\n  }" { (expression_statement "uVar12 = CONCAT44(puVar2,uVar10);" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" identifier = (call_expression "CONCAT44(puVar2,uVar10)" identifier (argument_list "(puVar2,uVar10)" ( identifier , identifier )))) ;) (if_statement "if ((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))\n    goto LAB_0002fdbb;" if (parenthesized_expression "((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))" ( (binary_expression "(DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0)" (parenthesized_expression "(DAT_001d14b0 != 0)" ( (binary_expression "DAT_001d14b0 != 0" identifier != number_literal) )) || (parenthesized_expression "(uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0)" ( (comma_expression "uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" identifier = (call_expression "CONCAT44(puVar2,uVar10)" identifier (argument_list "(puVar2,uVar10)" ( identifier , identifier )))) , (binary_expression "DAT_001d06bc == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0002fdbb;" goto statement_identifier ;)) (expression_statement "iVar6 = *(int *)(DAT_001d06bc + 0x10);" (assignment_expression "iVar6 = *(int *)(DAT_001d06bc + 0x10)" identifier = (pointer_expression "*(int *)(DAT_001d06bc + 0x10)" * (cast_expression "(int *)(DAT_001d06bc + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d06bc + 0x10)" ( (binary_expression "DAT_001d06bc + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = DAT_001d06bc;" (assignment_expression "iVar4 = DAT_001d06bc" identifier = identifier) ;) (while_statement "while (iVar6 == 0) {\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }" while (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }" { (expression_statement "iVar4 = *(int *)(iVar4 + 0x18);" (assignment_expression "iVar4 = *(int *)(iVar4 + 0x18)" identifier = (pointer_expression "*(int *)(iVar4 + 0x18)" * (cast_expression "(int *)(iVar4 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = CONCAT44(puVar2,uVar10);" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" identifier = (call_expression "CONCAT44(puVar2,uVar10)" identifier (argument_list "(puVar2,uVar10)" ( identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) goto LAB_0002fdbb;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002fdbb;" goto statement_identifier ;)) (expression_statement "puVar11 = &DAT_001d13e0;" (assignment_expression "puVar11 = &DAT_001d13e0" identifier = (pointer_expression "&DAT_001d13e0" & identifier)) ;) (expression_statement "iVar6 = *(int *)(iVar4 + 0x10);" (assignment_expression "iVar6 = *(int *)(iVar4 + 0x10)" identifier = (pointer_expression "*(int *)(iVar4 + 0x10)" * (cast_expression "(int *)(iVar4 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) ))))) ;) })) (expression_statement "uVar12 = CONCAT44(puVar2,uVar10);" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" identifier = (call_expression "CONCAT44(puVar2,uVar10)" identifier (argument_list "(puVar2,uVar10)" ( identifier , identifier )))) ;) (if_statement "if (*(int *)(*(int *)(iVar6 + 4) + 8) != 1) goto LAB_0002fdbb;" if (parenthesized_expression "(*(int *)(*(int *)(iVar6 + 4) + 8) != 1)" ( (binary_expression "*(int *)(*(int *)(iVar6 + 4) + 8) != 1" (pointer_expression "*(int *)(*(int *)(iVar6 + 4) + 8)" * (cast_expression "(int *)(*(int *)(iVar6 + 4) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar6 + 4) + 8)" ( (binary_expression "*(int *)(iVar6 + 4) + 8" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0002fdbb;" goto statement_identifier ;)) })) (expression_statement "uVar12 = CONCAT44(puVar2,uVar10);" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" identifier = (call_expression "CONCAT44(puVar2,uVar10)" identifier (argument_list "(puVar2,uVar10)" ( identifier , identifier )))) ;) (switch_statement "switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    func_0x000169a0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016390(auStack_24);\n    break;\n  case 0x11c:\n    func_0x000167b0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016aa0(auStack_24);\n    break;\n  case 0x11d:\n    func_0x00016ac0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x000167d0(auStack_24);\n    break;\n  case 0x11e:\n    break;\n  default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);\n  }" switch (parenthesized_expression "(*(undefined4 *)(param_1 + 8))" ( (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )) (compound_statement "{\n  case 0x11a:\n  case 0x11b:\n    func_0x000169a0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016390(auStack_24);\n    break;\n  case 0x11c:\n    func_0x000167b0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016aa0(auStack_24);\n    break;\n  case 0x11d:\n    func_0x00016ac0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x000167d0(auStack_24);\n    break;\n  case 0x11e:\n    break;\n  default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);\n  }" { (case_statement "case 0x11a:" case number_literal :) (case_statement "case 0x11b:\n    func_0x000169a0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016390(auStack_24);\n    break;" case number_literal : (expression_statement "func_0x000169a0(uVar10,puVar2,auStack_24);" (call_expression "func_0x000169a0(uVar10,puVar2,auStack_24)" identifier (argument_list "(uVar10,puVar2,auStack_24)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar12 = func_0x00016390(auStack_24);" (assignment_expression "uVar12 = func_0x00016390(auStack_24)" identifier = (call_expression "func_0x00016390(auStack_24)" identifier (argument_list "(auStack_24)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x11c:\n    func_0x000167b0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016aa0(auStack_24);\n    break;" case number_literal : (expression_statement "func_0x000167b0(uVar10,puVar2,auStack_24);" (call_expression "func_0x000167b0(uVar10,puVar2,auStack_24)" identifier (argument_list "(uVar10,puVar2,auStack_24)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar12 = func_0x00016aa0(auStack_24);" (assignment_expression "uVar12 = func_0x00016aa0(auStack_24)" identifier = (call_expression "func_0x00016aa0(auStack_24)" identifier (argument_list "(auStack_24)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x11d:\n    func_0x00016ac0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x000167d0(auStack_24);\n    break;" case number_literal : (expression_statement "func_0x00016ac0(uVar10,puVar2,auStack_24);" (call_expression "func_0x00016ac0(uVar10,puVar2,auStack_24)" identifier (argument_list "(uVar10,puVar2,auStack_24)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar12 = func_0x000167d0(auStack_24);" (assignment_expression "uVar12 = func_0x000167d0(auStack_24)" identifier = (call_expression "func_0x000167d0(auStack_24)" identifier (argument_list "(auStack_24)" ( identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x11e:\n    break;" case number_literal : (break_statement "break;" break ;)) (case_statement "default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);" default : (expression_statement "FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);" (call_expression "FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11)" identifier (argument_list "("../../ld/ldwrite.c",0x86,"build_link_order",puVar11)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal , (string_literal ""build_link_order"" " string_content ") , identifier ))) ;)) })) (labeled_statement "LAB_0002fdbb:\n  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);\n  }" statement_identifier : (if_statement "if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);\n  }" if (parenthesized_expression "(*(int *)(iVar9 + 0xac) != DAT_001d1414)" ( (binary_expression "*(int *)(iVar9 + 0xac) != DAT_001d1414" (pointer_expression "*(int *)(iVar9 + 0xac)" * (cast_expression "(int *)(iVar9 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xac)" ( (binary_expression "iVar9 + 0xac" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n    iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);\n  }" { (expression_statement "iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);" (assignment_expression "iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b)" identifier = (call_expression "FUN_00034d70("../../ld/ldwrite.c",0x8b)" identifier (argument_list "("../../ld/ldwrite.c",0x8b)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal )))) ;) }))) (switch_statement "switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 8;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    uVar10 = 8;\n    break;\n  case 0x11c:\n    uVar10 = 4;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 4;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11d:\n    uVar10 = 2;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 2;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11e:\n    local_3c = (undefined1)uVar12;\n    uVar10 = 1;\n    **(undefined1 **)(iVar8 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar8 + 0x10) = 1;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);\n  }" switch (parenthesized_expression "(*(undefined4 *)(param_1 + 8))" ( (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )) (compound_statement "{\n  case 0x11a:\n  case 0x11b:\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 8;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    uVar10 = 8;\n    break;\n  case 0x11c:\n    uVar10 = 4;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 4;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11d:\n    uVar10 = 2;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 2;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11e:\n    local_3c = (undefined1)uVar12;\n    uVar10 = 1;\n    **(undefined1 **)(iVar8 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar8 + 0x10) = 1;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);\n  }" { (case_statement "case 0x11a:" case number_literal :) (case_statement "case 0x11b:\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 8;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    uVar10 = 8;\n    break;" case number_literal : (expression_statement "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));" (call_expression "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c))" (parenthesized_expression "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))" ( (pointer_expression "**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24)" * (pointer_expression "*(code **)(*(int *)(DAT_001d1414 + 4) + 0x24)" * (cast_expression "(code **)(*(int *)(DAT_001d1414 + 4) + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_001d1414 + 4) + 0x24)" ( (binary_expression "*(int *)(DAT_001d1414 + 4) + 0x24" (pointer_expression "*(int *)(DAT_001d1414 + 4)" * (cast_expression "(int *)(DAT_001d1414 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1414 + 4)" ( (binary_expression "DAT_001d1414 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar12,*(undefined4 *)(iVar8 + 0x1c))" ( identifier , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x10) = 8;" (assignment_expression "*(undefined4 *)(iVar8 + 0x10) = 8" (pointer_expression "*(undefined4 *)(iVar8 + 0x10)" * (cast_expression "(undefined4 *)(iVar8 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" * (cast_expression "(undefined4 *)(iVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar10 = 8;" (assignment_expression "uVar10 = 8" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11c:\n    uVar10 = 4;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 4;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;" case number_literal : (expression_statement "uVar10 = 4;" (assignment_expression "uVar10 = 4" identifier = number_literal) ;) (expression_statement "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));" (call_expression "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c))" (parenthesized_expression "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))" ( (pointer_expression "**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30)" * (pointer_expression "*(code **)(*(int *)(DAT_001d1414 + 4) + 0x30)" * (cast_expression "(code **)(*(int *)(DAT_001d1414 + 4) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_001d1414 + 4) + 0x30)" ( (binary_expression "*(int *)(DAT_001d1414 + 4) + 0x30" (pointer_expression "*(int *)(DAT_001d1414 + 4)" * (cast_expression "(int *)(DAT_001d1414 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1414 + 4)" ( (binary_expression "DAT_001d1414 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar12,*(undefined4 *)(iVar8 + 0x1c))" ( identifier , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x10) = 4;" (assignment_expression "*(undefined4 *)(iVar8 + 0x10) = 4" (pointer_expression "*(undefined4 *)(iVar8 + 0x10)" * (cast_expression "(undefined4 *)(iVar8 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" * (cast_expression "(undefined4 *)(iVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11d:\n    uVar10 = 2;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 2;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;" case number_literal : (expression_statement "uVar10 = 2;" (assignment_expression "uVar10 = 2" identifier = number_literal) ;) (expression_statement "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));" (call_expression "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c))" (parenthesized_expression "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))" ( (pointer_expression "**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c)" * (pointer_expression "*(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c)" * (cast_expression "(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_001d1414 + 4) + 0x3c)" ( (binary_expression "*(int *)(DAT_001d1414 + 4) + 0x3c" (pointer_expression "*(int *)(DAT_001d1414 + 4)" * (cast_expression "(int *)(DAT_001d1414 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d1414 + 4)" ( (binary_expression "DAT_001d1414 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(uVar12,*(undefined4 *)(iVar8 + 0x1c))" ( identifier , (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x10) = 2;" (assignment_expression "*(undefined4 *)(iVar8 + 0x10) = 2" (pointer_expression "*(undefined4 *)(iVar8 + 0x10)" * (cast_expression "(undefined4 *)(iVar8 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" * (cast_expression "(undefined4 *)(iVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 0x11e:\n    local_3c = (undefined1)uVar12;\n    uVar10 = 1;\n    **(undefined1 **)(iVar8 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar8 + 0x10) = 1;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;" case number_literal : (expression_statement "local_3c = (undefined1)uVar12;" (assignment_expression "local_3c = (undefined1)uVar12" identifier = (cast_expression "(undefined1)uVar12" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) (expression_statement "**(undefined1 **)(iVar8 + 0x1c) = local_3c;" (assignment_expression "**(undefined1 **)(iVar8 + 0x1c) = local_3c" (pointer_expression "**(undefined1 **)(iVar8 + 0x1c)" * (pointer_expression "*(undefined1 **)(iVar8 + 0x1c)" * (cast_expression "(undefined1 **)(iVar8 + 0x1c)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar8 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar8 + 0x10)" * (cast_expression "(undefined4 *)(iVar8 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" * (cast_expression "(undefined4 *)(iVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);" default : (expression_statement "FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);" (call_expression "FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9)" identifier (argument_list "("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9)" ( (string_literal ""../../ld/ldwrite.c"" " string_content ") , number_literal , (string_literal ""build_link_order"" " string_content ") , identifier ))) ;)) })) (expression_statement "*(undefined4 *)(iVar8 + 0x18) = uVar10;" (assignment_expression "*(undefined4 *)(iVar8 + 0x18) = uVar10" (pointer_expression "*(undefined4 *)(iVar8 + 0x18)" * (cast_expression "(undefined4 *)(iVar8 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT)) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (string_literal " ")) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (return_statement return ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })) })))))) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) < LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (switch_statement switch (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (break_statement break ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT )))) ;) }))) (switch_statement switch (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (break_statement break ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;)) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })))
(function_definition "void FUN_0002fae0(int param_1)\n\n{\n  uint uVar1;\n  undefined1 *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined1 *puVar11;\n  undefined8 uVar12;\n  undefined1 local_3c;\n  undefined1 auStack_24 [16];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2fae9;\n  uVar1 = *(uint *)(param_1 + 4);\n  if (uVar1 != 8) {\n    if (uVar1 < 9) {\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }\n    else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }\n    return;\n  }\n  iVar9 = *(int *)(param_1 + 0x18);\n  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    FUN_00034d70("../../ld/ldwrite.c",0x33);\n  }\n  if (((*(uint *)(iVar9 + 0x14) & 0x100) == 0) && ((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402)) {\n    return;\n  }\n  iVar8 = bfd_new_link_order(DAT_001d1414,iVar9);\n  if (iVar8 == 0) {\n    uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n    FUN_00034d20(uVar10);\n  }\n  uVar10 = *(undefined4 *)(param_1 + 0x20);\n  uVar3 = *(undefined4 *)(param_1 + 0x1c);\n  *(undefined4 *)(iVar8 + 4) = 2;\n  *(undefined4 *)(iVar8 + 0xc) = uVar10;\n  *(undefined4 *)(iVar8 + 8) = uVar3;\n  uVar10 = xmalloc(8);\n  puVar2 = *(undefined1 **)(param_1 + 0x14);\n  *(undefined4 *)(iVar8 + 0x1c) = uVar10;\n  uVar10 = *(undefined4 *)(param_1 + 0x10);\n  uVar12 = CONCAT44(puVar2,uVar10);\n  if ((*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2) ||\n     (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1)) goto LAB_0002fdbb;\n  puVar11 = puVar2;\n  if (DAT_001d14b0 != 2) {\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if ((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))\n    goto LAB_0002fdbb;\n    iVar6 = *(int *)(DAT_001d06bc + 0x10);\n    iVar4 = DAT_001d06bc;\n    while (iVar6 == 0) {\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if (*(int *)(*(int *)(iVar6 + 4) + 8) != 1) goto LAB_0002fdbb;\n  }\n  uVar12 = CONCAT44(puVar2,uVar10);\n  switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    func_0x000169a0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016390(auStack_24);\n    break;\n  case 0x11c:\n    func_0x000167b0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016aa0(auStack_24);\n    break;\n  case 0x11d:\n    func_0x00016ac0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x000167d0(auStack_24);\n    break;\n  case 0x11e:\n    break;\n  default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);\n  }\nLAB_0002fdbb:\n  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);\n  }\n  switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 8;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    uVar10 = 8;\n    break;\n  case 0x11c:\n    uVar10 = 4;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 4;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11d:\n    uVar10 = 2;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 2;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11e:\n    local_3c = (undefined1)uVar12;\n    uVar10 = 1;\n    **(undefined1 **)(iVar8 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar8 + 0x10) = 1;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);\n  }\n  *(undefined4 *)(iVar8 + 0x18) = uVar10;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0002fae0(int param_1)" (identifier "FUN_0002fae0") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  uint uVar1;\n  undefined1 *puVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 uVar10;\n  undefined1 *puVar11;\n  undefined8 uVar12;\n  undefined1 local_3c;\n  undefined1 auStack_24 [16];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2fae9;\n  uVar1 = *(uint *)(param_1 + 4);\n  if (uVar1 != 8) {\n    if (uVar1 < 9) {\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }\n    else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }\n    return;\n  }\n  iVar9 = *(int *)(param_1 + 0x18);\n  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    FUN_00034d70("../../ld/ldwrite.c",0x33);\n  }\n  if (((*(uint *)(iVar9 + 0x14) & 0x100) == 0) && ((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402)) {\n    return;\n  }\n  iVar8 = bfd_new_link_order(DAT_001d1414,iVar9);\n  if (iVar8 == 0) {\n    uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n    FUN_00034d20(uVar10);\n  }\n  uVar10 = *(undefined4 *)(param_1 + 0x20);\n  uVar3 = *(undefined4 *)(param_1 + 0x1c);\n  *(undefined4 *)(iVar8 + 4) = 2;\n  *(undefined4 *)(iVar8 + 0xc) = uVar10;\n  *(undefined4 *)(iVar8 + 8) = uVar3;\n  uVar10 = xmalloc(8);\n  puVar2 = *(undefined1 **)(param_1 + 0x14);\n  *(undefined4 *)(iVar8 + 0x1c) = uVar10;\n  uVar10 = *(undefined4 *)(param_1 + 0x10);\n  uVar12 = CONCAT44(puVar2,uVar10);\n  if ((*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2) ||\n     (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1)) goto LAB_0002fdbb;\n  puVar11 = puVar2;\n  if (DAT_001d14b0 != 2) {\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if ((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))\n    goto LAB_0002fdbb;\n    iVar6 = *(int *)(DAT_001d06bc + 0x10);\n    iVar4 = DAT_001d06bc;\n    while (iVar6 == 0) {\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if (*(int *)(*(int *)(iVar6 + 4) + 8) != 1) goto LAB_0002fdbb;\n  }\n  uVar12 = CONCAT44(puVar2,uVar10);\n  switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    func_0x000169a0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016390(auStack_24);\n    break;\n  case 0x11c:\n    func_0x000167b0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016aa0(auStack_24);\n    break;\n  case 0x11d:\n    func_0x00016ac0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x000167d0(auStack_24);\n    break;\n  case 0x11e:\n    break;\n  default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);\n  }\nLAB_0002fdbb:\n  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);\n  }\n  switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 8;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    uVar10 = 8;\n    break;\n  case 0x11c:\n    uVar10 = 4;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 4;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11d:\n    uVar10 = 2;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 2;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11e:\n    local_3c = (undefined1)uVar12;\n    uVar10 = 1;\n    **(undefined1 **)(iVar8 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar8 + 0x10) = 1;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);\n  }\n  *(undefined4 *)(iVar8 + 0x18) = uVar10;\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "undefined1 *puVar2;" (type_identifier "undefined1") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "undefined1 *puVar11;" (type_identifier "undefined1") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined8 uVar12;" (type_identifier "undefined8") (identifier "uVar12") (; ";")) (declaration "undefined1 local_3c;" (type_identifier "undefined1") (identifier "local_3c") (; ";")) (declaration "undefined1 auStack_24 [16];" (type_identifier "undefined1") (array_declarator "auStack_24 [16]" (identifier "auStack_24") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x2fae9;" (assignment_expression "uStack_14 = 0x2fae9" (identifier "uStack_14") (= "=") (number_literal "0x2fae9")) (; ";")) (expression_statement "uVar1 = *(uint *)(param_1 + 4);" (assignment_expression "uVar1 = *(uint *)(param_1 + 4)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(param_1 + 4)" (* "*") (cast_expression "(uint *)(param_1 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (uVar1 != 8) {\n    if (uVar1 < 9) {\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }\n    else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(uVar1 != 8)" (( "(") (binary_expression "uVar1 != 8" (identifier "uVar1") (!= "!=") (number_literal "8")) () ")")) (compound_statement "{\n    if (uVar1 < 9) {\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }\n    else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }\n    return;\n  }" ({ "{") (if_statement "if (uVar1 < 9) {\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }\n    else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }" (if "if") (parenthesized_expression "(uVar1 < 9)" (( "(") (binary_expression "uVar1 < 9" (identifier "uVar1") (< "<") (number_literal "9")) () ")")) (compound_statement "{\n      if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }\n    }" ({ "{") (if_statement "if (((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }" (if "if") (parenthesized_expression "(((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0))" (( "(") (binary_expression "((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&\n         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)" (parenthesized_expression "((uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200))" (( "(") (binary_expression "(uVar1 == 5) &&\n          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)" (parenthesized_expression "(uVar1 == 5)" (( "(") (binary_expression "uVar1 == 5" (identifier "uVar1") (== "==") (number_literal "5")) () ")")) (&& "&&") (parenthesized_expression "(iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)" (( "(") (comma_expression "iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200" (assignment_expression "iVar9 = *(int *)(param_1 + 8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (, ",") (binary_expression "(*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200" (parenthesized_expression "(*(ushort *)(iVar9 + 0x18) & 0x380)" (( "(") (binary_expression "*(ushort *)(iVar9 + 0x18) & 0x380" (pointer_expression "*(ushort *)(iVar9 + 0x18)" (* "*") (cast_expression "(ushort *)(iVar9 + 0x18)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")")))) (& "&") (number_literal "0x380")) () ")")) (!= "!=") (number_literal "0x200"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(iVar9 + 0x15) & 0x80) == 0)" (( "(") (binary_expression "(*(byte *)(iVar9 + 0x15) & 0x80) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x15) & 0x80)" (( "(") (binary_expression "*(byte *)(iVar9 + 0x15) & 0x80" (pointer_expression "*(byte *)(iVar9 + 0x15)" (* "*") (cast_expression "(byte *)(iVar9 + 0x15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x15)" (( "(") (binary_expression "iVar9 + 0x15" (identifier "iVar9") (+ "+") (number_literal "0x15")) () ")")))) (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        iVar8 = *(int *)(iVar9 + 0x54);\n        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }\n        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }\n      }" ({ "{") (expression_statement "iVar8 = *(int *)(iVar9 + 0x54);" (assignment_expression "iVar8 = *(int *)(iVar9 + 0x54)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar9 + 0x54)" (* "*") (cast_expression "(int *)(iVar9 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x54)" (( "(") (binary_expression "iVar9 + 0x54" (identifier "iVar9") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar8 + 0xac) != DAT_001d1414)" (( "(") (binary_expression "*(int *)(iVar8 + 0xac) != DAT_001d1414" (pointer_expression "*(int *)(iVar8 + 0xac)" (* "*") (cast_expression "(int *)(iVar8 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0xac)" (( "(") (binary_expression "iVar8 + 0xac" (identifier "iVar8") (+ "+") (number_literal "0xac")) () ")")))) (!= "!=") (identifier "DAT_001d1414")) () ")")) (compound_statement "{\n          FUN_00034d70("../../ld/ldwrite.c",0xf8);\n        }" ({ "{") (expression_statement "FUN_00034d70("../../ld/ldwrite.c",0xf8);" (call_expression "FUN_00034d70("../../ld/ldwrite.c",0xf8)" (identifier "FUN_00034d70") (argument_list "("../../ld/ldwrite.c",0xf8)" (( "(") (string_literal ""../../ld/ldwrite.c"" (" """) (string_content "../../ld/ldwrite.c") (" """)) (, ",") (number_literal "0xf8") () ")"))) (; ";")) (} "}"))) (if_statement "if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           ) {\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }" (if "if") (parenthesized_expression "(((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)\n           )" (( "(") (binary_expression "((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)" (parenthesized_expression "((*(uint *)(iVar8 + 0x14) & 0x100) != 0)" (( "(") (binary_expression "(*(uint *)(iVar8 + 0x14) & 0x100) != 0" (parenthesized_expression "(*(uint *)(iVar8 + 0x14) & 0x100)" (( "(") (binary_expression "*(uint *)(iVar8 + 0x14) & 0x100" (pointer_expression "*(uint *)(iVar8 + 0x14)" (* "*") (cast_expression "(uint *)(iVar8 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x14)" (( "(") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x100")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)" (( "(") (binary_expression "(*(uint *)(iVar8 + 0x14) & 0x402) == 0x402" (parenthesized_expression "(*(uint *)(iVar8 + 0x14) & 0x402)" (( "(") (binary_expression "*(uint *)(iVar8 + 0x14) & 0x402" (pointer_expression "*(uint *)(iVar8 + 0x14)" (* "*") (cast_expression "(uint *)(iVar8 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x14)" (( "(") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x402")) () ")")) (== "==") (number_literal "0x402")) () ")"))) () ")")) (compound_statement "{\n          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);\n          if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }\n          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }\n          uVar10 = *(undefined4 *)(iVar9 + 0x30);\n          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);\n          uVar3 = *(undefined4 *)(iVar9 + 0x4c);\n          *(undefined4 *)(iVar6 + 0x14) = uVar10;\n          uVar10 = *(undefined4 *)(iVar9 + 0x50);\n          *(undefined4 *)(iVar6 + 8) = uVar3;\n          *(undefined4 *)(iVar6 + 0xc) = uVar10;\n        }" ({ "{") (expression_statement "iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);" (assignment_expression "iVar6 = bfd_new_link_order(DAT_001d1414,iVar8)" (identifier "iVar6") (= "=") (call_expression "bfd_new_link_order(DAT_001d1414,iVar8)" (identifier "bfd_new_link_order") (argument_list "(DAT_001d1414,iVar8)" (( "(") (identifier "DAT_001d1414") (, ",") (identifier "iVar8") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) {\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n            FUN_00034d20(uVar10);\n          }" ({ "{") (expression_statement "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);" (assignment_expression "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" (identifier "uVar10") (= "=") (call_expression "dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: bfd_new_link_order failed\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: bfd_new_link_order failed\n"" (" """) (string_content "%F%P: bfd_new_link_order failed") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar10);" (call_expression "FUN_00034d20(uVar10)" (identifier "FUN_00034d20") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }\n          else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }" (if "if") (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200)" (( "(") (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x2200)" (( "(") (binary_expression "*(uint *)(iVar9 + 0x14) & 0x2200" (pointer_expression "*(uint *)(iVar9 + 0x14)" (* "*") (cast_expression "(uint *)(iVar9 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x2200")) () ")")) (== "==") (number_literal "0x200")) () ")")) (compound_statement "{\n            *(undefined4 *)(iVar6 + 4) = 2;\n            *(char **)(iVar6 + 0x1c) = "";\n            *(undefined4 *)(iVar6 + 0x18) = 1;\n          }" ({ "{") (expression_statement "*(undefined4 *)(iVar6 + 4) = 2;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = 2" (pointer_expression "*(undefined4 *)(iVar6 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(char **)(iVar6 + 0x1c) = "";" (assignment_expression "*(char **)(iVar6 + 0x1c) = """ (pointer_expression "*(char **)(iVar6 + 0x1c)" (* "*") (cast_expression "(char **)(iVar6 + 0x1c)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar6 + 0x1c)" (( "(") (binary_expression "iVar6 + 0x1c" (identifier "iVar6") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (string_literal """" (" """) (" """))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0x18) = 1;" (assignment_expression "*(undefined4 *)(iVar6 + 0x18) = 1" (pointer_expression "*(undefined4 *)(iVar6 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x18)" (( "(") (binary_expression "iVar6 + 0x18" (identifier "iVar6") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }" (else "else") (compound_statement "{\n            *(undefined4 *)(iVar6 + 4) = 1;\n            *(int *)(iVar6 + 0x18) = iVar9;\n            if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }\n          }" ({ "{") (expression_statement "*(undefined4 *)(iVar6 + 4) = 1;" (assignment_expression "*(undefined4 *)(iVar6 + 4) = 1" (pointer_expression "*(undefined4 *)(iVar6 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(int *)(iVar6 + 0x18) = iVar9;" (assignment_expression "*(int *)(iVar6 + 0x18) = iVar9" (pointer_expression "*(int *)(iVar6 + 0x18)" (* "*") (cast_expression "(int *)(iVar6 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x18)" (( "(") (binary_expression "iVar6 + 0x18" (identifier "iVar6") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (if_statement "if (*(int *)(iVar9 + 0x54) != iVar8) {\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar9 + 0x54) != iVar8)" (( "(") (binary_expression "*(int *)(iVar9 + 0x54) != iVar8" (pointer_expression "*(int *)(iVar9 + 0x54)" (* "*") (cast_expression "(int *)(iVar9 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x54)" (( "(") (binary_expression "iVar9 + 0x54" (identifier "iVar9") (+ "+") (number_literal "0x54")) () ")")))) (!= "!=") (identifier "iVar8")) () ")")) (compound_statement "{\n              FUN_00034d70("../../ld/ldwrite.c",0x111);\n            }" ({ "{") (expression_statement "FUN_00034d70("../../ld/ldwrite.c",0x111);" (call_expression "FUN_00034d70("../../ld/ldwrite.c",0x111)" (identifier "FUN_00034d70") (argument_list "("../../ld/ldwrite.c",0x111)" (( "(") (string_literal ""../../ld/ldwrite.c"" (" """) (string_content "../../ld/ldwrite.c") (" """)) (, ",") (number_literal "0x111") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar10 = *(undefined4 *)(iVar9 + 0x30);" (assignment_expression "uVar10 = *(undefined4 *)(iVar9 + 0x30)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(iVar9 + 0x30)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x30)" (( "(") (binary_expression "iVar9 + 0x30" (identifier "iVar9") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);" (assignment_expression "*(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c)" (pointer_expression "*(undefined4 *)(iVar6 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x10)" (( "(") (binary_expression "iVar6 + 0x10" (identifier "iVar6") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar9 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x2c)" (( "(") (binary_expression "iVar9 + 0x2c" (identifier "iVar9") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(undefined4 *)(iVar9 + 0x4c);" (assignment_expression "uVar3 = *(undefined4 *)(iVar9 + 0x4c)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(iVar9 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x4c)" (( "(") (binary_expression "iVar9 + 0x4c" (identifier "iVar9") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0x14) = uVar10;" (assignment_expression "*(undefined4 *)(iVar6 + 0x14) = uVar10" (pointer_expression "*(undefined4 *)(iVar6 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x14)" (( "(") (binary_expression "iVar6 + 0x14" (identifier "iVar6") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(iVar9 + 0x50);" (assignment_expression "uVar10 = *(undefined4 *)(iVar9 + 0x50)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(iVar9 + 0x50)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x50)" (( "(") (binary_expression "iVar9 + 0x50" (identifier "iVar9") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 8) = uVar3;" (assignment_expression "*(undefined4 *)(iVar6 + 8) = uVar3" (pointer_expression "*(undefined4 *)(iVar6 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "*(undefined4 *)(iVar6 + 0xc) = uVar10;" (assignment_expression "*(undefined4 *)(iVar6 + 0xc) = uVar10" (pointer_expression "*(undefined4 *)(iVar6 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xc)" (( "(") (binary_expression "iVar6 + 0xc" (identifier "iVar6") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }" (else "else") (if_statement "if (uVar1 == 9) {\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }\n    else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }" (if "if") (parenthesized_expression "(uVar1 == 9)" (( "(") (binary_expression "uVar1 == 9" (identifier "uVar1") (== "==") (number_literal "9")) () ")")) (compound_statement "{\n      iVar9 = *(int *)(param_1 + 0x24);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }\n    }" ({ "{") (expression_statement "iVar9 = *(int *)(param_1 + 0x24);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x24)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar9 + 0xac) != DAT_001d1414)" (( "(") (binary_expression "*(int *)(iVar9 + 0xac) != DAT_001d1414" (pointer_expression "*(int *)(iVar9 + 0xac)" (* "*") (cast_expression "(int *)(iVar9 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xac)" (( "(") (binary_expression "iVar9 + 0xac" (identifier "iVar9") (+ "+") (number_literal "0xac")) () ")")))) (!= "!=") (identifier "DAT_001d1414")) () ")")) (compound_statement "{\n        FUN_00034d70("../../ld/ldwrite.c",0xc5);\n      }" ({ "{") (expression_statement "FUN_00034d70("../../ld/ldwrite.c",0xc5);" (call_expression "FUN_00034d70("../../ld/ldwrite.c",0xc5)" (identifier "FUN_00034d70") (argument_list "("../../ld/ldwrite.c",0xc5)" (( "(") (string_literal ""../../ld/ldwrite.c"" (" """) (string_content "../../ld/ldwrite.c") (" """)) (, ",") (number_literal "0xc5") () ")"))) (; ";")) (} "}"))) (if_statement "if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }" (if "if") (parenthesized_expression "(((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))" (( "(") (binary_expression "((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402)" (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x100) != 0)" (( "(") (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x100) != 0" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x100)" (( "(") (binary_expression "*(uint *)(iVar9 + 0x14) & 0x100" (pointer_expression "*(uint *)(iVar9 + 0x14)" (* "*") (cast_expression "(uint *)(iVar9 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x100")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402)" (( "(") (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x402) == 0x402" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x402)" (( "(") (binary_expression "*(uint *)(iVar9 + 0x14) & 0x402" (pointer_expression "*(uint *)(iVar9 + 0x14)" (* "*") (cast_expression "(uint *)(iVar9 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x402")) () ")")) (== "==") (number_literal "0x402")) () ")"))) () ")")) (compound_statement "{\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x28);\n        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));\n        *(undefined4 *)(iVar9 + 0x14) = 0;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        puVar7 = (undefined4 *)xmalloc(0x10);\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        uVar1 = *(uint *)(param_1 + 0x1c);\n        *(undefined4 **)(iVar9 + 0x18) = puVar7;\n        iVar8 = *(int *)(param_1 + 0x20);\n        *puVar7 = uVar10;\n        iVar6 = *(int *)(param_1 + 0x14);\n        puVar7[2] = uVar1;\n        puVar7[3] = iVar8;\n        iVar4 = DAT_001d1414;\n        if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }\n        puVar7[1] = iVar6;\n      }" ({ "{") (expression_statement "iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);" (assignment_expression "iVar9 = bfd_new_link_order(DAT_001d1414,iVar9)" (identifier "iVar9") (= "=") (call_expression "bfd_new_link_order(DAT_001d1414,iVar9)" (identifier "bfd_new_link_order") (argument_list "(DAT_001d1414,iVar9)" (( "(") (identifier "DAT_001d1414") (, ",") (identifier "iVar9") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }" ({ "{") (expression_statement "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);" (assignment_expression "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" (identifier "uVar10") (= "=") (call_expression "dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: bfd_new_link_order failed\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: bfd_new_link_order failed\n"" (" """) (string_content "%F%P: bfd_new_link_order failed") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar10);" (call_expression "FUN_00034d20(uVar10)" (identifier "FUN_00034d20") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 0x28);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 0x28)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x28)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);" (assignment_expression "*(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c)" (pointer_expression "*(undefined4 *)(iVar9 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc)" (( "(") (binary_expression "iVar9 + 0xc" (identifier "iVar9") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar9 + 8) = uVar10;" (assignment_expression "*(undefined4 *)(iVar9 + 8) = uVar10" (pointer_expression "*(undefined4 *)(iVar9 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 8)" (( "(") (binary_expression "iVar9 + 8" (identifier "iVar9") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));" (assignment_expression "uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc))" (identifier "uVar10") (= "=") (call_expression "bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc))" (identifier "bfd_get_reloc_size") (argument_list "(*(undefined4 *)(param_1 + 0xc))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar9 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar9 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar9 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar9 + 0x10) = uVar10;" (assignment_expression "*(undefined4 *)(iVar9 + 0x10) = uVar10" (pointer_expression "*(undefined4 *)(iVar9 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar7 = (undefined4 *)xmalloc(0x10);" (assignment_expression "puVar7 = (undefined4 *)xmalloc(0x10)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)xmalloc(0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x10)" (identifier "xmalloc") (argument_list "(0x10)" (( "(") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 8)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar1 = *(uint *)(param_1 + 0x1c);" (assignment_expression "uVar1 = *(uint *)(param_1 + 0x1c)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(param_1 + 0x1c)" (* "*") (cast_expression "(uint *)(param_1 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 **)(iVar9 + 0x18) = puVar7;" (assignment_expression "*(undefined4 **)(iVar9 + 0x18) = puVar7" (pointer_expression "*(undefined4 **)(iVar9 + 0x18)" (* "*") (cast_expression "(undefined4 **)(iVar9 + 0x18)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "puVar7")) (; ";")) (expression_statement "iVar8 = *(int *)(param_1 + 0x20);" (assignment_expression "iVar8 = *(int *)(param_1 + 0x20)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(param_1 + 0x20)" (* "*") (cast_expression "(int *)(param_1 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "*puVar7 = uVar10;" (assignment_expression "*puVar7 = uVar10" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "iVar6 = *(int *)(param_1 + 0x14);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x14)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "puVar7[2] = uVar1;" (assignment_expression "puVar7[2] = uVar1" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "puVar7[3] = iVar8;" (assignment_expression "puVar7[3] = iVar8" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "iVar4 = DAT_001d1414;" (assignment_expression "iVar4 = DAT_001d1414" (identifier "iVar4") (= "=") (identifier "DAT_001d1414")) (; ";")) (if_statement "if (iVar6 == 0) {\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }\n        else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar6 = *(int *)(param_1 + 0x10);\n          *(undefined4 *)(iVar9 + 4) = 3;\n          if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }\n        }" ({ "{") (expression_statement "iVar6 = *(int *)(param_1 + 0x10);" (assignment_expression "iVar6 = *(int *)(param_1 + 0x10)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar9 + 4) = 3;" (assignment_expression "*(undefined4 *)(iVar9 + 4) = 3" (pointer_expression "*(undefined4 *)(iVar9 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 4)" (( "(") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "3")) (; ";")) (if_statement "if (*(int *)(iVar6 + 0xac) != iVar4) {\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar6 + 0xac) != iVar4)" (( "(") (binary_expression "*(int *)(iVar6 + 0xac) != iVar4" (pointer_expression "*(int *)(iVar6 + 0xac)" (* "*") (cast_expression "(int *)(iVar6 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0xac)" (( "(") (binary_expression "iVar6 + 0xac" (identifier "iVar6") (+ "+") (number_literal "0xac")) () ")")))) (!= "!=") (identifier "iVar4")) () ")")) (compound_statement "{\n            uVar10 = *(undefined4 *)(iVar6 + 0x54);\n            uVar5 = *(uint *)(iVar6 + 0x4c);\n            iVar9 = *(int *)(iVar6 + 0x50);\n            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);\n            puVar7[1] = uVar10;\n            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);\n            return;\n          }" ({ "{") (expression_statement "uVar10 = *(undefined4 *)(iVar6 + 0x54);" (assignment_expression "uVar10 = *(undefined4 *)(iVar6 + 0x54)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(iVar6 + 0x54)" (* "*") (cast_expression "(undefined4 *)(iVar6 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x54)" (( "(") (binary_expression "iVar6 + 0x54" (identifier "iVar6") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "uVar5 = *(uint *)(iVar6 + 0x4c);" (assignment_expression "uVar5 = *(uint *)(iVar6 + 0x4c)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(iVar6 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar6 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x4c)" (( "(") (binary_expression "iVar6 + 0x4c" (identifier "iVar6") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "iVar9 = *(int *)(iVar6 + 0x50);" (assignment_expression "iVar9 = *(int *)(iVar6 + 0x50)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar6 + 0x50)" (* "*") (cast_expression "(int *)(iVar6 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x50)" (( "(") (binary_expression "iVar6 + 0x50" (identifier "iVar6") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);" (assignment_expression "puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c)" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar1 + *(uint *)(iVar6 + 0x4c)" (identifier "uVar1") (+ "+") (pointer_expression "*(uint *)(iVar6 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar6 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x4c)" (( "(") (binary_expression "iVar6 + 0x4c" (identifier "iVar6") (+ "+") (number_literal "0x4c")) () ")")))))) (; ";")) (expression_statement "puVar7[1] = uVar10;" (assignment_expression "puVar7[1] = uVar10" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);" (assignment_expression "puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5)" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5)" (binary_expression "iVar8 + iVar9" (identifier "iVar8") (+ "+") (identifier "iVar9")) (+ "+") (cast_expression "(uint)CARRY4(uVar1,uVar5)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar1,uVar5)" (identifier "CARRY4") (argument_list "(uVar1,uVar5)" (( "(") (identifier "uVar1") (, ",") (identifier "uVar5") () ")")))))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }" (else "else") (compound_statement "{\n          *(undefined4 *)(iVar9 + 4) = 4;\n        }" ({ "{") (expression_statement "*(undefined4 *)(iVar9 + 4) = 4;" (assignment_expression "*(undefined4 *)(iVar9 + 4) = 4" (pointer_expression "*(undefined4 *)(iVar9 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 4)" (( "(") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "4")) (; ";")) (} "}")))) (expression_statement "puVar7[1] = iVar6;" (assignment_expression "puVar7[1] = iVar6" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }" (else "else") (if_statement "if (uVar1 == 0xc) {\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }" (if "if") (parenthesized_expression "(uVar1 == 0xc)" (( "(") (binary_expression "uVar1 == 0xc" (identifier "uVar1") (== "==") (number_literal "0xc")) () ")")) (compound_statement "{\n      iVar9 = *(int *)(param_1 + 0x18);\n      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }\n      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }\n    }" ({ "{") (expression_statement "iVar9 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x18)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar9 + 0xac) != DAT_001d1414)" (( "(") (binary_expression "*(int *)(iVar9 + 0xac) != DAT_001d1414" (pointer_expression "*(int *)(iVar9 + 0xac)" (* "*") (cast_expression "(int *)(iVar9 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xac)" (( "(") (binary_expression "iVar9 + 0xac" (identifier "iVar9") (+ "+") (number_literal "0xac")) () ")")))) (!= "!=") (identifier "DAT_001d1414")) () ")")) (compound_statement "{\n        FUN_00034d70("../../ld/ldwrite.c",0x121);\n      }" ({ "{") (expression_statement "FUN_00034d70("../../ld/ldwrite.c",0x121);" (call_expression "FUN_00034d70("../../ld/ldwrite.c",0x121)" (identifier "FUN_00034d70") (argument_list "("../../ld/ldwrite.c",0x121)" (( "(") (string_literal ""../../ld/ldwrite.c"" (" """) (string_content "../../ld/ldwrite.c") (" """)) (, ",") (number_literal "0x121") () ")"))) (; ";")) (} "}"))) (if_statement "if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))\n      {\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }" (if "if") (parenthesized_expression "(((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))" (( "(") (binary_expression "((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402)" (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x100) != 0)" (( "(") (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x100) != 0" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x100)" (( "(") (binary_expression "*(uint *)(iVar9 + 0x14) & 0x100" (pointer_expression "*(uint *)(iVar9 + 0x14)" (* "*") (cast_expression "(uint *)(iVar9 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x100")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402)" (( "(") (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x402) == 0x402" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x402)" (( "(") (binary_expression "*(uint *)(iVar9 + 0x14) & 0x402" (pointer_expression "*(uint *)(iVar9 + 0x14)" (* "*") (cast_expression "(uint *)(iVar9 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x402")) () ")")) (== "==") (number_literal "0x402")) () ")"))) () ")")) (compound_statement "{\n        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);\n        if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }\n        uVar10 = *(undefined4 *)(param_1 + 0x10);\n        uVar3 = *(undefined4 *)(param_1 + 0x14);\n        *(undefined4 *)(iVar9 + 4) = 2;\n        *(undefined4 *)(iVar9 + 0x10) = uVar10;\n        uVar10 = *(undefined4 *)(param_1 + 8);\n        *(undefined4 *)(iVar9 + 0x14) = uVar3;\n        uVar3 = *(undefined4 *)(param_1 + 0xc);\n        *(undefined4 *)(iVar9 + 8) = uVar10;\n        puVar7 = *(undefined4 **)(param_1 + 0x1c);\n        *(undefined4 *)(iVar9 + 0xc) = uVar3;\n        uVar10 = *puVar7;\n        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;\n        *(undefined4 *)(iVar9 + 0x18) = uVar10;\n        return;\n      }" ({ "{") (expression_statement "iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);" (assignment_expression "iVar9 = bfd_new_link_order(DAT_001d1414,iVar9)" (identifier "iVar9") (= "=") (call_expression "bfd_new_link_order(DAT_001d1414,iVar9)" (identifier "bfd_new_link_order") (argument_list "(DAT_001d1414,iVar9)" (( "(") (identifier "DAT_001d1414") (, ",") (identifier "iVar9") () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n          FUN_00034d20(uVar10);\n        }" ({ "{") (expression_statement "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);" (assignment_expression "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" (identifier "uVar10") (= "=") (call_expression "dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: bfd_new_link_order failed\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: bfd_new_link_order failed\n"" (" """) (string_content "%F%P: bfd_new_link_order failed") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar10);" (call_expression "FUN_00034d20(uVar10)" (identifier "FUN_00034d20") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 0x10);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 0x10)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(undefined4 *)(param_1 + 0x14);" (assignment_expression "uVar3 = *(undefined4 *)(param_1 + 0x14)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x14)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar9 + 4) = 2;" (assignment_expression "*(undefined4 *)(iVar9 + 4) = 2" (pointer_expression "*(undefined4 *)(iVar9 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 4)" (( "(") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(undefined4 *)(iVar9 + 0x10) = uVar10;" (assignment_expression "*(undefined4 *)(iVar9 + 0x10) = uVar10" (pointer_expression "*(undefined4 *)(iVar9 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 8);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 8)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar9 + 0x14) = uVar3;" (assignment_expression "*(undefined4 *)(iVar9 + 0x14) = uVar3" (pointer_expression "*(undefined4 *)(iVar9 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "uVar3 = *(undefined4 *)(param_1 + 0xc);" (assignment_expression "uVar3 = *(undefined4 *)(param_1 + 0xc)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar9 + 8) = uVar10;" (assignment_expression "*(undefined4 *)(iVar9 + 8) = uVar10" (pointer_expression "*(undefined4 *)(iVar9 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 8)" (( "(") (binary_expression "iVar9 + 8" (identifier "iVar9") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar7 = *(undefined4 **)(param_1 + 0x1c);" (assignment_expression "puVar7 = *(undefined4 **)(param_1 + 0x1c)" (identifier "puVar7") (= "=") (pointer_expression "*(undefined4 **)(param_1 + 0x1c)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x1c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar9 + 0xc) = uVar3;" (assignment_expression "*(undefined4 *)(iVar9 + 0xc) = uVar3" (pointer_expression "*(undefined4 *)(iVar9 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc)" (( "(") (binary_expression "iVar9 + 0xc" (identifier "iVar9") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "uVar10 = *puVar7;" (assignment_expression "uVar10 = *puVar7" (identifier "uVar10") (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "*(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;" (assignment_expression "*(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1" (pointer_expression "*(undefined4 **)(iVar9 + 0x1c)" (* "*") (cast_expression "(undefined4 **)(iVar9 + 0x1c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x1c)" (( "(") (binary_expression "iVar9 + 0x1c" (identifier "iVar9") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)(iVar9 + 0x18) = uVar10;" (assignment_expression "*(undefined4 *)(iVar9 + 0x18) = uVar10" (pointer_expression "*(undefined4 *)(iVar9 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))))))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar9 = *(int *)(param_1 + 0x18);" (assignment_expression "iVar9 = *(int *)(param_1 + 0x18)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_1 + 0x18)" (* "*") (cast_expression "(int *)(param_1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    FUN_00034d70("../../ld/ldwrite.c",0x33);\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar9 + 0xac) != DAT_001d1414)" (( "(") (binary_expression "*(int *)(iVar9 + 0xac) != DAT_001d1414" (pointer_expression "*(int *)(iVar9 + 0xac)" (* "*") (cast_expression "(int *)(iVar9 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xac)" (( "(") (binary_expression "iVar9 + 0xac" (identifier "iVar9") (+ "+") (number_literal "0xac")) () ")")))) (!= "!=") (identifier "DAT_001d1414")) () ")")) (compound_statement "{\n    FUN_00034d70("../../ld/ldwrite.c",0x33);\n  }" ({ "{") (expression_statement "FUN_00034d70("../../ld/ldwrite.c",0x33);" (call_expression "FUN_00034d70("../../ld/ldwrite.c",0x33)" (identifier "FUN_00034d70") (argument_list "("../../ld/ldwrite.c",0x33)" (( "(") (string_literal ""../../ld/ldwrite.c"" (" """) (string_content "../../ld/ldwrite.c") (" """)) (, ",") (number_literal "0x33") () ")"))) (; ";")) (} "}"))) (if_statement "if (((*(uint *)(iVar9 + 0x14) & 0x100) == 0) && ((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402)) {\n    return;\n  }" (if "if") (parenthesized_expression "(((*(uint *)(iVar9 + 0x14) & 0x100) == 0) && ((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402))" (( "(") (binary_expression "((*(uint *)(iVar9 + 0x14) & 0x100) == 0) && ((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402)" (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x100) == 0)" (( "(") (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x100) == 0" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x100)" (( "(") (binary_expression "*(uint *)(iVar9 + 0x14) & 0x100" (pointer_expression "*(uint *)(iVar9 + 0x14)" (* "*") (cast_expression "(uint *)(iVar9 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x100")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402)" (( "(") (binary_expression "(*(uint *)(iVar9 + 0x14) & 0x402) != 0x402" (parenthesized_expression "(*(uint *)(iVar9 + 0x14) & 0x402)" (( "(") (binary_expression "*(uint *)(iVar9 + 0x14) & 0x402" (pointer_expression "*(uint *)(iVar9 + 0x14)" (* "*") (cast_expression "(uint *)(iVar9 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x402")) () ")")) (!= "!=") (number_literal "0x402")) () ")"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar8 = bfd_new_link_order(DAT_001d1414,iVar9);" (assignment_expression "iVar8 = bfd_new_link_order(DAT_001d1414,iVar9)" (identifier "iVar8") (= "=") (call_expression "bfd_new_link_order(DAT_001d1414,iVar9)" (identifier "bfd_new_link_order") (argument_list "(DAT_001d1414,iVar9)" (( "(") (identifier "DAT_001d1414") (, ",") (identifier "iVar9") () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n    uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n    FUN_00034d20(uVar10);\n  }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);\n    FUN_00034d20(uVar10);\n  }" ({ "{") (expression_statement "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);" (assignment_expression "uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" (identifier "uVar10") (= "=") (call_expression "dcgettext(0,"%F%P: bfd_new_link_order failed\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: bfd_new_link_order failed\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: bfd_new_link_order failed\n"" (" """) (string_content "%F%P: bfd_new_link_order failed") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00034d20(uVar10);" (call_expression "FUN_00034d20(uVar10)" (identifier "FUN_00034d20") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 0x20);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 0x20)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x20)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(undefined4 *)(param_1 + 0x1c);" (assignment_expression "uVar3 = *(undefined4 *)(param_1 + 0x1c)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 4) = 2;" (assignment_expression "*(undefined4 *)(iVar8 + 4) = 2" (pointer_expression "*(undefined4 *)(iVar8 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0xc) = uVar10;" (assignment_expression "*(undefined4 *)(iVar8 + 0xc) = uVar10" (pointer_expression "*(undefined4 *)(iVar8 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0xc)" (( "(") (binary_expression "iVar8 + 0xc" (identifier "iVar8") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 8) = uVar3;" (assignment_expression "*(undefined4 *)(iVar8 + 8) = uVar3" (pointer_expression "*(undefined4 *)(iVar8 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "uVar10 = xmalloc(8);" (assignment_expression "uVar10 = xmalloc(8)" (identifier "uVar10") (= "=") (call_expression "xmalloc(8)" (identifier "xmalloc") (argument_list "(8)" (( "(") (number_literal "8") () ")")))) (; ";")) (expression_statement "puVar2 = *(undefined1 **)(param_1 + 0x14);" (assignment_expression "puVar2 = *(undefined1 **)(param_1 + 0x14)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined1 **)(param_1 + 0x14)" (* "*") (cast_expression "(undefined1 **)(param_1 + 0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0x1c) = uVar10;" (assignment_expression "*(undefined4 *)(iVar8 + 0x1c) = uVar10" (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "uVar10 = *(undefined4 *)(param_1 + 0x10);" (assignment_expression "uVar10 = *(undefined4 *)(param_1 + 0x10)" (identifier "uVar10") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar12 = CONCAT44(puVar2,uVar10);" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" (identifier "uVar12") (= "=") (call_expression "CONCAT44(puVar2,uVar10)" (identifier "CONCAT44") (argument_list "(puVar2,uVar10)" (( "(") (identifier "puVar2") (, ",") (identifier "uVar10") () ")")))) (; ";")) (if_statement "if ((*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2) ||\n     (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1)) goto LAB_0002fdbb;" (if "if") (parenthesized_expression "((*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2) ||\n     (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1))" (( "(") (binary_expression "(*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2) ||\n     (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1)" (parenthesized_expression "(*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2)" (( "(") (binary_expression "*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2" (pointer_expression "*(uint *)(*(int *)(DAT_001d1414 + 4) + 8)" (* "*") (cast_expression "(uint *)(*(int *)(DAT_001d1414 + 4) + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_001d1414 + 4) + 8)" (( "(") (binary_expression "*(int *)(DAT_001d1414 + 4) + 8" (pointer_expression "*(int *)(DAT_001d1414 + 4)" (* "*") (cast_expression "(int *)(DAT_001d1414 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d1414 + 4)" (( "(") (binary_expression "DAT_001d1414 + 4" (identifier "DAT_001d1414") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (< "<") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1)" (( "(") (comma_expression "uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" (identifier "uVar12") (= "=") (call_expression "CONCAT44(puVar2,uVar10)" (identifier "CONCAT44") (argument_list "(puVar2,uVar10)" (( "(") (identifier "puVar2") (, ",") (identifier "uVar10") () ")")))) (, ",") (binary_expression "DAT_001d14b0 == 1" (identifier "DAT_001d14b0") (== "==") (number_literal "1"))) () ")"))) () ")")) (goto_statement "goto LAB_0002fdbb;" (goto "goto") (statement_identifier "LAB_0002fdbb") (; ";"))) (expression_statement "puVar11 = puVar2;" (assignment_expression "puVar11 = puVar2" (identifier "puVar11") (= "=") (identifier "puVar2")) (; ";")) (if_statement "if (DAT_001d14b0 != 2) {\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if ((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))\n    goto LAB_0002fdbb;\n    iVar6 = *(int *)(DAT_001d06bc + 0x10);\n    iVar4 = DAT_001d06bc;\n    while (iVar6 == 0) {\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if (*(int *)(*(int *)(iVar6 + 4) + 8) != 1) goto LAB_0002fdbb;\n  }" (if "if") (parenthesized_expression "(DAT_001d14b0 != 2)" (( "(") (binary_expression "DAT_001d14b0 != 2" (identifier "DAT_001d14b0") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if ((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))\n    goto LAB_0002fdbb;\n    iVar6 = *(int *)(DAT_001d06bc + 0x10);\n    iVar4 = DAT_001d06bc;\n    while (iVar6 == 0) {\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }\n    uVar12 = CONCAT44(puVar2,uVar10);\n    if (*(int *)(*(int *)(iVar6 + 4) + 8) != 1) goto LAB_0002fdbb;\n  }" ({ "{") (expression_statement "uVar12 = CONCAT44(puVar2,uVar10);" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" (identifier "uVar12") (= "=") (call_expression "CONCAT44(puVar2,uVar10)" (identifier "CONCAT44") (argument_list "(puVar2,uVar10)" (( "(") (identifier "puVar2") (, ",") (identifier "uVar10") () ")")))) (; ";")) (if_statement "if ((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))\n    goto LAB_0002fdbb;" (if "if") (parenthesized_expression "((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))" (( "(") (binary_expression "(DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0)" (parenthesized_expression "(DAT_001d14b0 != 0)" (( "(") (binary_expression "DAT_001d14b0 != 0" (identifier "DAT_001d14b0") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0)" (( "(") (comma_expression "uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" (identifier "uVar12") (= "=") (call_expression "CONCAT44(puVar2,uVar10)" (identifier "CONCAT44") (argument_list "(puVar2,uVar10)" (( "(") (identifier "puVar2") (, ",") (identifier "uVar10") () ")")))) (, ",") (binary_expression "DAT_001d06bc == 0" (identifier "DAT_001d06bc") (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0002fdbb;" (goto "goto") (statement_identifier "LAB_0002fdbb") (; ";"))) (expression_statement "iVar6 = *(int *)(DAT_001d06bc + 0x10);" (assignment_expression "iVar6 = *(int *)(DAT_001d06bc + 0x10)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(DAT_001d06bc + 0x10)" (* "*") (cast_expression "(int *)(DAT_001d06bc + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d06bc + 0x10)" (( "(") (binary_expression "DAT_001d06bc + 0x10" (identifier "DAT_001d06bc") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar4 = DAT_001d06bc;" (assignment_expression "iVar4 = DAT_001d06bc" (identifier "iVar4") (= "=") (identifier "DAT_001d06bc")) (; ";")) (while_statement "while (iVar6 == 0) {\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }" (while "while") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar4 = *(int *)(iVar4 + 0x18);\n      uVar12 = CONCAT44(puVar2,uVar10);\n      if (iVar4 == 0) goto LAB_0002fdbb;\n      puVar11 = &DAT_001d13e0;\n      iVar6 = *(int *)(iVar4 + 0x10);\n    }" ({ "{") (expression_statement "iVar4 = *(int *)(iVar4 + 0x18);" (assignment_expression "iVar4 = *(int *)(iVar4 + 0x18)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar4 + 0x18)" (* "*") (cast_expression "(int *)(iVar4 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "uVar12 = CONCAT44(puVar2,uVar10);" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" (identifier "uVar12") (= "=") (call_expression "CONCAT44(puVar2,uVar10)" (identifier "CONCAT44") (argument_list "(puVar2,uVar10)" (( "(") (identifier "puVar2") (, ",") (identifier "uVar10") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_0002fdbb;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002fdbb;" (goto "goto") (statement_identifier "LAB_0002fdbb") (; ";"))) (expression_statement "puVar11 = &DAT_001d13e0;" (assignment_expression "puVar11 = &DAT_001d13e0" (identifier "puVar11") (= "=") (pointer_expression "&DAT_001d13e0" (& "&") (identifier "DAT_001d13e0"))) (; ";")) (expression_statement "iVar6 = *(int *)(iVar4 + 0x10);" (assignment_expression "iVar6 = *(int *)(iVar4 + 0x10)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar4 + 0x10)" (* "*") (cast_expression "(int *)(iVar4 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar12 = CONCAT44(puVar2,uVar10);" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" (identifier "uVar12") (= "=") (call_expression "CONCAT44(puVar2,uVar10)" (identifier "CONCAT44") (argument_list "(puVar2,uVar10)" (( "(") (identifier "puVar2") (, ",") (identifier "uVar10") () ")")))) (; ";")) (if_statement "if (*(int *)(*(int *)(iVar6 + 4) + 8) != 1) goto LAB_0002fdbb;" (if "if") (parenthesized_expression "(*(int *)(*(int *)(iVar6 + 4) + 8) != 1)" (( "(") (binary_expression "*(int *)(*(int *)(iVar6 + 4) + 8) != 1" (pointer_expression "*(int *)(*(int *)(iVar6 + 4) + 8)" (* "*") (cast_expression "(int *)(*(int *)(iVar6 + 4) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar6 + 4) + 8)" (( "(") (binary_expression "*(int *)(iVar6 + 4) + 8" (pointer_expression "*(int *)(iVar6 + 4)" (* "*") (cast_expression "(int *)(iVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_0002fdbb;" (goto "goto") (statement_identifier "LAB_0002fdbb") (; ";"))) (} "}"))) (expression_statement "uVar12 = CONCAT44(puVar2,uVar10);" (assignment_expression "uVar12 = CONCAT44(puVar2,uVar10)" (identifier "uVar12") (= "=") (call_expression "CONCAT44(puVar2,uVar10)" (identifier "CONCAT44") (argument_list "(puVar2,uVar10)" (( "(") (identifier "puVar2") (, ",") (identifier "uVar10") () ")")))) (; ";")) (switch_statement "switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    func_0x000169a0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016390(auStack_24);\n    break;\n  case 0x11c:\n    func_0x000167b0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016aa0(auStack_24);\n    break;\n  case 0x11d:\n    func_0x00016ac0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x000167d0(auStack_24);\n    break;\n  case 0x11e:\n    break;\n  default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);\n  }" (switch "switch") (parenthesized_expression "(*(undefined4 *)(param_1 + 8))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) () ")")) (compound_statement "{\n  case 0x11a:\n  case 0x11b:\n    func_0x000169a0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016390(auStack_24);\n    break;\n  case 0x11c:\n    func_0x000167b0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016aa0(auStack_24);\n    break;\n  case 0x11d:\n    func_0x00016ac0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x000167d0(auStack_24);\n    break;\n  case 0x11e:\n    break;\n  default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);\n  }" ({ "{") (case_statement "case 0x11a:" (case "case") (number_literal "0x11a") (: ":")) (case_statement "case 0x11b:\n    func_0x000169a0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016390(auStack_24);\n    break;" (case "case") (number_literal "0x11b") (: ":") (expression_statement "func_0x000169a0(uVar10,puVar2,auStack_24);" (call_expression "func_0x000169a0(uVar10,puVar2,auStack_24)" (identifier "func_0x000169a0") (argument_list "(uVar10,puVar2,auStack_24)" (( "(") (identifier "uVar10") (, ",") (identifier "puVar2") (, ",") (identifier "auStack_24") () ")"))) (; ";")) (expression_statement "uVar12 = func_0x00016390(auStack_24);" (assignment_expression "uVar12 = func_0x00016390(auStack_24)" (identifier "uVar12") (= "=") (call_expression "func_0x00016390(auStack_24)" (identifier "func_0x00016390") (argument_list "(auStack_24)" (( "(") (identifier "auStack_24") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x11c:\n    func_0x000167b0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x00016aa0(auStack_24);\n    break;" (case "case") (number_literal "0x11c") (: ":") (expression_statement "func_0x000167b0(uVar10,puVar2,auStack_24);" (call_expression "func_0x000167b0(uVar10,puVar2,auStack_24)" (identifier "func_0x000167b0") (argument_list "(uVar10,puVar2,auStack_24)" (( "(") (identifier "uVar10") (, ",") (identifier "puVar2") (, ",") (identifier "auStack_24") () ")"))) (; ";")) (expression_statement "uVar12 = func_0x00016aa0(auStack_24);" (assignment_expression "uVar12 = func_0x00016aa0(auStack_24)" (identifier "uVar12") (= "=") (call_expression "func_0x00016aa0(auStack_24)" (identifier "func_0x00016aa0") (argument_list "(auStack_24)" (( "(") (identifier "auStack_24") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x11d:\n    func_0x00016ac0(uVar10,puVar2,auStack_24);\n    uVar12 = func_0x000167d0(auStack_24);\n    break;" (case "case") (number_literal "0x11d") (: ":") (expression_statement "func_0x00016ac0(uVar10,puVar2,auStack_24);" (call_expression "func_0x00016ac0(uVar10,puVar2,auStack_24)" (identifier "func_0x00016ac0") (argument_list "(uVar10,puVar2,auStack_24)" (( "(") (identifier "uVar10") (, ",") (identifier "puVar2") (, ",") (identifier "auStack_24") () ")"))) (; ";")) (expression_statement "uVar12 = func_0x000167d0(auStack_24);" (assignment_expression "uVar12 = func_0x000167d0(auStack_24)" (identifier "uVar12") (= "=") (call_expression "func_0x000167d0(auStack_24)" (identifier "func_0x000167d0") (argument_list "(auStack_24)" (( "(") (identifier "auStack_24") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x11e:\n    break;" (case "case") (number_literal "0x11e") (: ":") (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);" (default "default") (: ":") (expression_statement "FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);" (call_expression "FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11)" (identifier "FUN_00033e90") (argument_list "("../../ld/ldwrite.c",0x86,"build_link_order",puVar11)" (( "(") (string_literal ""../../ld/ldwrite.c"" (" """) (string_content "../../ld/ldwrite.c") (" """)) (, ",") (number_literal "0x86") (, ",") (string_literal ""build_link_order"" (" """) (string_content "build_link_order") (" """)) (, ",") (identifier "puVar11") () ")"))) (; ";"))) (} "}"))) (labeled_statement "LAB_0002fdbb:\n  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);\n  }" (statement_identifier "LAB_0002fdbb") (: ":") (if_statement "if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {\n    iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar9 + 0xac) != DAT_001d1414)" (( "(") (binary_expression "*(int *)(iVar9 + 0xac) != DAT_001d1414" (pointer_expression "*(int *)(iVar9 + 0xac)" (* "*") (cast_expression "(int *)(iVar9 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xac)" (( "(") (binary_expression "iVar9 + 0xac" (identifier "iVar9") (+ "+") (number_literal "0xac")) () ")")))) (!= "!=") (identifier "DAT_001d1414")) () ")")) (compound_statement "{\n    iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);\n  }" ({ "{") (expression_statement "iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);" (assignment_expression "iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b)" (identifier "iVar9") (= "=") (call_expression "FUN_00034d70("../../ld/ldwrite.c",0x8b)" (identifier "FUN_00034d70") (argument_list "("../../ld/ldwrite.c",0x8b)" (( "(") (string_literal ""../../ld/ldwrite.c"" (" """) (string_content "../../ld/ldwrite.c") (" """)) (, ",") (number_literal "0x8b") () ")")))) (; ";")) (} "}")))) (switch_statement "switch(*(undefined4 *)(param_1 + 8)) {\n  case 0x11a:\n  case 0x11b:\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 8;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    uVar10 = 8;\n    break;\n  case 0x11c:\n    uVar10 = 4;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 4;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11d:\n    uVar10 = 2;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 2;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11e:\n    local_3c = (undefined1)uVar12;\n    uVar10 = 1;\n    **(undefined1 **)(iVar8 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar8 + 0x10) = 1;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);\n  }" (switch "switch") (parenthesized_expression "(*(undefined4 *)(param_1 + 8))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) () ")")) (compound_statement "{\n  case 0x11a:\n  case 0x11b:\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 8;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    uVar10 = 8;\n    break;\n  case 0x11c:\n    uVar10 = 4;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 4;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11d:\n    uVar10 = 2;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 2;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  case 0x11e:\n    local_3c = (undefined1)uVar12;\n    uVar10 = 1;\n    **(undefined1 **)(iVar8 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar8 + 0x10) = 1;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;\n  default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);\n  }" ({ "{") (case_statement "case 0x11a:" (case "case") (number_literal "0x11a") (: ":")) (case_statement "case 0x11b:\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 8;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    uVar10 = 8;\n    break;" (case "case") (number_literal "0x11b") (: ":") (expression_statement "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));" (call_expression "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c))" (parenthesized_expression "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))" (( "(") (pointer_expression "**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24)" (* "*") (pointer_expression "*(code **)(*(int *)(DAT_001d1414 + 4) + 0x24)" (* "*") (cast_expression "(code **)(*(int *)(DAT_001d1414 + 4) + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_001d1414 + 4) + 0x24)" (( "(") (binary_expression "*(int *)(DAT_001d1414 + 4) + 0x24" (pointer_expression "*(int *)(DAT_001d1414 + 4)" (* "*") (cast_expression "(int *)(DAT_001d1414 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d1414 + 4)" (( "(") (binary_expression "DAT_001d1414 + 4" (identifier "DAT_001d1414") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(uVar12,*(undefined4 *)(iVar8 + 0x1c))" (( "(") (identifier "uVar12") (, ",") (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0x10) = 8;" (assignment_expression "*(undefined4 *)(iVar8 + 0x10) = 8" (pointer_expression "*(undefined4 *)(iVar8 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "8")) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x14)" (( "(") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar10 = 8;" (assignment_expression "uVar10 = 8" (identifier "uVar10") (= "=") (number_literal "8")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x11c:\n    uVar10 = 4;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 4;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;" (case "case") (number_literal "0x11c") (: ":") (expression_statement "uVar10 = 4;" (assignment_expression "uVar10 = 4" (identifier "uVar10") (= "=") (number_literal "4")) (; ";")) (expression_statement "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));" (call_expression "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c))" (parenthesized_expression "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))" (( "(") (pointer_expression "**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30)" (* "*") (pointer_expression "*(code **)(*(int *)(DAT_001d1414 + 4) + 0x30)" (* "*") (cast_expression "(code **)(*(int *)(DAT_001d1414 + 4) + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_001d1414 + 4) + 0x30)" (( "(") (binary_expression "*(int *)(DAT_001d1414 + 4) + 0x30" (pointer_expression "*(int *)(DAT_001d1414 + 4)" (* "*") (cast_expression "(int *)(DAT_001d1414 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d1414 + 4)" (( "(") (binary_expression "DAT_001d1414 + 4" (identifier "DAT_001d1414") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(uVar12,*(undefined4 *)(iVar8 + 0x1c))" (( "(") (identifier "uVar12") (, ",") (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0x10) = 4;" (assignment_expression "*(undefined4 *)(iVar8 + 0x10) = 4" (pointer_expression "*(undefined4 *)(iVar8 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x14)" (( "(") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x11d:\n    uVar10 = 2;\n    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));\n    *(undefined4 *)(iVar8 + 0x10) = 2;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;" (case "case") (number_literal "0x11d") (: ":") (expression_statement "uVar10 = 2;" (assignment_expression "uVar10 = 2" (identifier "uVar10") (= "=") (number_literal "2")) (; ";")) (expression_statement "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));" (call_expression "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c))" (parenthesized_expression "(**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))" (( "(") (pointer_expression "**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c)" (* "*") (pointer_expression "*(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c)" (* "*") (cast_expression "(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_001d1414 + 4) + 0x3c)" (( "(") (binary_expression "*(int *)(DAT_001d1414 + 4) + 0x3c" (pointer_expression "*(int *)(DAT_001d1414 + 4)" (* "*") (cast_expression "(int *)(DAT_001d1414 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d1414 + 4)" (( "(") (binary_expression "DAT_001d1414 + 4" (identifier "DAT_001d1414") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x3c")) () ")"))))) () ")")) (argument_list "(uVar12,*(undefined4 *)(iVar8 + 0x1c))" (( "(") (identifier "uVar12") (, ",") (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0x10) = 2;" (assignment_expression "*(undefined4 *)(iVar8 + 0x10) = 2" (pointer_expression "*(undefined4 *)(iVar8 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x14)" (( "(") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x11e:\n    local_3c = (undefined1)uVar12;\n    uVar10 = 1;\n    **(undefined1 **)(iVar8 + 0x1c) = local_3c;\n    *(undefined4 *)(iVar8 + 0x10) = 1;\n    *(undefined4 *)(iVar8 + 0x14) = 0;\n    break;" (case "case") (number_literal "0x11e") (: ":") (expression_statement "local_3c = (undefined1)uVar12;" (assignment_expression "local_3c = (undefined1)uVar12" (identifier "local_3c") (= "=") (cast_expression "(undefined1)uVar12" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uVar12"))) (; ";")) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" (identifier "uVar10") (= "=") (number_literal "1")) (; ";")) (expression_statement "**(undefined1 **)(iVar8 + 0x1c) = local_3c;" (assignment_expression "**(undefined1 **)(iVar8 + 0x1c) = local_3c" (pointer_expression "**(undefined1 **)(iVar8 + 0x1c)" (* "*") (pointer_expression "*(undefined1 **)(iVar8 + 0x1c)" (* "*") (cast_expression "(undefined1 **)(iVar8 + 0x1c)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")"))))) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar8 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar8 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar8 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar8 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x14)" (( "(") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n                    \n    FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);" (default "default") (: ":") (expression_statement "FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);" (call_expression "FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9)" (identifier "FUN_00033e90") (argument_list "("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9)" (( "(") (string_literal ""../../ld/ldwrite.c"" (" """) (string_content "../../ld/ldwrite.c") (" """)) (, ",") (number_literal "0xb6") (, ",") (string_literal ""build_link_order"" (" """) (string_content "build_link_order") (" """)) (, ",") (identifier "iVar9") () ")"))) (; ";"))) (} "}"))) (expression_statement "*(undefined4 *)(iVar8 + 0x18) = uVar10;" (assignment_expression "*(undefined4 *)(iVar8 + 0x18) = uVar10" (pointer_expression "*(undefined4 *)(iVar8 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x18)" (( "(") (binary_expression "iVar8 + 0x18" (identifier "iVar8") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1(type_1 *statement)

{
  void **ppvVar1;
  type_2 var_1;
  type_3 *paVar3;
  type_4 *var_10;
  type_5 **pplVar5;
  type_6 *pnVar6;
  type_7 *pwVar7;
  type_8 bVar8;
  type_5 *var_23;
  type_9 uVar10;
  void *pvVar11;
  type_9 var_16;
  type_10 *var_14;
  type_11 uVar14;
  type_11 *puVar15;
  int var_7;
  char *pcVar17;
  type_10 *var_13;
  type_12 bVar19;
  type_13 local_3c;
  type_14 buffer [8];
  
  var_1 = (statement->header).type;
  if (var_1 != var_2) {
    if (var_1 < var_3) {
      if (((var_1 == var_4) &&
          (paVar3 = (statement->input_section).section,
          (*(type_15 *)&paVar3->field_0x18 & 0x380) != 0x200)) && ((paVar3->flags & 0x8000) == 0)) {
        var_10 = paVar3->output_section;
        if (var_10->owner != link_info.output_bfd) {
          var_5("../../ld/ldwrite.c",0xf8);
        }
        if (((var_10->flags & 0x100) != 0) || ((var_10->flags & 0x402) == 0x402)) {
          var_7 = var_6(link_info.output_bfd,var_10);
          if (var_7 == 0) {
            pcVar17 = (char *)var_8(0,"%F%P: bfd_new_link_order failed\n",5);
            var_9(pcVar17);
          }
          if ((paVar3->flags & 0x2200) == 0x200) {
            *(type_11 *)(var_7 + 4) = 2;
            *(char **)(var_7 + 0x1c) = "";
            *(type_11 *)(var_7 + 0x18) = 1;
          }
          else {
            *(type_11 *)(var_7 + 4) = 1;
            *(type_3 **)(var_7 + 0x18) = paVar3;
            if (paVar3->output_section != var_10) {
              var_5("../../ld/ldwrite.c",0x111);
            }
          }
          uVar14 = *(type_11 *)((int)&paVar3->size + 4);
          *(int *)(var_7 + 0x10) = (int)paVar3->size;
          bVar19 = paVar3->output_offset;
          *(type_11 *)(var_7 + 0x14) = uVar14;
          uVar14 = *(type_11 *)((int)&paVar3->output_offset + 4);
          *(int *)(var_7 + 8) = (int)bVar19;
          *(type_11 *)(var_7 + 0xc) = uVar14;
        }
      }
    }
    else if (var_1 == var_3) {
      paVar3 = (statement->reloc_statement).output_section;
      if (paVar3->owner != link_info.output_bfd) {
        var_5("../../ld/ldwrite.c",0xc5);
      }
      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {
        var_7 = var_6(link_info.output_bfd,paVar3);
        if (var_7 == 0) {
          pcVar17 = (char *)var_8(0,"%F%P: bfd_new_link_order failed\n",5);
          var_9(pcVar17);
        }
        pwVar7 = (statement->wild_statement).handler_data[0];
        *(type_7 **)(var_7 + 0xc) = (statement->wild_statement).handler_data[1];
        *(type_7 **)(var_7 + 8) = pwVar7;
        uVar14 = var_11((statement->wild_statement).filenames_sorted);
        *(type_11 *)(var_7 + 0x14) = 0;
        *(type_11 *)(var_7 + 0x10) = uVar14;
        puVar15 = (type_11 *)var_12(0x10);
        pcVar17 = (statement->wild_statement).filename;
        pplVar5 = (statement->wild_statement).children.tail;
        *(type_11 **)(var_7 + 0x18) = puVar15;
        pnVar6 = (statement->wild_statement).exclude_name_list;
        *puVar15 = pcVar17;
        var_13 = (type_10 *)(statement->wild_statement).keep_sections;
        puVar15[2] = pplVar5;
        puVar15[3] = pnVar6;
        var_14 = link_info.output_bfd;
        if (var_13 == (type_10 *)0x0) {
          var_13 = (statement->input_statement).the_bfd;
          *(type_11 *)(var_7 + 4) = 3;
          if ((type_10 *)var_13->build_id != var_14) {
            uVar10 = (var_13->section_htab).count;
            ppvVar1 = &(var_13->section_htab).memory;
            pvVar11 = *ppvVar1;
            var_16 = (var_13->section_htab).size;
            puVar15[2] = (int)pplVar5 + (int)*ppvVar1;
            puVar15[1] = uVar10;
            puVar15[3] = (int)&pnVar6->name + var_15((type_9)pplVar5,(type_9)pvVar11) + var_16;
            return;
          }
        }
        else {
          *(type_11 *)(var_7 + 4) = 4;
        }
        puVar15[1] = var_13;
      }
    }
    else if (var_1 == var_17) {
      paVar3 = (statement->data_statement).output_section;
      if (paVar3->owner != link_info.output_bfd) {
        var_5("../../ld/ldwrite.c",0x121);
      }
      if (((paVar3->flags & 0x100) != 0) || ((paVar3->flags & 0x402) == 0x402)) {
        var_7 = var_6(link_info.output_bfd,paVar3);
        if (var_7 == 0) {
          pcVar17 = (char *)var_8(0,"%F%P: bfd_new_link_order failed\n",5);
          var_9(pcVar17);
        }
        pwVar7 = (statement->wild_statement).section_list;
        bVar8 = (statement->wild_statement).keep_sections;
        *(type_11 *)(var_7 + 4) = 2;
        *(type_7 **)(var_7 + 0x10) = pwVar7;
        pcVar17 = (statement->wild_statement).filename;
        *(type_8 *)(var_7 + 0x14) = bVar8;
        bVar8 = (statement->wild_statement).filenames_sorted;
        *(char **)(var_7 + 8) = pcVar17;
        paVar3 = (statement->output_section_statement).type_4;
        *(type_8 *)(var_7 + 0xc) = bVar8;
        pcVar17 = paVar3->name;
        *(type_9 **)(var_7 + 0x1c) = &paVar3->id;
        *(char **)(var_7 + 0x18) = pcVar17;
        return;
      }
    }
    return;
  }
  paVar3 = (statement->data_statement).output_section;
  if (paVar3->owner != link_info.output_bfd) {
    var_5("../../ld/ldwrite.c",0x33);
  }
  if (((paVar3->flags & 0x100) == 0) && ((paVar3->flags & 0x402) != 0x402)) {
    return;
  }
  var_7 = var_6(link_info.output_bfd,paVar3);
  if (var_7 == 0) {
    pcVar17 = (char *)var_8(0,"%F%P: bfd_new_link_order failed\n",5);
    var_9(pcVar17);
  }
  pnVar6 = (statement->wild_statement).exclude_name_list;
  pplVar5 = (statement->wild_statement).children.tail;
  *(type_11 *)(var_7 + 4) = 2;
  *(type_6 **)(var_7 + 0xc) = pnVar6;
  *(type_5 ***)(var_7 + 8) = pplVar5;
  uVar14 = var_12(8);
  bVar8 = (statement->wild_statement).keep_sections;
  *(type_11 *)(var_7 + 0x1c) = uVar14;
  pwVar7 = (statement->wild_statement).section_list;
  bVar19 = var_18(bVar8,pwVar7);
  if (((link_info.output_bfd)->xvec->byteorder < var_19) ||
     (bVar19 = var_18(bVar8,pwVar7), command_line.endian == var_20)) goto _L11;
  if (command_line.endian != var_21) {
    bVar19 = var_18(bVar8,pwVar7);
    if ((command_line.endian != var_22) ||
       (bVar19 = var_18(bVar8,pwVar7), file_chain.head == (type_5 *)0x0)) goto _L11;
    var_10 = (type_4 *)((file_chain.head)->input_statement).the_bfd;
    var_23 = file_chain.head;
    while (var_10 == (type_4 *)0x0) {
      var_23 = (type_5 *)(var_23->data_statement).output_section;
      bVar19 = var_18(bVar8,pwVar7);
      if (var_23 == (type_5 *)0x0) goto _L11;
      var_10 = (type_4 *)(var_23->input_statement).the_bfd;
    }
    bVar19 = var_18(bVar8,pwVar7);
    if (((type_16 *)var_10->id)->byteorder != var_24) goto _L11;
  }
  bVar19 = var_18(bVar8,pwVar7);
  switch((statement->data_statement).type) {
  case 0x11a:
  case 0x11b:
    var_25(pwVar7,bVar8,buffer);
    bVar19 = var_26(buffer);
    break;
  case 0x11c:
    var_27(pwVar7,bVar8,buffer);
    bVar19 = var_28(buffer);
    break;
  case 0x11d:
    var_29(pwVar7,bVar8,buffer);
    bVar19 = var_30(buffer);
    break;
  case 0x11e:
    break;
  default:
                    /* WARNING: Subroutine does not return */
    var_31("../../ld/ldwrite.c",0x86,"build_link_order");
  }
_L11:
  if (paVar3->owner != link_info.output_bfd) {
    var_5("../../ld/ldwrite.c",0x8b);
  }
  switch((statement->data_statement).type) {
  case 0x11a:
  case 0x11b:
    (*(link_info.output_bfd)->xvec->bfd_putx64)(bVar19,*(void **)(var_7 + 0x1c));
    *(type_11 *)(var_7 + 0x10) = 8;
    *(type_11 *)(var_7 + 0x14) = 0;
    uVar14 = 8;
    break;
  case 0x11c:
    uVar14 = 4;
    (*(link_info.output_bfd)->xvec->bfd_putx32)(bVar19,*(void **)(var_7 + 0x1c));
    *(type_11 *)(var_7 + 0x10) = 4;
    *(type_11 *)(var_7 + 0x14) = 0;
    break;
  case 0x11d:
    uVar14 = 2;
    (*(link_info.output_bfd)->xvec->bfd_putx16)(bVar19,*(void **)(var_7 + 0x1c));
    *(type_11 *)(var_7 + 0x10) = 2;
    *(type_11 *)(var_7 + 0x14) = 0;
    break;
  case 0x11e:
    local_3c = (type_13)bVar19;
    uVar14 = 1;
    **(type_13 **)(var_7 + 0x1c) = local_3c;
    *(type_11 *)(var_7 + 0x10) = 1;
    *(type_11 *)(var_7 + 0x14) = 0;
    break;
  default:
                    /* WARNING: Subroutine does not return */
    var_31("../../ld/ldwrite.c",0xb6,"build_link_order");
  }
  *(type_11 *)(var_7 + 0x18) = uVar14;
  return;
}


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

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

void MASKED(int param_1)

{
  uint uVar1;
  undefined1 *puVar2;
  undefined4 uVar3;
  int iVar4;
  uint uVar5;
  int iVar6;
  undefined4 *puVar7;
  int iVar8;
  int iVar9;
  undefined4 uVar10;
  undefined1 *puVar11;
  undefined8 uVar12;
  undefined1 local_3c;
  undefined1 auStack_24 [16];
  undefined4 uStack_14;
  
  uStack_14 = 0x2fae9;
  uVar1 = *(uint *)(param_1 + 4);
  if (uVar1 != 8) {
    if (uVar1 < 9) {
      if (((uVar1 == 5) &&
          (iVar9 = *(int *)(param_1 + 8), (*(ushort *)(iVar9 + 0x18) & 0x380) != 0x200)) &&
         ((*(byte *)(iVar9 + 0x15) & 0x80) == 0)) {
        iVar8 = *(int *)(iVar9 + 0x54);
        if (*(int *)(iVar8 + 0xac) != DAT_001d1414) {
          FUN_00034d70("../../ld/ldwrite.c",0xf8);
        }
        if (((*(uint *)(iVar8 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar8 + 0x14) & 0x402) == 0x402)
           ) {
          iVar6 = bfd_new_link_order(DAT_001d1414,iVar8);
          if (iVar6 == 0) {
            uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);
            FUN_00034d20(uVar10);
          }
          if ((*(uint *)(iVar9 + 0x14) & 0x2200) == 0x200) {
            *(undefined4 *)(iVar6 + 4) = 2;
            *(char **)(iVar6 + 0x1c) = "";
            *(undefined4 *)(iVar6 + 0x18) = 1;
          }
          else {
            *(undefined4 *)(iVar6 + 4) = 1;
            *(int *)(iVar6 + 0x18) = iVar9;
            if (*(int *)(iVar9 + 0x54) != iVar8) {
              FUN_00034d70("../../ld/ldwrite.c",0x111);
            }
          }
          uVar10 = *(undefined4 *)(iVar9 + 0x30);
          *(undefined4 *)(iVar6 + 0x10) = *(undefined4 *)(iVar9 + 0x2c);
          uVar3 = *(undefined4 *)(iVar9 + 0x4c);
          *(undefined4 *)(iVar6 + 0x14) = uVar10;
          uVar10 = *(undefined4 *)(iVar9 + 0x50);
          *(undefined4 *)(iVar6 + 8) = uVar3;
          *(undefined4 *)(iVar6 + 0xc) = uVar10;
        }
      }
    }
    else if (uVar1 == 9) {
      iVar9 = *(int *)(param_1 + 0x24);
      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {
        FUN_00034d70("../../ld/ldwrite.c",0xc5);
      }
      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))
      {
        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);
        if (iVar9 == 0) {
          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);
          FUN_00034d20(uVar10);
        }
        uVar10 = *(undefined4 *)(param_1 + 0x28);
        *(undefined4 *)(iVar9 + 0xc) = *(undefined4 *)(param_1 + 0x2c);
        *(undefined4 *)(iVar9 + 8) = uVar10;
        uVar10 = bfd_get_reloc_size(*(undefined4 *)(param_1 + 0xc));
        *(undefined4 *)(iVar9 + 0x14) = 0;
        *(undefined4 *)(iVar9 + 0x10) = uVar10;
        puVar7 = (undefined4 *)xmalloc(0x10);
        uVar10 = *(undefined4 *)(param_1 + 8);
        uVar1 = *(uint *)(param_1 + 0x1c);
        *(undefined4 **)(iVar9 + 0x18) = puVar7;
        iVar8 = *(int *)(param_1 + 0x20);
        *puVar7 = uVar10;
        iVar6 = *(int *)(param_1 + 0x14);
        puVar7[2] = uVar1;
        puVar7[3] = iVar8;
        iVar4 = DAT_001d1414;
        if (iVar6 == 0) {
          iVar6 = *(int *)(param_1 + 0x10);
          *(undefined4 *)(iVar9 + 4) = 3;
          if (*(int *)(iVar6 + 0xac) != iVar4) {
            uVar10 = *(undefined4 *)(iVar6 + 0x54);
            uVar5 = *(uint *)(iVar6 + 0x4c);
            iVar9 = *(int *)(iVar6 + 0x50);
            puVar7[2] = uVar1 + *(uint *)(iVar6 + 0x4c);
            puVar7[1] = uVar10;
            puVar7[3] = iVar8 + iVar9 + (uint)CARRY4(uVar1,uVar5);
            return;
          }
        }
        else {
          *(undefined4 *)(iVar9 + 4) = 4;
        }
        puVar7[1] = iVar6;
      }
    }
    else if (uVar1 == 0xc) {
      iVar9 = *(int *)(param_1 + 0x18);
      if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {
        FUN_00034d70("../../ld/ldwrite.c",0x121);
      }
      if (((*(uint *)(iVar9 + 0x14) & 0x100) != 0) || ((*(uint *)(iVar9 + 0x14) & 0x402) == 0x402))
      {
        iVar9 = bfd_new_link_order(DAT_001d1414,iVar9);
        if (iVar9 == 0) {
          uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);
          FUN_00034d20(uVar10);
        }
        uVar10 = *(undefined4 *)(param_1 + 0x10);
        uVar3 = *(undefined4 *)(param_1 + 0x14);
        *(undefined4 *)(iVar9 + 4) = 2;
        *(undefined4 *)(iVar9 + 0x10) = uVar10;
        uVar10 = *(undefined4 *)(param_1 + 8);
        *(undefined4 *)(iVar9 + 0x14) = uVar3;
        uVar3 = *(undefined4 *)(param_1 + 0xc);
        *(undefined4 *)(iVar9 + 8) = uVar10;
        puVar7 = *(undefined4 **)(param_1 + 0x1c);
        *(undefined4 *)(iVar9 + 0xc) = uVar3;
        uVar10 = *puVar7;
        *(undefined4 **)(iVar9 + 0x1c) = puVar7 + 1;
        *(undefined4 *)(iVar9 + 0x18) = uVar10;
        return;
      }
    }
    return;
  }
  iVar9 = *(int *)(param_1 + 0x18);
  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {
    FUN_00034d70("../../ld/ldwrite.c",0x33);
  }
  if (((*(uint *)(iVar9 + 0x14) & 0x100) == 0) && ((*(uint *)(iVar9 + 0x14) & 0x402) != 0x402)) {
    return;
  }
  iVar8 = bfd_new_link_order(DAT_001d1414,iVar9);
  if (iVar8 == 0) {
    uVar10 = dcgettext(0,"%F%P: bfd_new_link_order failed\n",5);
    FUN_00034d20(uVar10);
  }
  uVar10 = *(undefined4 *)(param_1 + 0x20);
  uVar3 = *(undefined4 *)(param_1 + 0x1c);
  *(undefined4 *)(iVar8 + 4) = 2;
  *(undefined4 *)(iVar8 + 0xc) = uVar10;
  *(undefined4 *)(iVar8 + 8) = uVar3;
  uVar10 = xmalloc(8);
  puVar2 = *(undefined1 **)(param_1 + 0x14);
  *(undefined4 *)(iVar8 + 0x1c) = uVar10;
  uVar10 = *(undefined4 *)(param_1 + 0x10);
  uVar12 = CONCAT44(puVar2,uVar10);
  if ((*(uint *)(*(int *)(DAT_001d1414 + 4) + 8) < 2) ||
     (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d14b0 == 1)) goto LAB_0002fdbb;
  puVar11 = puVar2;
  if (DAT_001d14b0 != 2) {
    uVar12 = CONCAT44(puVar2,uVar10);
    if ((DAT_001d14b0 != 0) || (uVar12 = CONCAT44(puVar2,uVar10), DAT_001d06bc == 0))
    goto LAB_0002fdbb;
    iVar6 = *(int *)(DAT_001d06bc + 0x10);
    iVar4 = DAT_001d06bc;
    while (iVar6 == 0) {
      iVar4 = *(int *)(iVar4 + 0x18);
      uVar12 = CONCAT44(puVar2,uVar10);
      if (iVar4 == 0) goto LAB_0002fdbb;
      puVar11 = &DAT_001d13e0;
      iVar6 = *(int *)(iVar4 + 0x10);
    }
    uVar12 = CONCAT44(puVar2,uVar10);
    if (*(int *)(*(int *)(iVar6 + 4) + 8) != 1) goto LAB_0002fdbb;
  }
  uVar12 = CONCAT44(puVar2,uVar10);
  switch(*(undefined4 *)(param_1 + 8)) {
  case 0x11a:
  case 0x11b:
    func_0x000169a0(uVar10,puVar2,auStack_24);
    uVar12 = func_0x00016390(auStack_24);
    break;
  case 0x11c:
    func_0x000167b0(uVar10,puVar2,auStack_24);
    uVar12 = func_0x00016aa0(auStack_24);
    break;
  case 0x11d:
    func_0x00016ac0(uVar10,puVar2,auStack_24);
    uVar12 = func_0x000167d0(auStack_24);
    break;
  case 0x11e:
    break;
  default:
                    /* WARNING: Subroutine does not return */
    FUN_00033e90("../../ld/ldwrite.c",0x86,"build_link_order",puVar11);
  }
LAB_0002fdbb:
  if (*(int *)(iVar9 + 0xac) != DAT_001d1414) {
    iVar9 = FUN_00034d70("../../ld/ldwrite.c",0x8b);
  }
  switch(*(undefined4 *)(param_1 + 8)) {
  case 0x11a:
  case 0x11b:
    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x24))(uVar12,*(undefined4 *)(iVar8 + 0x1c));
    *(undefined4 *)(iVar8 + 0x10) = 8;
    *(undefined4 *)(iVar8 + 0x14) = 0;
    uVar10 = 8;
    break;
  case 0x11c:
    uVar10 = 4;
    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x30))(uVar12,*(undefined4 *)(iVar8 + 0x1c));
    *(undefined4 *)(iVar8 + 0x10) = 4;
    *(undefined4 *)(iVar8 + 0x14) = 0;
    break;
  case 0x11d:
    uVar10 = 2;
    (**(code **)(*(int *)(DAT_001d1414 + 4) + 0x3c))(uVar12,*(undefined4 *)(iVar8 + 0x1c));
    *(undefined4 *)(iVar8 + 0x10) = 2;
    *(undefined4 *)(iVar8 + 0x14) = 0;
    break;
  case 0x11e:
    local_3c = (undefined1)uVar12;
    uVar10 = 1;
    **(undefined1 **)(iVar8 + 0x1c) = local_3c;
    *(undefined4 *)(iVar8 + 0x10) = 1;
    *(undefined4 *)(iVar8 + 0x14) = 0;
    break;
  default:
                    /* WARNING: Subroutine does not return */
    FUN_00033e90("../../ld/ldwrite.c",0xb6,"build_link_order",iVar9);
  }
  *(undefined4 *)(iVar8 + 0x18) = uVar10;
  return;
}

