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

lang_output_section_statement_type *
gldelf_iamcu_place_orphan(asection *s,char *secname,int constraint)

{
  bfd_flavour bVar1;
  bfd_flavour bVar2;
  flagword fVar3;
  lang_output_section_statement_type *plVar4;
  bfd *pbVar5;
  asection *paVar6;
  lang_statement_union *plVar7;
  int iVar8;
  uint uVar9;
  asection *paVar10;
  byte *pbVar11;
  orphan_save *poVar12;
  lang_statement_union *plVar13;
  lang_statement_union *plVar14;
  byte *pbVar15;
  bool bVar16;
  bool bVar17;
  bool bVar18;
  bool bVar19;
  byte bVar20;
  uint local_48;
  orphan_save *local_44;
  lang_statement_union *local_40;
  lang_statement_union *local_38;
  lang_statement_union *local_34;
  lang_statement_union *local_28;
  
  bVar20 = 0;
  local_34 = (lang_statement_union *)0x0;
  bVar1 = s->owner->xvec->flavour;
  bVar17 = bVar1 == bfd_target_elf_flavour;
  bVar2 = (link_info.output_bfd)->xvec->flavour;
  if (bVar17) {
    local_34 = *(lang_statement_union **)((int)s->used_by_bfd + 4);
  }
  if ((link_info._0_1_ & 3) == 2) {
LAB_00047c3c:
    bVar19 = false;
  }
  else if ((link_info._4_1_ & 0x40) == 0) {
    bVar19 = false;
LAB_00047b5c:
    if (((bVar17) && (bVar2 == bfd_target_elf_flavour)) && (uVar9 = s->flags, (uVar9 & 1) != 0)) {
LAB_00047b7b:
      if ((*(byte *)((int)s->used_by_bfd + 0xb) & 1) != 0) {
        if (lang_output_section_statement.head != (lang_statement_union *)0x0) {
          plVar7 = lang_output_section_statement.head;
          do {
            paVar6 = (plVar7->output_section_statement).bfd_section;
            if (((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&
                (paVar6 != (asection *)0x0)) &&
               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&
                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&
                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))
                 ))))) goto LAB_00047fcb;
            plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list;
          } while (plVar7 != (lang_statement_union *)0x0);
        }
        secname = ".mbind.bss";
        if (((uVar9 & 0x102) != 0) && (secname = ".mbind.data", (uVar9 & 8) != 0)) {
          secname = ".mbind.text";
          if ((uVar9 & 0x10) == 0) {
            secname = ".mbind.rodata";
          }
        }
      }
    }
  }
  else {
    uVar9 = s->flags;
    if ((uVar9 & 1) == 0) goto LAB_00047c3c;
    bVar16 = bVar1 < bfd_target_elf_flavour;
    bVar18 = bVar1 == bfd_target_elf_flavour;
    if (bVar18) {
      if (local_34 == (lang_statement_union *)0x4) {
        secname = ".rela.dyn";
        bVar19 = true;
        goto LAB_00047b5c;
      }
      bVar19 = local_34 == (lang_statement_union *)0x9;
      if (bVar19) {
        secname = ".rel.dyn";
      }
      if (bVar2 == bfd_target_elf_flavour) goto LAB_00047b7b;
    }
    else {
      iVar8 = 4;
      bVar19 = false;
      pbVar11 = (byte *)secname;
      pbVar15 = &DAT_000ae302;
      do {
        if (iVar8 == 0) break;
        iVar8 = iVar8 + -1;
        bVar16 = *pbVar11 < *pbVar15;
        bVar18 = *pbVar11 == *pbVar15;
        pbVar11 = pbVar11 + 1;
        pbVar15 = pbVar15 + 1;
      } while (bVar18);
      if ((!bVar16 && !bVar18) == bVar16) {
        bVar19 = true;
        if (secname[4] == 'a') {
          secname = ".rela.dyn";
        }
        else {
          secname = ".rel.dyn";
        }
      }
    }
  }
  if ((constraint == 0) &&
     (plVar7 = (lang_statement_union *)lang_output_section_statement_lookup(secname,0,0),
     plVar7 != (lang_statement_union *)0x0)) {
    plVar14 = (lang_statement_union *)0x0;
    do {
      paVar6 = (plVar7->output_section_statement).bfd_section;
      plVar13 = plVar7;
      if (paVar6 != (asection *)0x0) {
        if (paVar6->flags == 0) goto LAB_00047fcb;
        plVar13 = plVar14;
        if (((paVar6->flags ^ s->flags) & 3) == 0) {
          if ((bVar1 != bfd_target_elf_flavour) || (bVar2 != bfd_target_elf_flavour))
          goto LAB_00047fcb;
          if ((*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c)) &&
             (((link_info._0_1_ & 3) != 2 ||
              (-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^
                         *(uint *)((int)s->used_by_bfd + 8)))))) {
            iVar8 = _bfd_elf_match_sections_by_type(link_info.output_bfd,paVar6,s->owner,s);
            if (iVar8 != 0) goto LAB_00047fcb;
            if ((plVar7->wild_statement).children.tail == (lang_statement_union **)0x0) {
              plVar13 = plVar7;
            }
          }
        }
      }
      plVar7 = (lang_statement_union *)
               next_matching_output_section_statement(&plVar7->output_section_statement,0);
      plVar14 = plVar13;
    } while (plVar7 != (lang_statement_union *)0x0);
    constraint = 0x17e;
    if (plVar13 != (lang_statement_union *)0x0) {
      lang_add_section(&(plVar13->output_section_statement).children,s,(flag_info *)0x0,
                       &plVar13->output_section_statement);
      return (lang_output_section_statement_type *)plVar13;
    }
  }
  if (gldelf_iamcu_place_orphan::orphan_init_done == 0) {
    poVar12 = gldelf_iamcu_place_orphan::hold;
    do {
      if (poVar12->name != (char *)0x0) {
        plVar4 = lang_output_section_statement_lookup(poVar12->name,0,0);
        poVar12->os = plVar4;
        if ((plVar4 != (lang_output_section_statement_type *)0x0) && (plVar4->flags == 0)) {
          plVar4->flags = poVar12->flags;
        }
      }
      poVar12 = poVar12 + 1;
    } while (poVar12 != (orphan_save *)&DAT_001ce938);
    gldelf_iamcu_place_orphan::orphan_init_done = 1;
  }
  bVar16 = false;
  bVar18 = (link_info._0_1_ & 2) == 0;
  if (bVar18) {
    iVar8 = 0xd;
    pbVar11 = (byte *)s->name;
    pbVar15 = (byte *)".gnu.warning.";
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      bVar16 = *pbVar11 < *pbVar15;
      bVar18 = *pbVar11 == *pbVar15;
      pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;
      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
    } while (bVar18);
    if (((!bVar16 && !bVar18) == bVar16) &&
       (plVar7 = (lang_statement_union *)gldelf_iamcu_place_orphan::hold[0].os,
       gldelf_iamcu_place_orphan::hold[0].os != (lang_output_section_statement_type *)0x0)) {
LAB_00047fcb:
      lang_add_section(&(plVar7->output_section_statement).children,s,(flag_info *)0x0,
                       &plVar7->output_section_statement);
      return (lang_output_section_statement_type *)plVar7;
    }
  }
  local_48 = s->flags;
  if ((link_info._0_1_ & 3) != 2) {
    pbVar5 = s->owner;
    paVar6 = s;
    while (paVar6 = (asection *)bfd_get_next_section_by_name(pbVar5,paVar6),
          paVar6 != (asection *)0x0) {
      pbVar5 = paVar6->owner;
      if ((((paVar6->output_section == (bfd_section *)0x0) &&
           (((local_48 ^ paVar6->flags) & 3) == 0 && (paVar6->flags & 0x8000) == 0)) &&
          ((pbVar5->field_0x29 & 8) == 0)) &&
         ((pbVar5->usrdata != (void *)0x0 && ((*(byte *)((int)pbVar5->usrdata + 0x24) & 0x10) == 0))
         )) {
        iVar8 = _bfd_elf_match_sections_by_type(pbVar5,paVar6,s->owner,s);
        if (iVar8 != 0) {
          local_48 = (paVar6->flags ^ 8 | local_48 ^ 8) ^ 8;
        }
        pbVar5 = paVar6->owner;
      }
    }
  }
  if ((local_48 & 0x2001) == 0) {
    local_44 = gldelf_iamcu_place_orphan::hold + 8;
    goto LAB_00047da5;
  }
  if ((local_48 & 1) == 0) {
    local_44 = (orphan_save *)0x0;
    local_40 = (lang_statement_union *)0x0;
    goto LAB_00047db8;
  }
  if ((local_48 & 2) == 0) {
LAB_00047e40:
    local_44 = gldelf_iamcu_place_orphan::hold + 4;
    if (((((local_48 & 0x502) != 0) &&
         (local_44 = gldelf_iamcu_place_orphan::hold + 7, (local_48 & 0x400000) == 0)) &&
        (local_44 = gldelf_iamcu_place_orphan::hold + 2, (local_48 & 0x400) == 0)) &&
       (local_44 = gldelf_iamcu_place_orphan::hold + 3, (local_48 & 8) != 0)) {
      bVar17 = bVar1 < bfd_target_elf_flavour;
      bVar16 = bVar1 == bfd_target_elf_flavour;
      if (bVar16) {
        if ((local_34 == (lang_statement_union *)0x4) || (local_34 == (lang_statement_union *)0x9))
        goto LAB_00047ebf;
      }
      else {
        iVar8 = 4;
        pbVar11 = (byte *)secname;
        pbVar15 = &DAT_000ae302;
        do {
          if (iVar8 == 0) break;
          iVar8 = iVar8 + -1;
          bVar17 = *pbVar11 < *pbVar15;
          bVar16 = *pbVar11 == *pbVar15;
          pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;
          pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
        } while (bVar16);
        if ((!bVar17 && !bVar16) == bVar17) {
LAB_00047ebf:
          local_44 = gldelf_iamcu_place_orphan::hold + 5;
          if ((local_48 & 2) != 0) goto LAB_00047da5;
        }
      }
      local_44 = gldelf_iamcu_place_orphan::hold;
      if ((local_48 & 0x10) == 0) {
        local_44 = gldelf_iamcu_place_orphan::hold + 1;
      }
    }
  }
  else if ((local_34 != (lang_statement_union *)0x7) ||
          (local_44 = gldelf_iamcu_place_orphan::hold + 6, !bVar17)) {
    bVar17 = bVar1 < bfd_target_elf_flavour;
    bVar16 = bVar1 == bfd_target_elf_flavour;
    if (!bVar16) {
      iVar8 = 5;
      pbVar11 = (byte *)secname;
      pbVar15 = (byte *)".note";
      do {
        if (iVar8 == 0) break;
        iVar8 = iVar8 + -1;
        bVar17 = *pbVar11 < *pbVar15;
        bVar16 = *pbVar11 == *pbVar15;
        pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;
        pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
      } while (bVar16);
      local_44 = gldelf_iamcu_place_orphan::hold + 6;
      if ((!bVar17 && !bVar16) == bVar17) goto LAB_00047da5;
    }
    goto LAB_00047e40;
  }
LAB_00047da5:
  local_40 = (lang_statement_union *)local_44->os;
  if (local_40 != (lang_statement_union *)0x0) goto LAB_00047db8;
  if (local_44->name == (char *)0x0) {
    if (lang_output_section_statement.head != (lang_statement_union *)0x0) {
      local_38 = (lang_statement_union *)0x0;
      local_28 = (lang_statement_union *)0x0;
      local_40 = (lang_statement_union *)0x0;
      local_34 = (lang_statement_union *)0x0;
      plVar14 = lang_output_section_statement.head;
      plVar7 = (lang_statement_union *)0x0;
      do {
        plVar13 = plVar14;
        bVar17 = false;
        bVar16 = (plVar13->output_section_statement).constraint == 0;
        if ((plVar13->output_section_statement).constraint < 0) {
LAB_00048272:
          paVar6 = (plVar13->output_section_statement).bfd_section;
LAB_00048240:
          if (paVar6 != (asection *)0x0) {
            fVar3 = paVar6->flags;
            plVar7 = local_40;
joined_r0x00048289:
            if (((fVar3 & 1) != 0) && (local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0)) {
              local_38 = plVar13;
            }
          }
        }
        else {
          paVar6 = (plVar13->data_statement).output_section;
          iVar8 = 4;
          paVar10 = paVar6;
          pbVar11 = &DAT_000ae302;
          do {
            if (iVar8 == 0) break;
            iVar8 = iVar8 + -1;
            bVar17 = *(byte *)&paVar10->name < *pbVar11;
            bVar16 = *(byte *)&paVar10->name == *pbVar11;
            paVar10 = (asection *)((int)paVar10 + (uint)bVar20 * -2 + 1);
            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;
          } while (bVar16);
          if ((!bVar17 && !bVar16) != bVar17) goto LAB_00048272;
          bVar18 = (char)paVar6->id == 'a';
          bVar16 = false;
          bVar17 = !bVar19;
          if (!bVar17) break;
          iVar8 = 5;
          pbVar11 = &DAT_000ae31b;
          pbVar15 = (byte *)((int)&paVar6->id + (uint)bVar18);
          do {
            if (iVar8 == 0) break;
            iVar8 = iVar8 + -1;
            bVar16 = *pbVar11 < *pbVar15;
            bVar17 = *pbVar11 == *pbVar15;
            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;
            pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;
          } while (bVar17);
          if ((!bVar16 && !bVar17) == bVar16) break;
          bVar17 = (s->name[4] == 'a') == bVar18;
          if ((local_34 == (lang_statement_union *)0x0) || (bVar17)) {
            local_34 = plVar13;
          }
          paVar6 = (plVar13->output_section_statement).bfd_section;
          if ((local_40 != (lang_statement_union *)0x0) && (!bVar17)) goto LAB_00048240;
          if (paVar6 != (asection *)0x0) {
            fVar3 = paVar6->flags;
            plVar7 = plVar13;
            goto joined_r0x00048289;
          }
        }
        plVar7 = plVar13;
        plVar14 = (lang_statement_union *)(plVar13->wild_statement).section_list;
      } while ((lang_statement_union *)(plVar13->wild_statement).section_list !=
               (lang_statement_union *)0x0);
      if ((((local_40 == (lang_statement_union *)0x0) &&
           (local_40 = local_34, local_34 == (lang_statement_union *)0x0)) &&
          (local_40 = local_38, local_38 == (lang_statement_union *)0x0)) &&
         (local_40 = plVar7, local_28 != (lang_statement_union *)0x0)) {
        local_40 = local_28;
      }
      local_44->os = (lang_output_section_statement_type *)local_40;
      goto LAB_00048089;
    }
  }
  else {
    local_40 = (lang_statement_union *)lang_output_section_statement_lookup(local_44->name,0,0);
    local_44->os = (lang_output_section_statement_type *)local_40;
LAB_00048089:
    if (local_40 != (lang_statement_union *)0x0) goto LAB_00047db8;
  }
  local_40 = (lang_statement_union *)
             lang_output_section_find_by_flags
                       (s,local_48,&local_44->os,
                        (lang_match_sec_type_func)PTR__bfd_elf_match_sections_by_type_001cdfe0);
  if (local_40 == (lang_statement_union *)0x0) {
    local_40 = lang_output_section_statement.head;
  }
LAB_00047db8:
  plVar4 = lang_insert_orphan(s,secname,constraint,&local_40->output_section_statement,local_44,
                              (etree_type *)0x0,(lang_statement_list_type *)0x0);
  return plVar4;
}



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

undefined * FUN_00047ad0(int *param_1,char *param_2,int param_3)

{
  uint uVar1;
  undefined *puVar2;
  int *piVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  byte *pbVar7;
  byte *pbVar8;
  undefined **ppuVar9;
  undefined *puVar10;
  undefined *puVar11;
  byte *pbVar12;
  bool bVar13;
  bool bVar14;
  bool bVar15;
  bool bVar16;
  byte bVar17;
  uint local_48;
  undefined **local_44;
  undefined *local_40;
  undefined *local_38;
  undefined *local_34;
  undefined *local_28;
  
  bVar17 = 0;
  local_34 = (undefined *)0x0;
  uVar1 = *(uint *)(*(int *)(param_1[0x2b] + 4) + 4);
  bVar14 = uVar1 == 5;
  iVar5 = *(int *)(*(int *)(DAT_001d0414 + 4) + 4);
  if (bVar14) {
    local_34 = *(undefined **)(param_1[0x29] + 4);
  }
  if ((DAT_001d03e0 & 3) == 2) {
LAB_00047c3c:
    bVar16 = false;
  }
  else if ((DAT_001d03e4 & 0x40) == 0) {
    bVar16 = false;
LAB_00047b5c:
    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {
LAB_00047b7b:
      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {
        if (DAT_001d03a0 != (undefined *)0x0) {
          puVar2 = DAT_001d03a0;
          do {
            puVar11 = *(undefined **)(puVar2 + 0x1c);
            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)
                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&
                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&
                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))
                       ))))) goto LAB_00047fcb;
            puVar2 = *(undefined **)(puVar2 + 0x10);
          } while (puVar2 != (undefined *)0x0);
        }
        param_2 = ".mbind.bss";
        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {
          param_2 = ".mbind.text";
          if ((uVar6 & 0x10) == 0) {
            param_2 = ".mbind.rodata";
          }
        }
      }
    }
  }
  else {
    uVar6 = param_1[5];
    if ((uVar6 & 1) == 0) goto LAB_00047c3c;
    bVar13 = uVar1 < 5;
    bVar15 = uVar1 == 5;
    if (bVar15) {
      if (local_34 == (undefined *)0x4) {
        param_2 = ".rela.dyn";
        bVar16 = true;
        goto LAB_00047b5c;
      }
      bVar16 = local_34 == (undefined *)0x9;
      if (bVar16) {
        param_2 = ".rel.dyn";
      }
      if (iVar5 == 5) goto LAB_00047b7b;
    }
    else {
      iVar4 = 4;
      bVar16 = false;
      pbVar7 = (byte *)param_2;
      pbVar8 = &DAT_000ae302;
      do {
        if (iVar4 == 0) break;
        iVar4 = iVar4 + -1;
        bVar13 = *pbVar7 < *pbVar8;
        bVar15 = *pbVar7 == *pbVar8;
        pbVar7 = pbVar7 + 1;
        pbVar8 = pbVar8 + 1;
      } while (bVar15);
      if ((!bVar13 && !bVar15) == bVar13) {
        bVar16 = true;
        if (((byte *)param_2)[4] == 0x61) {
          param_2 = ".rela.dyn";
        }
        else {
          param_2 = ".rel.dyn";
        }
      }
    }
  }
  if ((param_3 == 0) &&
     (puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0)) {
    puVar11 = (undefined *)0x0;
    do {
      iVar4 = *(int *)(puVar2 + 0x1c);
      puVar10 = puVar2;
      if (iVar4 != 0) {
        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;
        puVar10 = puVar11;
        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {
          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;
          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&
             (((DAT_001d03e0 & 3) != 2 ||
              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))
          {
            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);
            if (iVar4 != 0) goto LAB_00047fcb;
            if (*(int *)(puVar2 + 0x1c) == 0) {
              puVar10 = puVar2;
            }
          }
        }
      }
      puVar2 = (undefined *)FUN_00025b20(puVar2,0);
      puVar11 = puVar10;
    } while (puVar2 != (undefined *)0x0);
    param_3 = 0x17e;
    if (puVar10 != (undefined *)0x0) {
      FUN_00026550(puVar10 + 8,param_1,0,puVar10);
      return puVar10;
    }
  }
  if (DAT_001cfba8 == 0) {
    ppuVar9 = &PTR_s__text_001ce860;
    do {
      if (*ppuVar9 != (undefined *)0x0) {
        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);
        ppuVar9[2] = puVar2;
        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {
          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];
        }
      }
      ppuVar9 = ppuVar9 + 6;
    } while (ppuVar9 != (undefined **)&DAT_001ce938);
    DAT_001cfba8 = 1;
  }
  bVar13 = false;
  bVar15 = (DAT_001d03e0 & 2) == 0;
  if (bVar15) {
    iVar5 = 0xd;
    pbVar7 = (byte *)*param_1;
    pbVar8 = (byte *)".gnu.warning.";
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar13 = *pbVar7 < *pbVar8;
      bVar15 = *pbVar7 == *pbVar8;
      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;
      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;
    } while (bVar15);
    if (((!bVar13 && !bVar15) == bVar13) &&
       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)) {
LAB_00047fcb:
      FUN_00026550(puVar2 + 8,param_1,0,puVar2);
      return puVar2;
    }
  }
  local_48 = param_1[5];
  if ((DAT_001d03e0 & 3) != 2) {
    iVar5 = param_1[0x2b];
    piVar3 = param_1;
    while (piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0) {
      iVar5 = piVar3[0x2b];
      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)
           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&
         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))
         ) {
        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);
        if (iVar5 != 0) {
          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;
        }
        iVar5 = piVar3[0x2b];
      }
    }
  }
  if ((local_48 & 0x2001) == 0) {
    local_44 = &PTR_s__comment_001ce920;
    goto LAB_00047da5;
  }
  if ((local_48 & 1) == 0) {
    local_44 = (undefined **)0x0;
    local_40 = (undefined *)0x0;
    goto LAB_00047db8;
  }
  if ((local_48 & 2) == 0) {
LAB_00047e40:
    local_44 = &PTR_s__bss_001ce8c0;
    if (((((local_48 & 0x502) != 0) &&
         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&
        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&
       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)) {
      bVar14 = uVar1 < 5;
      bVar13 = uVar1 == 5;
      if (bVar13) {
        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;
      }
      else {
        iVar5 = 4;
        pbVar7 = (byte *)param_2;
        pbVar8 = &DAT_000ae302;
        do {
          if (iVar5 == 0) break;
          iVar5 = iVar5 + -1;
          bVar14 = *pbVar7 < *pbVar8;
          bVar13 = *pbVar7 == *pbVar8;
          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;
          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;
        } while (bVar13);
        if ((!bVar14 && !bVar13) == bVar14) {
LAB_00047ebf:
          local_44 = (undefined **)&DAT_001ce8d8;
          if ((local_48 & 2) != 0) goto LAB_00047da5;
        }
      }
      local_44 = &PTR_s__text_001ce860;
      if ((local_48 & 0x10) == 0) {
        local_44 = (undefined **)&DAT_001ce878;
      }
    }
  }
  else if ((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)) {
    bVar14 = uVar1 < 5;
    bVar13 = uVar1 == 5;
    if (!bVar13) {
      iVar5 = 5;
      pbVar7 = (byte *)param_2;
      pbVar8 = (byte *)".note";
      do {
        if (iVar5 == 0) break;
        iVar5 = iVar5 + -1;
        bVar14 = *pbVar7 < *pbVar8;
        bVar13 = *pbVar7 == *pbVar8;
        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;
        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;
      } while (bVar13);
      local_44 = &PTR_s__interp_001ce8f0;
      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;
    }
    goto LAB_00047e40;
  }
LAB_00047da5:
  local_40 = local_44[2];
  if (local_40 != (undefined *)0x0) goto LAB_00047db8;
  if (*local_44 == (undefined *)0x0) {
    if (DAT_001d03a0 != (undefined *)0x0) {
      local_38 = (undefined *)0x0;
      local_28 = (undefined *)0x0;
      local_40 = (undefined *)0x0;
      local_34 = (undefined *)0x0;
      puVar11 = DAT_001d03a0;
      puVar2 = (undefined *)0x0;
      do {
        puVar10 = puVar11;
        bVar14 = false;
        bVar13 = *(int *)(puVar10 + 0x48) == 0;
        if (*(int *)(puVar10 + 0x48) < 0) {
LAB_00048272:
          iVar5 = *(int *)(puVar10 + 0x1c);
LAB_00048240:
          if (iVar5 != 0) {
            uVar1 = *(uint *)(iVar5 + 0x14);
            puVar2 = local_40;
joined_r0x00048289:
            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {
              local_38 = puVar10;
            }
          }
        }
        else {
          pbVar7 = *(byte **)(puVar10 + 0x18);
          iVar5 = 4;
          pbVar8 = pbVar7;
          pbVar12 = &DAT_000ae302;
          do {
            if (iVar5 == 0) break;
            iVar5 = iVar5 + -1;
            bVar14 = *pbVar8 < *pbVar12;
            bVar13 = *pbVar8 == *pbVar12;
            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;
            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;
          } while (bVar13);
          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;
          bVar13 = false;
          bVar14 = !bVar16;
          if (!bVar14) break;
          iVar5 = 5;
          pbVar8 = &DAT_000ae31b;
          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;
          do {
            if (iVar5 == 0) break;
            iVar5 = iVar5 + -1;
            bVar13 = *pbVar8 < *pbVar12;
            bVar14 = *pbVar8 == *pbVar12;
            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;
            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;
          } while (bVar14);
          if ((!bVar13 && !bVar14) == bVar13) break;
          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);
          if ((local_34 == (undefined *)0x0) || (bVar14)) {
            local_34 = puVar10;
          }
          iVar5 = *(int *)(puVar10 + 0x1c);
          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;
          if (iVar5 != 0) {
            uVar1 = *(uint *)(iVar5 + 0x14);
            puVar2 = puVar10;
            goto joined_r0x00048289;
          }
        }
        puVar2 = puVar10;
        puVar11 = *(undefined **)(puVar10 + 0x10);
      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);
      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))
          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&
         (local_40 = puVar2, local_28 != (undefined *)0x0)) {
        local_40 = local_28;
      }
      local_44[2] = local_40;
      goto LAB_00048089;
    }
  }
  else {
    local_40 = (undefined *)FUN_000256d0(*local_44,0,0);
    local_44[2] = local_40;
LAB_00048089:
    if (local_40 != (undefined *)0x0) goto LAB_00047db8;
  }
  local_40 = (undefined *)
             FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0
                         );
  if (local_40 == (undefined *)0x0) {
    local_40 = DAT_001d03a0;
  }
LAB_00047db8:
  puVar2 = (undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0);
  return puVar2;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00017b80
ADD EBX,0x186527
SUB ESP,0x3c
MOV EBP,dword ptr [ESP + 0x50]
MOV dword ptr [ESP + 0x18],0x0
MOV EAX,dword ptr [EBP + 0xac]
MOV EAX,dword ptr [EAX + 0x4]
MOV ECX,dword ptr [EAX + 0x4]
LEA EAX,[EBX + 0x23e0]
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,dword ptr [EAX + 0x34]
CMP ECX,0x5
MOV dword ptr [ESP + 0xc],ECX
MOV EAX,dword ptr [EAX + 0x4]
SETZ byte ptr [ESP + 0x1c]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x8],EAX
JNZ 0x00047b2c
MOV EAX,dword ptr [EBP + 0xa4]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x18],EAX
MOV EDI,dword ptr [ESP + 0x4]
MOVZX EAX,byte ptr [EDI]
MOV byte ptr [ESP + 0x10],AL
AND EAX,0x3
CMP AL,0x2
JZ 0x00047c3c
CMP dword ptr [ESP + 0x8],0x5
SETZ AL
TEST byte ptr [EDI + 0x4],0x40
JNZ 0x00047c30
MOV dword ptr [ESP + 0x20],0x0
CMP byte ptr [ESP + 0x1c],0x0
JZ 0x00047c44
TEST AL,AL
JZ 0x00047c44
MOV EDX,dword ptr [EBP + 0x14]
TEST DL,0x1
JZ 0x00047c44
MOV EAX,dword ptr [EBP + 0xa4]
MOV dword ptr [ESP + 0x10],EAX
TEST byte ptr [EAX + 0xb],0x1
JZ 0x00047c44
LEA EAX,[EBX + 0x23a0]
MOV ESI,dword ptr [EAX]
TEST ESI,ESI
JZ 0x00047bf3
MOV EAX,dword ptr [EBX + 0xffffffbc]
MOV dword ptr [ESP + 0x50],EBP
LEA EDI,[EAX + 0x180]
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [ESI + 0x1c]
CMP EAX,EDI
JZ 0x00047be8
TEST EAX,EAX
JZ 0x00047be8
MOV ECX,dword ptr [EAX + 0xa4]
TEST byte ptr [ECX + 0xb],0x1
JZ 0x00047be8
MOV EBP,dword ptr [EAX + 0x14]
XOR EBP,EDX
MOV EAX,EBP
TEST EAX,0x11b
JNZ 0x00047be8
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x2c]
CMP dword ptr [ECX + 0x2c],EAX
JZ 0x00047fc7
LEA ESI,[ESI]
MOV ESI,dword ptr [ESI + 0x10]
TEST ESI,ESI
JNZ 0x00047bb0
MOV EBP,dword ptr [ESP + 0x50]
LEA EAX,[EBX + 0xffee02ca]
MOV dword ptr [ESP + 0x54],EAX
TEST EDX,0x102
JZ 0x00047c44
LEA EAX,[EBX + 0xffee02be]
MOV dword ptr [ESP + 0x54],EAX
TEST DL,0x8
JZ 0x00047c44
AND EDX,0x10
LEA EAX,[EBX + 0xffee02d5]
LEA EDX,[EBX + 0xffee02e3]
CMOVZ EDX,EAX
MOV dword ptr [ESP + 0x54],EDX
JMP 0x00047c44
MOV EDX,dword ptr [EBP + 0x14]
TEST DL,0x1
JNZ 0x00048000
MOV dword ptr [ESP + 0x20],0x0
MOV EAX,dword ptr [ESP + 0x58]
TEST EAX,EAX
JZ 0x00047ef0
MOV ESI,dword ptr [EBX + 0x1ba8]
TEST ESI,ESI
JNZ 0x00047cb1
LEA EDI,[EBX + 0x860]
LEA ESI,[EBX + 0x938]
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV EAX,dword ptr [EDI]
TEST EAX,EAX
JZ 0x00047ca0
SUB ESP,0x4
PUSH 0x0
PUSH 0x0
PUSH EAX
CALL 0x000256d0
ADD ESP,0x10
MOV dword ptr [EDI + 0x8],EAX
TEST EAX,EAX
JZ 0x00047ca0
MOV ECX,dword ptr [EAX + 0x4c]
TEST ECX,ECX
JNZ 0x00047ca0
MOV EDX,dword ptr [EDI + 0x4]
MOV dword ptr [EAX + 0x4c],EDX
LEA ESI,[ESI]
ADD EDI,0x18
CMP EDI,ESI
JNZ 0x00047c70
MOV dword ptr [EBX + 0x1ba8],0x1
MOV EAX,dword ptr [ESP + 0x4]
MOVZX EAX,byte ptr [EAX]
TEST AL,0x2
JNZ 0x00047ce8
MOV ESI,dword ptr [EBP]
MOV ECX,0xd
LEA EDI,[EBX + 0xffee0307]
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JNZ 0x00047ce8
MOV ESI,dword ptr [EBX + 0x868]
TEST ESI,ESI
JNZ 0x00047fcb
LEA ESI,[ESI]
MOV EDI,dword ptr [EBP + 0x14]
AND EAX,0x3
MOV dword ptr [ESP + 0x4],EDI
CMP AL,0x2
JZ 0x00047d90
MOV EAX,dword ptr [EBP + 0xac]
MOV ESI,EBP
LEA ESI,[ESI]
SUB ESP,0x8
PUSH ESI
PUSH EAX
CALL 0x00016800
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x00047d90
MOV EDX,dword ptr [ESI + 0x54]
MOV EAX,dword ptr [ESI + 0xac]
TEST EDX,EDX
JNZ 0x00047d08
MOV EDX,dword ptr [ESI + 0x14]
MOV ECX,dword ptr [ESP + 0x4]
XOR ECX,EDX
AND EDX,0x8000
AND ECX,0x3
OR ECX,EDX
JNZ 0x00047d08
TEST byte ptr [EAX + 0x29],0x8
JNZ 0x00047d08
MOV EDX,dword ptr [EAX + 0xa4]
TEST EDX,EDX
JZ 0x00047d08
TEST byte ptr [EDX + 0x24],0x10
JNZ 0x00047d08
PUSH EBP
PUSH dword ptr [EBP + 0xac]
PUSH ESI
PUSH EAX
CALL 0x00016dd0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00047d7f
MOV EDX,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [ESI + 0x14]
XOR EDX,0x8
XOR EAX,0x8
OR EAX,EDX
XOR EAX,0x8
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,dword ptr [ESI + 0xac]
JMP 0x00047d08
MOV EAX,dword ptr [ESP + 0x4]
TEST EAX,0x2001
JNZ 0x00047de8
LEA EAX,[EBX + 0x920]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0xc],EAX
TEST EAX,EAX
JZ 0x00048060
SUB ESP,0x4
PUSH 0x0
PUSH 0x0
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x6c]
PUSH dword ptr [ESP + 0x6c]
PUSH EBP
CALL 0x00029730
ADD ESP,0x20
MOV ESI,EAX
ADD ESP,0x3c
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
TEST AL,0x1
JZ 0x00047fe8
AND EAX,0x2
JZ 0x00047e40
CMP dword ptr [ESP + 0x18],0x7
JNZ 0x00047e0d
LEA EDI,[EBX + 0x8f0]
CMP byte ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0x8],EDI
JNZ 0x00047da5
CMP dword ptr [ESP + 0xc],0x5
JZ 0x00047e40
MOV ESI,dword ptr [ESP + 0x54]
LEA EDI,[EBX + 0xffee0315]
MOV ECX,0x5
CMPSB.REPE ES:EDI,ESI
LEA EDI,[EBX + 0x8f0]
MOV dword ptr [ESP + 0x8],EDI
SETA DL
SBB DL,0x0
TEST DL,DL
JZ 0x00047da5
LEA ESI,[ESI]
LEA EDI,[EBX + 0x8c0]
MOV dword ptr [ESP + 0x8],EDI
MOV EDI,dword ptr [ESP + 0x4]
TEST EDI,0x502
JZ 0x00047da5
LEA ECX,[EBX + 0x908]
MOV dword ptr [ESP + 0x8],ECX
TEST EDI,0x400000
JNZ 0x00047da5
LEA ECX,[EBX + 0x890]
MOV dword ptr [ESP + 0x8],ECX
TEST EDI,0x400
JNZ 0x00047da5
LEA ECX,[EBX + 0x8a8]
AND EDI,0x8
MOV dword ptr [ESP + 0x8],ECX
JZ 0x00047da5
CMP dword ptr [ESP + 0xc],0x5
JZ 0x000482eb
MOV ESI,dword ptr [ESP + 0x54]
MOV ECX,0x4
LEA EDI,[EBX + 0xffee0302]
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST DL,DL
JNZ 0x00047ed1
LEA EDI,[EBX + 0x8d8]
MOV dword ptr [ESP + 0x8],EDI
TEST EAX,EAX
JNZ 0x00047da5
TEST byte ptr [ESP + 0x4],0x10
LEA EAX,[EBX + 0x878]
LEA EDX,[EBX + 0x860]
CMOVZ EDX,EAX
MOV dword ptr [ESP + 0x8],EDX
JMP 0x00047da5
SUB ESP,0x4
PUSH 0x0
PUSH 0x0
PUSH dword ptr [ESP + 0x60]
CALL 0x000256d0
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x00047c50
XOR EDI,EDI
JMP 0x00047fb8
MOV EDX,dword ptr [EAX + 0x14]
TEST EDX,EDX
JZ 0x00047fcb
XOR EDX,dword ptr [EBP + 0x14]
AND EDX,0x3
JNZ 0x00047fa0
CMP dword ptr [ESP + 0xc],0x5
JNZ 0x00047fcb
CMP dword ptr [ESP + 0x8],0x5
JNZ 0x00047fcb
MOV EDX,dword ptr [EBP + 0xa4]
MOV ECX,dword ptr [EAX + 0xa4]
MOV dword ptr [ESP + 0x10],EDX
MOV EDX,dword ptr [EDX + 0x2c]
CMP dword ptr [ECX + 0x2c],EDX
JNZ 0x00047fa0
MOV EDX,dword ptr [ESP + 0x4]
MOVZX EDX,byte ptr [EDX]
MOV byte ptr [ESP + 0x14],DL
AND EDX,0x3
CMP DL,0x2
JNZ 0x00047f78
MOV EDX,dword ptr [ESP + 0x10]
MOV ECX,dword ptr [ECX + 0x8]
XOR ECX,dword ptr [EDX + 0x8]
JS 0x00047fa0
PUSH EBP
PUSH dword ptr [EBP + 0xac]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x10]
PUSH dword ptr [EAX + 0x34]
CALL 0x00016dd0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00047fcb
MOV EAX,dword ptr [ESI + 0x1c]
TEST EAX,EAX
CMOVZ EDI,ESI
LEA ESI,[ESI]
NOP
SUB ESP,0x8
PUSH 0x0
PUSH ESI
CALL 0x00025b20
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x000480d0
MOV EAX,dword ptr [ESI + 0x1c]
TEST EAX,EAX
JNZ 0x00047f18
MOV EDI,ESI
JMP 0x00047fa0
MOV EBP,dword ptr [ESP + 0x50]
LEA EAX,[ESI + 0x8]
PUSH ESI
PUSH 0x0
PUSH EBP
PUSH EAX
CALL 0x00026550
ADD ESP,0x10
MOV EAX,ESI
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [ESP + 0x8],0x0
MOV dword ptr [ESP + 0xc],0x0
JMP 0x00047db8
CMP dword ptr [ESP + 0xc],0x5
JZ 0x00048100
MOV ESI,dword ptr [ESP + 0x54]
MOV ECX,0x4
LEA EDI,[EBX + 0xffee0302]
MOV dword ptr [ESP + 0x20],0x0
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00047c44
MOV EAX,dword ptr [ESP + 0x54]
MOV dword ptr [ESP + 0x20],0x1
CMP byte ptr [EAX + 0x4],0x61
JZ 0x00048151
LEA EAX,[EBX + 0xffee02f9]
MOV dword ptr [ESP + 0x54],EAX
JMP 0x00047c44
MOV EDI,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EDI]
MOV dword ptr [ESP + 0x18],EAX
TEST EAX,EAX
JZ 0x00048160
SUB ESP,0x4
PUSH 0x0
PUSH 0x0
PUSH EAX
CALL 0x000256d0
MOV dword ptr [EDI + 0x8],EAX
MOV dword ptr [ESP + 0x1c],EAX
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JNZ 0x00047db8
PUSH dword ptr [EBX + 0xffffffe0]
MOV EAX,dword ptr [ESP + 0xc]
ADD EAX,0x8
PUSH EAX
PUSH dword ptr [ESP + 0xc]
PUSH EBP
CALL 0x00025ba0
MOV dword ptr [ESP + 0x1c],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00047db8
LEA EAX,[EBX + 0x23a0]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0xc],EAX
JMP 0x00047db8
MOV dword ptr [ESP + 0x58],0x17e
TEST EDI,EDI
JZ 0x00047c50
LEA EAX,[EDI + 0x8]
PUSH EDI
MOV ESI,EDI
PUSH 0x0
PUSH EBP
PUSH EAX
CALL 0x00026550
ADD ESP,0x10
JMP 0x00047dda
MOV EDI,dword ptr [ESP + 0x18]
CMP EDI,0x4
JZ 0x0004813a
CMP EDI,0x9
JZ 0x00048126
MOV dword ptr [ESP + 0x20],0x0
CMP dword ptr [ESP + 0x8],0x5
JZ 0x00047b7b
JMP 0x00047c44
LEA EAX,[EBX + 0xffee02f9]
MOV dword ptr [ESP + 0x20],0x1
MOV dword ptr [ESP + 0x54],EAX
JMP 0x00048116
LEA EDI,[EBX + 0xffee02ef]
MOV dword ptr [ESP + 0x20],0x1
MOV dword ptr [ESP + 0x54],EDI
JMP 0x00047b5c
LEA EAX,[EBX + 0xffee02ef]
MOV dword ptr [ESP + 0x54],EAX
JMP 0x00047c44
MOV EAX,dword ptr [EBP]
CMP byte ptr [EAX + 0x4],0x61
LEA EAX,[EBX + 0x23a0]
SETZ byte ptr [ESP + 0x2f]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x00048095
MOV EDI,dword ptr [ESP + 0x18]
XOR ECX,ECX
MOV dword ptr [ESP + 0x50],EBP
MOV EDX,EAX
MOV dword ptr [ESP + 0x14],0x0
MOV EBP,ECX
MOV dword ptr [ESP + 0xc],EDI
LEA EDI,[EBX + 0xffee0302]
MOV dword ptr [ESP + 0x1c],EDI
LEA EDI,[EBX + 0xffee031b]
MOV dword ptr [ESP + 0x24],0x0
MOV dword ptr [ESP + 0x28],EDI
JMP 0x00048267
MOV EAX,dword ptr [EDX + 0x18]
MOV EDI,dword ptr [ESP + 0x1c]
MOV ECX,0x4
MOV ESI,EAX
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
TEST CL,CL
JNZ 0x00048272
MOV ESI,dword ptr [ESP + 0x20]
CMP byte ptr [EAX + 0x4],0x61
SETZ byte ptr [ESP + 0x10]
MOVZX ECX,byte ptr [ESP + 0x10]
TEST ESI,ESI
JNZ 0x000482e3
MOV ESI,dword ptr [ESP + 0x28]
LEA EDI,[EAX + ECX*0x1 + 0x4]
MOV ECX,0x5
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x000482e3
MOV EDI,dword ptr [ESP + 0x18]
MOVZX ECX,byte ptr [ESP + 0x10]
CMP byte ptr [ESP + 0x2f],CL
SETZ CL
TEST EDI,EDI
JZ 0x00048298
TEST CL,CL
JNZ 0x00048298
MOV ESI,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EDX + 0x1c]
TEST ESI,ESI
JZ 0x00048280
TEST CL,CL
JNZ 0x00048280
LEA ESI,[ESI]
NOP
TEST EAX,EAX
JZ 0x0004825c
MOV EAX,dword ptr [EAX + 0x14]
TEST AL,0x1
JZ 0x0004825c
TEST AL,0x8
MOV EAX,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x24],EDX
CMOVNZ EAX,EDX
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,dword ptr [EDX + 0x10]
MOV EBP,EDX
TEST EAX,EAX
JZ 0x0004829e
MOV EDX,EAX
MOV EDI,dword ptr [EDX + 0x48]
TEST EDI,EDI
JNS 0x000481c0
MOV EAX,dword ptr [EDX + 0x1c]
JMP 0x00048240
TEST EAX,EAX
JZ 0x0004825c
MOV EAX,dword ptr [EAX + 0x14]
TEST AL,0x1
JZ 0x0004825c
MOV dword ptr [ESP + 0xc],EDX
JMP 0x0004824b
MOV dword ptr [ESP + 0x18],EDX
JMP 0x0004822c
MOV EBP,dword ptr [ESP + 0x50]
MOV EAX,EDX
MOV EDX,dword ptr [ESP + 0xc]
TEST EDX,EDX
JZ 0x000482bc
MOV EAX,dword ptr [ESP + 0x8]
MOV EDI,dword ptr [ESP + 0xc]
MOV dword ptr [EAX + 0x8],EDI
JMP 0x00048089
MOV EDI,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0xc],EDI
TEST EDI,EDI
JNZ 0x000482ac
MOV EDI,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0xc],EDI
TEST EDI,EDI
JNZ 0x000482ac
MOV EDI,dword ptr [ESP + 0x24]
TEST EDI,EDI
CMOVNZ EAX,EDI
MOV dword ptr [ESP + 0xc],EAX
JMP 0x000482ac
MOV EAX,EBP
MOV EBP,dword ptr [ESP + 0x50]
JMP 0x000482a4
MOV EDI,dword ptr [ESP + 0x18]
CMP EDI,0x4
JZ 0x00047ebf
CMP EDI,0x9
JNZ 0x00047ed1
JMP 0x00047ebf
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined * FUN_00047ad0(int *param_1,char *param_2,int param_3)\n\n{\n  uint uVar1;\n  undefined *puVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined **ppuVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  uint local_48;\n  undefined **local_44;\n  undefined *local_40;\n  undefined *local_38;\n  undefined *local_34;\n  undefined *local_28;\n  \n  bVar17 = 0;\n  local_34 = (undefined *)0x0;\n  uVar1 = *(uint *)(*(int *)(param_1[0x2b] + 4) + 4);\n  bVar14 = uVar1 == 5;\n  iVar5 = *(int *)(*(int *)(DAT_001d0414 + 4) + 4);\n  if (bVar14) {\n    local_34 = *(undefined **)(param_1[0x29] + 4);\n  }\n  if ((DAT_001d03e0 & 3) == 2) {\nLAB_00047c3c:\n    bVar16 = false;\n  }\n  else if ((DAT_001d03e4 & 0x40) == 0) {\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }\n  if ((param_3 == 0) &&\n     (puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0)) {\n    puVar11 = (undefined *)0x0;\n    do {\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    } while (puVar2 != (undefined *)0x0);\n    param_3 = 0x17e;\n    if (puVar10 != (undefined *)0x0) {\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }\n  }\n  if (DAT_001cfba8 == 0) {\n    ppuVar9 = &PTR_s__text_001ce860;\n    do {\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    } while (ppuVar9 != (undefined **)&DAT_001ce938);\n    DAT_001cfba8 = 1;\n  }\n  bVar13 = false;\n  bVar15 = (DAT_001d03e0 & 2) == 0;\n  if (bVar15) {\n    iVar5 = 0xd;\n    pbVar7 = (byte *)*param_1;\n    pbVar8 = (byte *)".gnu.warning.";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if (((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)) {\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }\n  }\n  local_48 = param_1[5];\n  if ((DAT_001d03e0 & 3) != 2) {\n    iVar5 = param_1[0x2b];\n    piVar3 = param_1;\n    while (piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0) {\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }\n  }\n  if ((local_48 & 0x2001) == 0) {\n    local_44 = &PTR_s__comment_001ce920;\n    goto LAB_00047da5;\n  }\n  if ((local_48 & 1) == 0) {\n    local_44 = (undefined **)0x0;\n    local_40 = (undefined *)0x0;\n    goto LAB_00047db8;\n  }\n  if ((local_48 & 2) == 0) {\nLAB_00047e40:\n    local_44 = &PTR_s__bss_001ce8c0;\n    if (((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)) {\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }\n  }\n  else if ((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)) {\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }\nLAB_00047da5:\n  local_40 = local_44[2];\n  if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  if (*local_44 == (undefined *)0x0) {\n    if (DAT_001d03a0 != (undefined *)0x0) {\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }\n  }\n  else {\n    local_40 = (undefined *)FUN_000256d0(*local_44,0,0);\n    local_44[2] = local_40;\nLAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  }\n  local_40 = (undefined *)\n             FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         );\n  if (local_40 == (undefined *)0x0) {\n    local_40 = DAT_001d03a0;\n  }\nLAB_00047db8:\n  puVar2 = (undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0);\n  return puVar2;\n}\n\n" comment (function_definition "undefined * FUN_00047ad0(int *param_1,char *param_2,int param_3)\n\n{\n  uint uVar1;\n  undefined *puVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined **ppuVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  uint local_48;\n  undefined **local_44;\n  undefined *local_40;\n  undefined *local_38;\n  undefined *local_34;\n  undefined *local_28;\n  \n  bVar17 = 0;\n  local_34 = (undefined *)0x0;\n  uVar1 = *(uint *)(*(int *)(param_1[0x2b] + 4) + 4);\n  bVar14 = uVar1 == 5;\n  iVar5 = *(int *)(*(int *)(DAT_001d0414 + 4) + 4);\n  if (bVar14) {\n    local_34 = *(undefined **)(param_1[0x29] + 4);\n  }\n  if ((DAT_001d03e0 & 3) == 2) {\nLAB_00047c3c:\n    bVar16 = false;\n  }\n  else if ((DAT_001d03e4 & 0x40) == 0) {\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }\n  if ((param_3 == 0) &&\n     (puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0)) {\n    puVar11 = (undefined *)0x0;\n    do {\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    } while (puVar2 != (undefined *)0x0);\n    param_3 = 0x17e;\n    if (puVar10 != (undefined *)0x0) {\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }\n  }\n  if (DAT_001cfba8 == 0) {\n    ppuVar9 = &PTR_s__text_001ce860;\n    do {\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    } while (ppuVar9 != (undefined **)&DAT_001ce938);\n    DAT_001cfba8 = 1;\n  }\n  bVar13 = false;\n  bVar15 = (DAT_001d03e0 & 2) == 0;\n  if (bVar15) {\n    iVar5 = 0xd;\n    pbVar7 = (byte *)*param_1;\n    pbVar8 = (byte *)".gnu.warning.";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if (((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)) {\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }\n  }\n  local_48 = param_1[5];\n  if ((DAT_001d03e0 & 3) != 2) {\n    iVar5 = param_1[0x2b];\n    piVar3 = param_1;\n    while (piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0) {\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }\n  }\n  if ((local_48 & 0x2001) == 0) {\n    local_44 = &PTR_s__comment_001ce920;\n    goto LAB_00047da5;\n  }\n  if ((local_48 & 1) == 0) {\n    local_44 = (undefined **)0x0;\n    local_40 = (undefined *)0x0;\n    goto LAB_00047db8;\n  }\n  if ((local_48 & 2) == 0) {\nLAB_00047e40:\n    local_44 = &PTR_s__bss_001ce8c0;\n    if (((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)) {\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }\n  }\n  else if ((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)) {\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }\nLAB_00047da5:\n  local_40 = local_44[2];\n  if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  if (*local_44 == (undefined *)0x0) {\n    if (DAT_001d03a0 != (undefined *)0x0) {\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }\n  }\n  else {\n    local_40 = (undefined *)FUN_000256d0(*local_44,0,0);\n    local_44[2] = local_40;\nLAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  }\n  local_40 = (undefined *)\n             FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         );\n  if (local_40 == (undefined *)0x0) {\n    local_40 = DAT_001d03a0;\n  }\nLAB_00047db8:\n  puVar2 = (undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0);\n  return puVar2;\n}" type_identifier (pointer_declarator "* FUN_00047ad0(int *param_1,char *param_2,int param_3)" * (function_declarator "FUN_00047ad0(int *param_1,char *param_2,int param_3)" identifier (parameter_list "(int *param_1,char *param_2,int param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) )))) (compound_statement "{\n  uint uVar1;\n  undefined *puVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined **ppuVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  uint local_48;\n  undefined **local_44;\n  undefined *local_40;\n  undefined *local_38;\n  undefined *local_34;\n  undefined *local_28;\n  \n  bVar17 = 0;\n  local_34 = (undefined *)0x0;\n  uVar1 = *(uint *)(*(int *)(param_1[0x2b] + 4) + 4);\n  bVar14 = uVar1 == 5;\n  iVar5 = *(int *)(*(int *)(DAT_001d0414 + 4) + 4);\n  if (bVar14) {\n    local_34 = *(undefined **)(param_1[0x29] + 4);\n  }\n  if ((DAT_001d03e0 & 3) == 2) {\nLAB_00047c3c:\n    bVar16 = false;\n  }\n  else if ((DAT_001d03e4 & 0x40) == 0) {\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }\n  if ((param_3 == 0) &&\n     (puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0)) {\n    puVar11 = (undefined *)0x0;\n    do {\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    } while (puVar2 != (undefined *)0x0);\n    param_3 = 0x17e;\n    if (puVar10 != (undefined *)0x0) {\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }\n  }\n  if (DAT_001cfba8 == 0) {\n    ppuVar9 = &PTR_s__text_001ce860;\n    do {\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    } while (ppuVar9 != (undefined **)&DAT_001ce938);\n    DAT_001cfba8 = 1;\n  }\n  bVar13 = false;\n  bVar15 = (DAT_001d03e0 & 2) == 0;\n  if (bVar15) {\n    iVar5 = 0xd;\n    pbVar7 = (byte *)*param_1;\n    pbVar8 = (byte *)".gnu.warning.";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if (((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)) {\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }\n  }\n  local_48 = param_1[5];\n  if ((DAT_001d03e0 & 3) != 2) {\n    iVar5 = param_1[0x2b];\n    piVar3 = param_1;\n    while (piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0) {\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }\n  }\n  if ((local_48 & 0x2001) == 0) {\n    local_44 = &PTR_s__comment_001ce920;\n    goto LAB_00047da5;\n  }\n  if ((local_48 & 1) == 0) {\n    local_44 = (undefined **)0x0;\n    local_40 = (undefined *)0x0;\n    goto LAB_00047db8;\n  }\n  if ((local_48 & 2) == 0) {\nLAB_00047e40:\n    local_44 = &PTR_s__bss_001ce8c0;\n    if (((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)) {\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }\n  }\n  else if ((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)) {\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }\nLAB_00047da5:\n  local_40 = local_44[2];\n  if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  if (*local_44 == (undefined *)0x0) {\n    if (DAT_001d03a0 != (undefined *)0x0) {\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }\n  }\n  else {\n    local_40 = (undefined *)FUN_000256d0(*local_44,0,0);\n    local_44[2] = local_40;\nLAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  }\n  local_40 = (undefined *)\n             FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         );\n  if (local_40 == (undefined *)0x0) {\n    local_40 = DAT_001d03a0;\n  }\nLAB_00047db8:\n  puVar2 = (undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0);\n  return puVar2;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "undefined **ppuVar9;" type_identifier (pointer_declarator "**ppuVar9" * (pointer_declarator "*ppuVar9" * identifier)) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "undefined **local_44;" type_identifier (pointer_declarator "**local_44" * (pointer_declarator "*local_44" * identifier)) ;) (declaration "undefined *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "undefined *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "undefined *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "local_34 = (undefined *)0x0;" (assignment_expression "local_34 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar1 = *(uint *)(*(int *)(param_1[0x2b] + 4) + 4);" (assignment_expression "uVar1 = *(uint *)(*(int *)(param_1[0x2b] + 4) + 4)" identifier = (pointer_expression "*(uint *)(*(int *)(param_1[0x2b] + 4) + 4)" * (cast_expression "(uint *)(*(int *)(param_1[0x2b] + 4) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1[0x2b] + 4) + 4)" ( (binary_expression "*(int *)(param_1[0x2b] + 4) + 4" (pointer_expression "*(int *)(param_1[0x2b] + 4)" * (cast_expression "(int *)(param_1[0x2b] + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x2b] + 4)" ( (binary_expression "param_1[0x2b] + 4" (subscript_expression "param_1[0x2b]" identifier [ number_literal ]) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "bVar14 = uVar1 == 5;" (assignment_expression "bVar14 = uVar1 == 5" identifier = (binary_expression "uVar1 == 5" identifier == number_literal)) ;) (expression_statement "iVar5 = *(int *)(*(int *)(DAT_001d0414 + 4) + 4);" (assignment_expression "iVar5 = *(int *)(*(int *)(DAT_001d0414 + 4) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(DAT_001d0414 + 4) + 4)" * (cast_expression "(int *)(*(int *)(DAT_001d0414 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_001d0414 + 4) + 4)" ( (binary_expression "*(int *)(DAT_001d0414 + 4) + 4" (pointer_expression "*(int *)(DAT_001d0414 + 4)" * (cast_expression "(int *)(DAT_001d0414 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0414 + 4)" ( (binary_expression "DAT_001d0414 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (bVar14) {\n    local_34 = *(undefined **)(param_1[0x29] + 4);\n  }" if (parenthesized_expression "(bVar14)" ( identifier )) (compound_statement "{\n    local_34 = *(undefined **)(param_1[0x29] + 4);\n  }" { (expression_statement "local_34 = *(undefined **)(param_1[0x29] + 4);" (assignment_expression "local_34 = *(undefined **)(param_1[0x29] + 4)" identifier = (pointer_expression "*(undefined **)(param_1[0x29] + 4)" * (cast_expression "(undefined **)(param_1[0x29] + 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[0x29] + 4)" ( (binary_expression "param_1[0x29] + 4" (subscript_expression "param_1[0x29]" identifier [ number_literal ]) + number_literal) ))))) ;) })) (if_statement "if ((DAT_001d03e0 & 3) == 2) {\nLAB_00047c3c:\n    bVar16 = false;\n  }\n  else if ((DAT_001d03e4 & 0x40) == 0) {\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }" if (parenthesized_expression "((DAT_001d03e0 & 3) == 2)" ( (binary_expression "(DAT_001d03e0 & 3) == 2" (parenthesized_expression "(DAT_001d03e0 & 3)" ( (binary_expression "DAT_001d03e0 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00047c3c:\n    bVar16 = false;\n  }" { (labeled_statement "LAB_00047c3c:\n    bVar16 = false;" statement_identifier : (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;)) }) (else_clause "else if ((DAT_001d03e4 & 0x40) == 0) {\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }" else (if_statement "if ((DAT_001d03e4 & 0x40) == 0) {\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }" if (parenthesized_expression "((DAT_001d03e4 & 0x40) == 0)" ( (binary_expression "(DAT_001d03e4 & 0x40) == 0" (parenthesized_expression "(DAT_001d03e4 & 0x40)" ( (binary_expression "DAT_001d03e4 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }" { (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (labeled_statement "LAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }" statement_identifier : (if_statement "if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }" if (parenthesized_expression "(((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0))" ( (binary_expression "((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)" (parenthesized_expression "((bVar14) && (iVar5 == 5))" ( (binary_expression "(bVar14) && (iVar5 == 5)" (parenthesized_expression "(bVar14)" ( identifier )) && (parenthesized_expression "(iVar5 == 5)" ( (binary_expression "iVar5 == 5" identifier == number_literal) ))) )) && (parenthesized_expression "(uVar6 = param_1[5], (uVar6 & 1) != 0)" ( (comma_expression "uVar6 = param_1[5], (uVar6 & 1) != 0" (assignment_expression "uVar6 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) , (binary_expression "(uVar6 & 1) != 0" (parenthesized_expression "(uVar6 & 1)" ( (binary_expression "uVar6 & 1" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }" { (labeled_statement "LAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }" statement_identifier : (if_statement "if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }" if (parenthesized_expression "((*(byte *)(param_1[0x29] + 0xb) & 1) != 0)" ( (binary_expression "(*(byte *)(param_1[0x29] + 0xb) & 1) != 0" (parenthesized_expression "(*(byte *)(param_1[0x29] + 0xb) & 1)" ( (binary_expression "*(byte *)(param_1[0x29] + 0xb) & 1" (pointer_expression "*(byte *)(param_1[0x29] + 0xb)" * (cast_expression "(byte *)(param_1[0x29] + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x29] + 0xb)" ( (binary_expression "param_1[0x29] + 0xb" (subscript_expression "param_1[0x29]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }" { (if_statement "if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }" if (parenthesized_expression "(DAT_001d03a0 != (undefined *)0x0)" ( (binary_expression "DAT_001d03a0 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }" { (expression_statement "puVar2 = DAT_001d03a0;" (assignment_expression "puVar2 = DAT_001d03a0" identifier = identifier) ;) (do_statement "do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);" do (compound_statement "{\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          }" { (expression_statement "puVar11 = *(undefined **)(puVar2 + 0x1c);" (assignment_expression "puVar11 = *(undefined **)(puVar2 + 0x1c)" identifier = (pointer_expression "*(undefined **)(puVar2 + 0x1c)" * (cast_expression "(undefined **)(puVar2 + 0x1c)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x1c)" ( (binary_expression "puVar2 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;" if (parenthesized_expression "(((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       )))))" ( (binary_expression "((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))" (parenthesized_expression "((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                )" ( (binary_expression "(puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)" (parenthesized_expression "(puVar11 != PTR__bfd_std_section_001cdfbc + 0x180)" ( (binary_expression "puVar11 != PTR__bfd_std_section_001cdfbc + 0x180" identifier != (binary_expression "PTR__bfd_std_section_001cdfbc + 0x180" identifier + number_literal)) )) && (parenthesized_expression "(puVar11 != (undefined *)0x0)" ( (binary_expression "puVar11 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))" ( (parenthesized_expression "((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       )))" ( (binary_expression "(*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))" (binary_expression "(*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0" (parenthesized_expression "(*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1)" ( (binary_expression "*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1" (pointer_expression "*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb)" * (cast_expression "(byte *)(*(int *)(puVar11 + 0xa4) + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0xa4) + 0xb)" ( (binary_expression "*(int *)(puVar11 + 0xa4) + 0xb" (pointer_expression "*(int *)(puVar11 + 0xa4)" * (cast_expression "(int *)(puVar11 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xa4)" ( (binary_expression "puVar11 + 0xa4" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) && (parenthesized_expression "((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))" ( (parenthesized_expression "(((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       )" ( (binary_expression "((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))" (binary_expression "((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0" (parenthesized_expression "((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b)" ( (binary_expression "(*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b" (parenthesized_expression "(*(uint *)(puVar11 + 0x14) ^ uVar6)" ( (binary_expression "*(uint *)(puVar11 + 0x14) ^ uVar6" (pointer_expression "*(uint *)(puVar11 + 0x14)" * (cast_expression "(uint *)(puVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) ^ identifier) )) & number_literal) )) == number_literal) && (parenthesized_expression "(*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))" ( (binary_expression "*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)" (pointer_expression "*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c)" * (cast_expression "(int *)(*(int *)(puVar11 + 0xa4) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0xa4) + 0x2c)" ( (binary_expression "*(int *)(puVar11 + 0xa4) + 0x2c" (pointer_expression "*(int *)(puVar11 + 0xa4)" * (cast_expression "(int *)(puVar11 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xa4)" ( (binary_expression "puVar11 + 0xa4" identifier + number_literal) )))) + number_literal) )))) == (pointer_expression "*(int *)(param_1[0x29] + 0x2c)" * (cast_expression "(int *)(param_1[0x29] + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x29] + 0x2c)" ( (binary_expression "param_1[0x29] + 0x2c" (subscript_expression "param_1[0x29]" identifier [ number_literal ]) + number_literal) ))))) ))) )) ))) )) ))) )) (goto_statement "goto LAB_00047fcb;" goto statement_identifier ;)) (expression_statement "puVar2 = *(undefined **)(puVar2 + 0x10);" (assignment_expression "puVar2 = *(undefined **)(puVar2 + 0x10)" identifier = (pointer_expression "*(undefined **)(puVar2 + 0x10)" * (cast_expression "(undefined **)(puVar2 + 0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x10)" ( (binary_expression "puVar2 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(puVar2 != (undefined *)0x0)" ( (binary_expression "puVar2 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "param_2 = ".mbind.bss";" (assignment_expression "param_2 = ".mbind.bss"" identifier = (string_literal "".mbind.bss"" " string_content ")) ;) (if_statement "if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }" if (parenthesized_expression "(((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0))" ( (binary_expression "((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)" (parenthesized_expression "((uVar6 & 0x102) != 0)" ( (binary_expression "(uVar6 & 0x102) != 0" (parenthesized_expression "(uVar6 & 0x102)" ( (binary_expression "uVar6 & 0x102" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(param_2 = ".mbind.data", (uVar6 & 8) != 0)" ( (comma_expression "param_2 = ".mbind.data", (uVar6 & 8) != 0" (assignment_expression "param_2 = ".mbind.data"" identifier = (string_literal "".mbind.data"" " string_content ")) , (binary_expression "(uVar6 & 8) != 0" (parenthesized_expression "(uVar6 & 8)" ( (binary_expression "uVar6 & 8" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }" { (expression_statement "param_2 = ".mbind.text";" (assignment_expression "param_2 = ".mbind.text"" identifier = (string_literal "".mbind.text"" " string_content ")) ;) (if_statement "if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }" if (parenthesized_expression "((uVar6 & 0x10) == 0)" ( (binary_expression "(uVar6 & 0x10) == 0" (parenthesized_expression "(uVar6 & 0x10)" ( (binary_expression "uVar6 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            param_2 = ".mbind.rodata";\n          }" { (expression_statement "param_2 = ".mbind.rodata";" (assignment_expression "param_2 = ".mbind.rodata"" identifier = (string_literal "".mbind.rodata"" " string_content ")) ;) })) })) }))) }))) }) (else_clause "else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }" else (compound_statement "{\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }" { (expression_statement "uVar6 = param_1[5];" (assignment_expression "uVar6 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (if_statement "if ((uVar6 & 1) == 0) goto LAB_00047c3c;" if (parenthesized_expression "((uVar6 & 1) == 0)" ( (binary_expression "(uVar6 & 1) == 0" (parenthesized_expression "(uVar6 & 1)" ( (binary_expression "uVar6 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00047c3c;" goto statement_identifier ;)) (expression_statement "bVar13 = uVar1 < 5;" (assignment_expression "bVar13 = uVar1 < 5" identifier = (binary_expression "uVar1 < 5" identifier < number_literal)) ;) (expression_statement "bVar15 = uVar1 == 5;" (assignment_expression "bVar15 = uVar1 == 5" identifier = (binary_expression "uVar1 == 5" identifier == number_literal)) ;) (if_statement "if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }" { (if_statement "if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }" if (parenthesized_expression "(local_34 == (undefined *)0x4)" ( (binary_expression "local_34 == (undefined *)0x4" identifier == (cast_expression "(undefined *)0x4" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }" { (expression_statement "param_2 = ".rela.dyn";" (assignment_expression "param_2 = ".rela.dyn"" identifier = (string_literal "".rela.dyn"" " string_content ")) ;) (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" identifier = true) ;) (goto_statement "goto LAB_00047b5c;" goto statement_identifier ;) })) (expression_statement "bVar16 = local_34 == (undefined *)0x9;" (assignment_expression "bVar16 = local_34 == (undefined *)0x9" identifier = (binary_expression "local_34 == (undefined *)0x9" identifier == (cast_expression "(undefined *)0x9" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar16) {\n        param_2 = ".rel.dyn";\n      }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\n        param_2 = ".rel.dyn";\n      }" { (expression_statement "param_2 = ".rel.dyn";" (assignment_expression "param_2 = ".rel.dyn"" identifier = (string_literal "".rel.dyn"" " string_content ")) ;) })) (if_statement "if (iVar5 == 5) goto LAB_00047b7b;" if (parenthesized_expression "(iVar5 == 5)" ( (binary_expression "iVar5 == 5" identifier == number_literal) )) (goto_statement "goto LAB_00047b7b;" goto statement_identifier ;)) }) (else_clause "else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }" else (compound_statement "{\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }" { (expression_statement "iVar4 = 4;" (assignment_expression "iVar4 = 4" identifier = number_literal) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "pbVar7 = (byte *)param_2;" (assignment_expression "pbVar7 = (byte *)param_2" identifier = (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar8 = &DAT_000ae302;" (assignment_expression "pbVar8 = &DAT_000ae302" identifier = (pointer_expression "&DAT_000ae302" & identifier)) ;) (do_statement "do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);" do (compound_statement "{\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      }" { (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar7 < *pbVar8;" (assignment_expression "bVar13 = *pbVar7 < *pbVar8" identifier = (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "bVar15 = *pbVar7 == *pbVar8;" (assignment_expression "bVar15 = *pbVar7 == *pbVar8" identifier = (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }" if (parenthesized_expression "((!bVar13 && !bVar15) == bVar13)" ( (binary_expression "(!bVar13 && !bVar15) == bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" ( (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier) )) (compound_statement "{\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }" { (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" identifier = true) ;) (if_statement "if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }" if (parenthesized_expression "(((byte *)param_2)[4] == 0x61)" ( (binary_expression "((byte *)param_2)[4] == 0x61" (subscript_expression "((byte *)param_2)[4]" (parenthesized_expression "((byte *)param_2)" ( (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_2 = ".rela.dyn";\n        }" { (expression_statement "param_2 = ".rela.dyn";" (assignment_expression "param_2 = ".rela.dyn"" identifier = (string_literal "".rela.dyn"" " string_content ")) ;) }) (else_clause "else {\n          param_2 = ".rel.dyn";\n        }" else (compound_statement "{\n          param_2 = ".rel.dyn";\n        }" { (expression_statement "param_2 = ".rel.dyn";" (assignment_expression "param_2 = ".rel.dyn"" identifier = (string_literal "".rel.dyn"" " string_content ")) ;) }))) })) }))) }))))) (if_statement "if ((param_3 == 0) &&\n     (puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0)) {\n    puVar11 = (undefined *)0x0;\n    do {\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    } while (puVar2 != (undefined *)0x0);\n    param_3 = 0x17e;\n    if (puVar10 != (undefined *)0x0) {\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }\n  }" if (parenthesized_expression "((param_3 == 0) &&\n     (puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0))" ( (binary_expression "(param_3 == 0) &&\n     (puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0)" (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) && (parenthesized_expression "(puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0)" ( (comma_expression "puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0" (assignment_expression "puVar2 = (undefined *)FUN_000256d0(param_2,0,0)" identifier = (cast_expression "(undefined *)FUN_000256d0(param_2,0,0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000256d0(param_2,0,0)" identifier (argument_list "(param_2,0,0)" ( identifier , number_literal , number_literal ))))) , (binary_expression "puVar2 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    puVar11 = (undefined *)0x0;\n    do {\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    } while (puVar2 != (undefined *)0x0);\n    param_3 = 0x17e;\n    if (puVar10 != (undefined *)0x0) {\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }\n  }" { (expression_statement "puVar11 = (undefined *)0x0;" (assignment_expression "puVar11 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    } while (puVar2 != (undefined *)0x0);" do (compound_statement "{\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    }" { (expression_statement "iVar4 = *(int *)(puVar2 + 0x1c);" (assignment_expression "iVar4 = *(int *)(puVar2 + 0x1c)" identifier = (pointer_expression "*(int *)(puVar2 + 0x1c)" * (cast_expression "(int *)(puVar2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1c)" ( (binary_expression "puVar2 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "puVar10 = puVar2;" (assignment_expression "puVar10 = puVar2" identifier = identifier) ;) (if_statement "if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }" { (if_statement "if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;" if (parenthesized_expression "(*(uint *)(iVar4 + 0x14) == 0)" ( (binary_expression "*(uint *)(iVar4 + 0x14) == 0" (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00047fcb;" goto statement_identifier ;)) (expression_statement "puVar10 = puVar11;" (assignment_expression "puVar10 = puVar11" identifier = identifier) ;) (if_statement "if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }" if (parenthesized_expression "(((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0)" ( (binary_expression "((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0" (parenthesized_expression "((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3)" ( (binary_expression "(*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3" (parenthesized_expression "(*(uint *)(iVar4 + 0x14) ^ param_1[5])" ( (binary_expression "*(uint *)(iVar4 + 0x14) ^ param_1[5]" (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) ^ (subscript_expression "param_1[5]" identifier [ number_literal ])) )) & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }" { (if_statement "if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;" if (parenthesized_expression "((uVar1 != 5) || (iVar5 != 5))" ( (binary_expression "(uVar1 != 5) || (iVar5 != 5)" (parenthesized_expression "(uVar1 != 5)" ( (binary_expression "uVar1 != 5" identifier != number_literal) )) || (parenthesized_expression "(iVar5 != 5)" ( (binary_expression "iVar5 != 5" identifier != number_literal) ))) )) (goto_statement "goto LAB_00047fcb;" goto statement_identifier ;)) (if_statement "if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }" if (parenthesized_expression "((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))" ( (binary_expression "(*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8)))))" (parenthesized_expression "(*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))" ( (binary_expression "*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)" (pointer_expression "*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c)" * (cast_expression "(int *)(*(int *)(iVar4 + 0xa4) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0xa4) + 0x2c)" ( (binary_expression "*(int *)(iVar4 + 0xa4) + 0x2c" (pointer_expression "*(int *)(iVar4 + 0xa4)" * (cast_expression "(int *)(iVar4 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xa4)" ( (binary_expression "iVar4 + 0xa4" identifier + number_literal) )))) + number_literal) )))) == (pointer_expression "*(int *)(param_1[0x29] + 0x2c)" * (cast_expression "(int *)(param_1[0x29] + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x29] + 0x2c)" ( (binary_expression "param_1[0x29] + 0x2c" (subscript_expression "param_1[0x29]" identifier [ number_literal ]) + number_literal) ))))) )) && (parenthesized_expression "(((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8)))))" ( (parenthesized_expression "((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))" ( (binary_expression "(DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8)))" (binary_expression "(DAT_001d03e0 & 3) != 2" (parenthesized_expression "(DAT_001d03e0 & 3)" ( (binary_expression "DAT_001d03e0 & 3" identifier & number_literal) )) != number_literal) || (parenthesized_expression "(-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8)))" ( (binary_expression "-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))" number_literal < (cast_expression "(int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))" ( (binary_expression "*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8)" (pointer_expression "*(uint *)(*(int *)(iVar4 + 0xa4) + 8)" * (cast_expression "(uint *)(*(int *)(iVar4 + 0xa4) + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0xa4) + 8)" ( (binary_expression "*(int *)(iVar4 + 0xa4) + 8" (pointer_expression "*(int *)(iVar4 + 0xa4)" * (cast_expression "(int *)(iVar4 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xa4)" ( (binary_expression "iVar4 + 0xa4" identifier + number_literal) )))) + number_literal) )))) ^ (pointer_expression "*(uint *)(param_1[0x29] + 8)" * (cast_expression "(uint *)(param_1[0x29] + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x29] + 8)" ( (binary_expression "param_1[0x29] + 8" (subscript_expression "param_1[0x29]" identifier [ number_literal ]) + number_literal) ))))) )))) ))) )) ))) )) (compound_statement "{\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }" { (expression_statement "iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);" (assignment_expression "iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1)" identifier = (call_expression "_bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1)" identifier (argument_list "(DAT_001d0414,iVar4,param_1[0x2b],param_1)" ( identifier , identifier , (subscript_expression "param_1[0x2b]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (iVar4 != 0) goto LAB_00047fcb;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00047fcb;" goto statement_identifier ;)) (if_statement "if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }" if (parenthesized_expression "(*(int *)(puVar2 + 0x1c) == 0)" ( (binary_expression "*(int *)(puVar2 + 0x1c) == 0" (pointer_expression "*(int *)(puVar2 + 0x1c)" * (cast_expression "(int *)(puVar2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1c)" ( (binary_expression "puVar2 + 0x1c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              puVar10 = puVar2;\n            }" { (expression_statement "puVar10 = puVar2;" (assignment_expression "puVar10 = puVar2" identifier = identifier) ;) })) })) })) })) (expression_statement "puVar2 = (undefined *)FUN_00025b20(puVar2,0);" (assignment_expression "puVar2 = (undefined *)FUN_00025b20(puVar2,0)" identifier = (cast_expression "(undefined *)FUN_00025b20(puVar2,0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00025b20(puVar2,0)" identifier (argument_list "(puVar2,0)" ( identifier , number_literal ))))) ;) (expression_statement "puVar11 = puVar10;" (assignment_expression "puVar11 = puVar10" identifier = identifier) ;) }) while (parenthesized_expression "(puVar2 != (undefined *)0x0)" ( (binary_expression "puVar2 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "param_3 = 0x17e;" (assignment_expression "param_3 = 0x17e" identifier = number_literal) ;) (if_statement "if (puVar10 != (undefined *)0x0) {\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }" if (parenthesized_expression "(puVar10 != (undefined *)0x0)" ( (binary_expression "puVar10 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }" { (expression_statement "FUN_00026550(puVar10 + 8,param_1,0,puVar10);" (call_expression "FUN_00026550(puVar10 + 8,param_1,0,puVar10)" identifier (argument_list "(puVar10 + 8,param_1,0,puVar10)" ( (binary_expression "puVar10 + 8" identifier + number_literal) , identifier , number_literal , identifier ))) ;) (return_statement "return puVar10;" return identifier ;) })) })) (if_statement "if (DAT_001cfba8 == 0) {\n    ppuVar9 = &PTR_s__text_001ce860;\n    do {\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    } while (ppuVar9 != (undefined **)&DAT_001ce938);\n    DAT_001cfba8 = 1;\n  }" if (parenthesized_expression "(DAT_001cfba8 == 0)" ( (binary_expression "DAT_001cfba8 == 0" identifier == number_literal) )) (compound_statement "{\n    ppuVar9 = &PTR_s__text_001ce860;\n    do {\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    } while (ppuVar9 != (undefined **)&DAT_001ce938);\n    DAT_001cfba8 = 1;\n  }" { (expression_statement "ppuVar9 = &PTR_s__text_001ce860;" (assignment_expression "ppuVar9 = &PTR_s__text_001ce860" identifier = (pointer_expression "&PTR_s__text_001ce860" & identifier)) ;) (do_statement "do {\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    } while (ppuVar9 != (undefined **)&DAT_001ce938);" do (compound_statement "{\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    }" { (if_statement "if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }" if (parenthesized_expression "(*ppuVar9 != (undefined *)0x0)" ( (binary_expression "*ppuVar9 != (undefined *)0x0" (pointer_expression "*ppuVar9" * identifier) != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }" { (expression_statement "puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);" (assignment_expression "puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0)" identifier = (cast_expression "(undefined *)FUN_000256d0(*ppuVar9,0,0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000256d0(*ppuVar9,0,0)" identifier (argument_list "(*ppuVar9,0,0)" ( (pointer_expression "*ppuVar9" * identifier) , number_literal , number_literal ))))) ;) (expression_statement "ppuVar9[2] = puVar2;" (assignment_expression "ppuVar9[2] = puVar2" (subscript_expression "ppuVar9[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }" if (parenthesized_expression "((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0))" ( (binary_expression "(puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)" (parenthesized_expression "(puVar2 != (undefined *)0x0)" ( (binary_expression "puVar2 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(int *)(puVar2 + 0x4c) == 0)" ( (binary_expression "*(int *)(puVar2 + 0x4c) == 0" (pointer_expression "*(int *)(puVar2 + 0x4c)" * (cast_expression "(int *)(puVar2 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x4c)" ( (binary_expression "puVar2 + 0x4c" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }" { (expression_statement "*(undefined **)(puVar2 + 0x4c) = ppuVar9[1];" (assignment_expression "*(undefined **)(puVar2 + 0x4c) = ppuVar9[1]" (pointer_expression "*(undefined **)(puVar2 + 0x4c)" * (cast_expression "(undefined **)(puVar2 + 0x4c)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x4c)" ( (binary_expression "puVar2 + 0x4c" identifier + number_literal) )))) = (subscript_expression "ppuVar9[1]" identifier [ number_literal ])) ;) })) })) (expression_statement "ppuVar9 = ppuVar9 + 6;" (assignment_expression "ppuVar9 = ppuVar9 + 6" identifier = (binary_expression "ppuVar9 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppuVar9 != (undefined **)&DAT_001ce938)" ( (binary_expression "ppuVar9 != (undefined **)&DAT_001ce938" identifier != (cast_expression "(undefined **)&DAT_001ce938" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_001ce938" & identifier))) )) ;) (expression_statement "DAT_001cfba8 = 1;" (assignment_expression "DAT_001cfba8 = 1" identifier = number_literal) ;) })) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "bVar15 = (DAT_001d03e0 & 2) == 0;" (assignment_expression "bVar15 = (DAT_001d03e0 & 2) == 0" identifier = (binary_expression "(DAT_001d03e0 & 2) == 0" (parenthesized_expression "(DAT_001d03e0 & 2)" ( (binary_expression "DAT_001d03e0 & 2" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar15) {\n    iVar5 = 0xd;\n    pbVar7 = (byte *)*param_1;\n    pbVar8 = (byte *)".gnu.warning.";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if (((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)) {\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n    iVar5 = 0xd;\n    pbVar7 = (byte *)*param_1;\n    pbVar8 = (byte *)".gnu.warning.";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if (((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)) {\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }\n  }" { (expression_statement "iVar5 = 0xd;" (assignment_expression "iVar5 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar7 = (byte *)*param_1;" (assignment_expression "pbVar7 = (byte *)*param_1" identifier = (cast_expression "(byte *)*param_1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "pbVar8 = (byte *)".gnu.warning.";" (assignment_expression "pbVar8 = (byte *)".gnu.warning."" identifier = (cast_expression "(byte *)".gnu.warning."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".gnu.warning."" " string_content "))) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar7 < *pbVar8;" (assignment_expression "bVar13 = *pbVar7 < *pbVar8" identifier = (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "bVar15 = *pbVar7 == *pbVar8;" (assignment_expression "bVar15 = *pbVar7 == *pbVar8" identifier = (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if (((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)) {\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }" if (parenthesized_expression "(((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0))" ( (binary_expression "((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)" (parenthesized_expression "((!bVar13 && !bVar15) == bVar13)" ( (binary_expression "(!bVar13 && !bVar15) == bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" ( (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier) )) && (parenthesized_expression "(puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)" ( (comma_expression "puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0" (assignment_expression "puVar2 = DAT_001ce868" identifier = identifier) , (binary_expression "DAT_001ce868 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }" { (labeled_statement "LAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);" statement_identifier : (expression_statement "FUN_00026550(puVar2 + 8,param_1,0,puVar2);" (call_expression "FUN_00026550(puVar2 + 8,param_1,0,puVar2)" identifier (argument_list "(puVar2 + 8,param_1,0,puVar2)" ( (binary_expression "puVar2 + 8" identifier + number_literal) , identifier , number_literal , identifier ))) ;)) (return_statement "return puVar2;" return identifier ;) })) })) (expression_statement "local_48 = param_1[5];" (assignment_expression "local_48 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (if_statement "if ((DAT_001d03e0 & 3) != 2) {\n    iVar5 = param_1[0x2b];\n    piVar3 = param_1;\n    while (piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0) {\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }\n  }" if (parenthesized_expression "((DAT_001d03e0 & 3) != 2)" ( (binary_expression "(DAT_001d03e0 & 3) != 2" (parenthesized_expression "(DAT_001d03e0 & 3)" ( (binary_expression "DAT_001d03e0 & 3" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    iVar5 = param_1[0x2b];\n    piVar3 = param_1;\n    while (piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0) {\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }\n  }" { (expression_statement "iVar5 = param_1[0x2b];" (assignment_expression "iVar5 = param_1[0x2b]" identifier = (subscript_expression "param_1[0x2b]" identifier [ number_literal ])) ;) (expression_statement "piVar3 = param_1;" (assignment_expression "piVar3 = param_1" identifier = identifier) ;) (while_statement "while (piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0) {\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }" while (parenthesized_expression "(piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0)" ( (comma_expression "piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0" (assignment_expression "piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3)" identifier = (cast_expression "(int *)bfd_get_next_section_by_name(iVar5,piVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_get_next_section_by_name(iVar5,piVar3)" identifier (argument_list "(iVar5,piVar3)" ( identifier , identifier ))))) , (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }" { (expression_statement "iVar5 = piVar3[0x2b];" (assignment_expression "iVar5 = piVar3[0x2b]" identifier = (subscript_expression "piVar3[0x2b]" identifier [ number_literal ])) ;) (if_statement "if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }" if (parenthesized_expression "((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         )" ( (binary_expression "(((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))" (parenthesized_expression "(((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0))" ( (binary_expression "((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)" (parenthesized_expression "((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           )" ( (binary_expression "(piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)" (parenthesized_expression "(piVar3[0x15] == 0)" ( (binary_expression "piVar3[0x15] == 0" (subscript_expression "piVar3[0x15]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)" ( (binary_expression "((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0" (binary_expression "((local_48 ^ piVar3[5]) & 3) == 0" (parenthesized_expression "((local_48 ^ piVar3[5]) & 3)" ( (binary_expression "(local_48 ^ piVar3[5]) & 3" (parenthesized_expression "(local_48 ^ piVar3[5])" ( (binary_expression "local_48 ^ piVar3[5]" identifier ^ (subscript_expression "piVar3[5]" identifier [ number_literal ])) )) & number_literal) )) == number_literal) && (binary_expression "(piVar3[5] & 0x8000U) == 0" (parenthesized_expression "(piVar3[5] & 0x8000U)" ( (binary_expression "piVar3[5] & 0x8000U" (subscript_expression "piVar3[5]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "((*(byte *)(iVar5 + 0x29) & 8) == 0)" ( (binary_expression "(*(byte *)(iVar5 + 0x29) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x29) & 8)" ( (binary_expression "*(byte *)(iVar5 + 0x29) & 8" (pointer_expression "*(byte *)(iVar5 + 0x29)" * (cast_expression "(byte *)(iVar5 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x29)" ( (binary_expression "iVar5 + 0x29" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))" ( (parenthesized_expression "(*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0))" ( (binary_expression "*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)" (binary_expression "*(int *)(iVar5 + 0xa4) != 0" (pointer_expression "*(int *)(iVar5 + 0xa4)" * (cast_expression "(int *)(iVar5 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xa4)" ( (binary_expression "iVar5 + 0xa4" identifier + number_literal) )))) != number_literal) && (parenthesized_expression "((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10)" ( (binary_expression "*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10" (pointer_expression "*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24)" * (cast_expression "(byte *)(*(int *)(iVar5 + 0xa4) + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0xa4) + 0x24)" ( (binary_expression "*(int *)(iVar5 + 0xa4) + 0x24" (pointer_expression "*(int *)(iVar5 + 0xa4)" * (cast_expression "(int *)(iVar5 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xa4)" ( (binary_expression "iVar5 + 0xa4" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }" { (expression_statement "iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);" (assignment_expression "iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1)" identifier = (call_expression "_bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1)" identifier (argument_list "(iVar5,piVar3,param_1[0x2b],param_1)" ( identifier , identifier , (subscript_expression "param_1[0x2b]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }" { (expression_statement "local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;" (assignment_expression "local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8" identifier = (binary_expression "(piVar3[5] ^ 8U | local_48 ^ 8) ^ 8" (parenthesized_expression "(piVar3[5] ^ 8U | local_48 ^ 8)" ( (binary_expression "piVar3[5] ^ 8U | local_48 ^ 8" (binary_expression "piVar3[5] ^ 8U" (subscript_expression "piVar3[5]" identifier [ number_literal ]) ^ number_literal) | (binary_expression "local_48 ^ 8" identifier ^ number_literal)) )) ^ number_literal)) ;) })) (expression_statement "iVar5 = piVar3[0x2b];" (assignment_expression "iVar5 = piVar3[0x2b]" identifier = (subscript_expression "piVar3[0x2b]" identifier [ number_literal ])) ;) })) })) })) (if_statement "if ((local_48 & 0x2001) == 0) {\n    local_44 = &PTR_s__comment_001ce920;\n    goto LAB_00047da5;\n  }" if (parenthesized_expression "((local_48 & 0x2001) == 0)" ( (binary_expression "(local_48 & 0x2001) == 0" (parenthesized_expression "(local_48 & 0x2001)" ( (binary_expression "local_48 & 0x2001" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    local_44 = &PTR_s__comment_001ce920;\n    goto LAB_00047da5;\n  }" { (expression_statement "local_44 = &PTR_s__comment_001ce920;" (assignment_expression "local_44 = &PTR_s__comment_001ce920" identifier = (pointer_expression "&PTR_s__comment_001ce920" & identifier)) ;) (goto_statement "goto LAB_00047da5;" goto statement_identifier ;) })) (if_statement "if ((local_48 & 1) == 0) {\n    local_44 = (undefined **)0x0;\n    local_40 = (undefined *)0x0;\n    goto LAB_00047db8;\n  }" if (parenthesized_expression "((local_48 & 1) == 0)" ( (binary_expression "(local_48 & 1) == 0" (parenthesized_expression "(local_48 & 1)" ( (binary_expression "local_48 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    local_44 = (undefined **)0x0;\n    local_40 = (undefined *)0x0;\n    goto LAB_00047db8;\n  }" { (expression_statement "local_44 = (undefined **)0x0;" (assignment_expression "local_44 = (undefined **)0x0" identifier = (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_40 = (undefined *)0x0;" (assignment_expression "local_40 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00047db8;" goto statement_identifier ;) })) (if_statement "if ((local_48 & 2) == 0) {\nLAB_00047e40:\n    local_44 = &PTR_s__bss_001ce8c0;\n    if (((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)) {\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }\n  }\n  else if ((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)) {\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }" if (parenthesized_expression "((local_48 & 2) == 0)" ( (binary_expression "(local_48 & 2) == 0" (parenthesized_expression "(local_48 & 2)" ( (binary_expression "local_48 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00047e40:\n    local_44 = &PTR_s__bss_001ce8c0;\n    if (((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)) {\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }\n  }" { (labeled_statement "LAB_00047e40:\n    local_44 = &PTR_s__bss_001ce8c0;" statement_identifier : (expression_statement "local_44 = &PTR_s__bss_001ce8c0;" (assignment_expression "local_44 = &PTR_s__bss_001ce8c0" identifier = (pointer_expression "&PTR_s__bss_001ce8c0" & identifier)) ;)) (if_statement "if (((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)) {\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }" if (parenthesized_expression "(((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0))" ( (binary_expression "((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)" (parenthesized_expression "((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0))" ( (binary_expression "(((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)" (parenthesized_expression "(((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0))" ( (binary_expression "((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)" (parenthesized_expression "((local_48 & 0x502) != 0)" ( (binary_expression "(local_48 & 0x502) != 0" (parenthesized_expression "(local_48 & 0x502)" ( (binary_expression "local_48 & 0x502" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)" ( (comma_expression "local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0" (assignment_expression "local_44 = &PTR_s__sdata_001ce908" identifier = (pointer_expression "&PTR_s__sdata_001ce908" & identifier)) , (binary_expression "(local_48 & 0x400000) == 0" (parenthesized_expression "(local_48 & 0x400000)" ( (binary_expression "local_48 & 0x400000" identifier & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "(local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)" ( (comma_expression "local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0" (assignment_expression "local_44 = &PTR_s__tdata_001ce890" identifier = (pointer_expression "&PTR_s__tdata_001ce890" & identifier)) , (binary_expression "(local_48 & 0x400) == 0" (parenthesized_expression "(local_48 & 0x400)" ( (binary_expression "local_48 & 0x400" identifier & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "(local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)" ( (comma_expression "local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0" (assignment_expression "local_44 = &PTR_s__data_001ce8a8" identifier = (pointer_expression "&PTR_s__data_001ce8a8" & identifier)) , (binary_expression "(local_48 & 8) != 0" (parenthesized_expression "(local_48 & 8)" ( (binary_expression "local_48 & 8" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }" { (expression_statement "bVar14 = uVar1 < 5;" (assignment_expression "bVar14 = uVar1 < 5" identifier = (binary_expression "uVar1 < 5" identifier < number_literal)) ;) (expression_statement "bVar13 = uVar1 == 5;" (assignment_expression "bVar13 = uVar1 == 5" identifier = (binary_expression "uVar1 == 5" identifier == number_literal)) ;) (if_statement "if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }" { (if_statement "if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;" if (parenthesized_expression "((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9))" ( (binary_expression "(local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)" (parenthesized_expression "(local_34 == (undefined *)0x4)" ( (binary_expression "local_34 == (undefined *)0x4" identifier == (cast_expression "(undefined *)0x4" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_34 == (undefined *)0x9)" ( (binary_expression "local_34 == (undefined *)0x9" identifier == (cast_expression "(undefined *)0x9" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_00047ebf;" goto statement_identifier ;)) }) (else_clause "else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }" else (compound_statement "{\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }" { (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (expression_statement "pbVar7 = (byte *)param_2;" (assignment_expression "pbVar7 = (byte *)param_2" identifier = (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar8 = &DAT_000ae302;" (assignment_expression "pbVar8 = &DAT_000ae302" identifier = (pointer_expression "&DAT_000ae302" & identifier)) ;) (do_statement "do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);" do (compound_statement "{\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar7 < *pbVar8;" (assignment_expression "bVar14 = *pbVar7 < *pbVar8" identifier = (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "bVar13 = *pbVar7 == *pbVar8;" (assignment_expression "bVar13 = *pbVar7 == *pbVar8" identifier = (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }" if (parenthesized_expression "((!bVar14 && !bVar13) == bVar14)" ( (binary_expression "(!bVar14 && !bVar13) == bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" ( (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }" { (labeled_statement "LAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;" statement_identifier : (expression_statement "local_44 = (undefined **)&DAT_001ce8d8;" (assignment_expression "local_44 = (undefined **)&DAT_001ce8d8" identifier = (cast_expression "(undefined **)&DAT_001ce8d8" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_001ce8d8" & identifier))) ;)) (if_statement "if ((local_48 & 2) != 0) goto LAB_00047da5;" if (parenthesized_expression "((local_48 & 2) != 0)" ( (binary_expression "(local_48 & 2) != 0" (parenthesized_expression "(local_48 & 2)" ( (binary_expression "local_48 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00047da5;" goto statement_identifier ;)) })) }))) (expression_statement "local_44 = &PTR_s__text_001ce860;" (assignment_expression "local_44 = &PTR_s__text_001ce860" identifier = (pointer_expression "&PTR_s__text_001ce860" & identifier)) ;) (if_statement "if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }" if (parenthesized_expression "((local_48 & 0x10) == 0)" ( (binary_expression "(local_48 & 0x10) == 0" (parenthesized_expression "(local_48 & 0x10)" ( (binary_expression "local_48 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        local_44 = (undefined **)&DAT_001ce878;\n      }" { (expression_statement "local_44 = (undefined **)&DAT_001ce878;" (assignment_expression "local_44 = (undefined **)&DAT_001ce878" identifier = (cast_expression "(undefined **)&DAT_001ce878" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_001ce878" & identifier))) ;) })) })) }) (else_clause "else if ((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)) {\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }" else (if_statement "if ((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)) {\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }" if (parenthesized_expression "((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14))" ( (binary_expression "(local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)" (parenthesized_expression "(local_34 != (undefined *)0x7)" ( (binary_expression "local_34 != (undefined *)0x7" identifier != (cast_expression "(undefined *)0x7" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_44 = &PTR_s__interp_001ce8f0, !bVar14)" ( (comma_expression "local_44 = &PTR_s__interp_001ce8f0, !bVar14" (assignment_expression "local_44 = &PTR_s__interp_001ce8f0" identifier = (pointer_expression "&PTR_s__interp_001ce8f0" & identifier)) , (unary_expression "!bVar14" ! identifier)) ))) )) (compound_statement "{\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }" { (expression_statement "bVar14 = uVar1 < 5;" (assignment_expression "bVar14 = uVar1 < 5" identifier = (binary_expression "uVar1 < 5" identifier < number_literal)) ;) (expression_statement "bVar13 = uVar1 == 5;" (assignment_expression "bVar13 = uVar1 == 5" identifier = (binary_expression "uVar1 == 5" identifier == number_literal)) ;) (if_statement "if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (compound_statement "{\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }" { (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (expression_statement "pbVar7 = (byte *)param_2;" (assignment_expression "pbVar7 = (byte *)param_2" identifier = (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar8 = (byte *)".note";" (assignment_expression "pbVar8 = (byte *)".note"" identifier = (cast_expression "(byte *)".note"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".note"" " string_content "))) ;) (do_statement "do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);" do (compound_statement "{\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar7 < *pbVar8;" (assignment_expression "bVar14 = *pbVar7 < *pbVar8" identifier = (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "bVar13 = *pbVar7 == *pbVar8;" (assignment_expression "bVar13 = *pbVar7 == *pbVar8" identifier = (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "local_44 = &PTR_s__interp_001ce8f0;" (assignment_expression "local_44 = &PTR_s__interp_001ce8f0" identifier = (pointer_expression "&PTR_s__interp_001ce8f0" & identifier)) ;) (if_statement "if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;" if (parenthesized_expression "((!bVar14 && !bVar13) == bVar14)" ( (binary_expression "(!bVar14 && !bVar13) == bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" ( (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_00047da5;" goto statement_identifier ;)) })) (goto_statement "goto LAB_00047e40;" goto statement_identifier ;) })))) (labeled_statement "LAB_00047da5:\n  local_40 = local_44[2];" statement_identifier : (expression_statement "local_40 = local_44[2];" (assignment_expression "local_40 = local_44[2]" identifier = (subscript_expression "local_44[2]" identifier [ number_literal ])) ;)) (if_statement "if (local_40 != (undefined *)0x0) goto LAB_00047db8;" if (parenthesized_expression "(local_40 != (undefined *)0x0)" ( (binary_expression "local_40 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00047db8;" goto statement_identifier ;)) (if_statement "if (*local_44 == (undefined *)0x0) {\n    if (DAT_001d03a0 != (undefined *)0x0) {\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }\n  }\n  else {\n    local_40 = (undefined *)FUN_000256d0(*local_44,0,0);\n    local_44[2] = local_40;\nLAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  }" if (parenthesized_expression "(*local_44 == (undefined *)0x0)" ( (binary_expression "*local_44 == (undefined *)0x0" (pointer_expression "*local_44" * identifier) == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (DAT_001d03a0 != (undefined *)0x0) {\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }\n  }" { (if_statement "if (DAT_001d03a0 != (undefined *)0x0) {\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }" if (parenthesized_expression "(DAT_001d03a0 != (undefined *)0x0)" ( (binary_expression "DAT_001d03a0 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }" { (expression_statement "local_38 = (undefined *)0x0;" (assignment_expression "local_38 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_28 = (undefined *)0x0;" (assignment_expression "local_28 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_40 = (undefined *)0x0;" (assignment_expression "local_40 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = (undefined *)0x0;" (assignment_expression "local_34 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar11 = DAT_001d03a0;" (assignment_expression "puVar11 = DAT_001d03a0" identifier = identifier) ;) (expression_statement "puVar2 = (undefined *)0x0;" (assignment_expression "puVar2 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);" do (compound_statement "{\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      }" { (expression_statement "puVar10 = puVar11;" (assignment_expression "puVar10 = puVar11" identifier = identifier) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar13 = *(int *)(puVar10 + 0x48) == 0;" (assignment_expression "bVar13 = *(int *)(puVar10 + 0x48) == 0" identifier = (binary_expression "*(int *)(puVar10 + 0x48) == 0" (pointer_expression "*(int *)(puVar10 + 0x48)" * (cast_expression "(int *)(puVar10 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x48)" ( (binary_expression "puVar10 + 0x48" identifier + number_literal) )))) == number_literal)) ;) (if_statement "if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }" if (parenthesized_expression "(*(int *)(puVar10 + 0x48) < 0)" ( (binary_expression "*(int *)(puVar10 + 0x48) < 0" (pointer_expression "*(int *)(puVar10 + 0x48)" * (cast_expression "(int *)(puVar10 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x48)" ( (binary_expression "puVar10 + 0x48" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }" { (labeled_statement "LAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);" statement_identifier : (expression_statement "iVar5 = *(int *)(puVar10 + 0x1c);" (assignment_expression "iVar5 = *(int *)(puVar10 + 0x1c)" identifier = (pointer_expression "*(int *)(puVar10 + 0x1c)" * (cast_expression "(int *)(puVar10 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x1c)" ( (binary_expression "puVar10 + 0x1c" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }" statement_identifier : (if_statement "if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }" { (expression_statement "uVar1 = *(uint *)(iVar5 + 0x14);" (assignment_expression "uVar1 = *(uint *)(iVar5 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "puVar2 = local_40;" (assignment_expression "puVar2 = local_40" identifier = identifier) ;) (labeled_statement "joined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }" statement_identifier : (if_statement "if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }" if (parenthesized_expression "(((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0))" ( (binary_expression "((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)" (parenthesized_expression "((uVar1 & 1) != 0)" ( (binary_expression "(uVar1 & 1) != 0" (parenthesized_expression "(uVar1 & 1)" ( (binary_expression "uVar1 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)" ( (comma_expression "local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0" (assignment_expression "local_40 = puVar2" identifier = identifier) , (comma_expression "local_28 = puVar10, (uVar1 & 8) != 0" (assignment_expression "local_28 = puVar10" identifier = identifier) , (binary_expression "(uVar1 & 8) != 0" (parenthesized_expression "(uVar1 & 8)" ( (binary_expression "uVar1 & 8" identifier & number_literal) )) != number_literal))) ))) )) (compound_statement "{\n              local_38 = puVar10;\n            }" { (expression_statement "local_38 = puVar10;" (assignment_expression "local_38 = puVar10" identifier = identifier) ;) }))) }))) }) (else_clause "else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }" else (compound_statement "{\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }" { (expression_statement "pbVar7 = *(byte **)(puVar10 + 0x18);" (assignment_expression "pbVar7 = *(byte **)(puVar10 + 0x18)" identifier = (pointer_expression "*(byte **)(puVar10 + 0x18)" * (cast_expression "(byte **)(puVar10 + 0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (expression_statement "pbVar8 = pbVar7;" (assignment_expression "pbVar8 = pbVar7" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_000ae302;" (assignment_expression "pbVar12 = &DAT_000ae302" identifier = (pointer_expression "&DAT_000ae302" & identifier)) ;) (do_statement "do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);" do (compound_statement "{\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar8 < *pbVar12;" (assignment_expression "bVar14 = *pbVar8 < *pbVar12" identifier = (binary_expression "*pbVar8 < *pbVar12" (pointer_expression "*pbVar8" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar13 = *pbVar8 == *pbVar12;" (assignment_expression "bVar13 = *pbVar8 == *pbVar12" identifier = (binary_expression "*pbVar8 == *pbVar12" (pointer_expression "*pbVar8" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;" if (parenthesized_expression "((!bVar14 && !bVar13) != bVar14)" ( (binary_expression "(!bVar14 && !bVar13) != bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" ( (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00048272;" goto statement_identifier ;)) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "bVar14 = !bVar16;" (assignment_expression "bVar14 = !bVar16" identifier = (unary_expression "!bVar16" ! identifier)) ;) (if_statement "if (!bVar14) break;" if (parenthesized_expression "(!bVar14)" ( (unary_expression "!bVar14" ! identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (expression_statement "pbVar8 = &DAT_000ae31b;" (assignment_expression "pbVar8 = &DAT_000ae31b" identifier = (pointer_expression "&DAT_000ae31b" & identifier)) ;) (expression_statement "pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;" (assignment_expression "pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4" identifier = (binary_expression "pbVar7 + (pbVar7[4] == 0x61) + 4" (binary_expression "pbVar7 + (pbVar7[4] == 0x61)" identifier + (parenthesized_expression "(pbVar7[4] == 0x61)" ( (binary_expression "pbVar7[4] == 0x61" (subscript_expression "pbVar7[4]" identifier [ number_literal ]) == number_literal) ))) + number_literal)) ;) (do_statement "do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);" do (compound_statement "{\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar8 < *pbVar12;" (assignment_expression "bVar13 = *pbVar8 < *pbVar12" identifier = (binary_expression "*pbVar8 < *pbVar12" (pointer_expression "*pbVar8" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar14 = *pbVar8 == *pbVar12;" (assignment_expression "bVar14 = *pbVar8 == *pbVar12" identifier = (binary_expression "*pbVar8 == *pbVar12" (pointer_expression "*pbVar8" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) (if_statement "if ((!bVar13 && !bVar14) == bVar13) break;" if (parenthesized_expression "((!bVar13 && !bVar14) == bVar13)" ( (binary_expression "(!bVar13 && !bVar14) == bVar13" (parenthesized_expression "(!bVar13 && !bVar14)" ( (binary_expression "!bVar13 && !bVar14" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar14" ! identifier)) )) == identifier) )) (break_statement "break;" break ;)) (expression_statement "bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);" (assignment_expression "bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61)" identifier = (binary_expression "(*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61)" (parenthesized_expression "(*(char *)(*param_1 + 4) == 'a')" ( (binary_expression "*(char *)(*param_1 + 4) == 'a'" (pointer_expression "*(char *)(*param_1 + 4)" * (cast_expression "(char *)(*param_1 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 4)" ( (binary_expression "*param_1 + 4" (pointer_expression "*param_1" * identifier) + number_literal) )))) == (char_literal "'a'" ' character ')) )) == (parenthesized_expression "(pbVar7[4] == 0x61)" ( (binary_expression "pbVar7[4] == 0x61" (subscript_expression "pbVar7[4]" identifier [ number_literal ]) == number_literal) )))) ;) (if_statement "if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }" if (parenthesized_expression "((local_34 == (undefined *)0x0) || (bVar14))" ( (binary_expression "(local_34 == (undefined *)0x0) || (bVar14)" (parenthesized_expression "(local_34 == (undefined *)0x0)" ( (binary_expression "local_34 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(bVar14)" ( identifier ))) )) (compound_statement "{\n            local_34 = puVar10;\n          }" { (expression_statement "local_34 = puVar10;" (assignment_expression "local_34 = puVar10" identifier = identifier) ;) })) (expression_statement "iVar5 = *(int *)(puVar10 + 0x1c);" (assignment_expression "iVar5 = *(int *)(puVar10 + 0x1c)" identifier = (pointer_expression "*(int *)(puVar10 + 0x1c)" * (cast_expression "(int *)(puVar10 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x1c)" ( (binary_expression "puVar10 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;" if (parenthesized_expression "((local_40 != (undefined *)0x0) && (!bVar14))" ( (binary_expression "(local_40 != (undefined *)0x0) && (!bVar14)" (parenthesized_expression "(local_40 != (undefined *)0x0)" ( (binary_expression "local_40 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(!bVar14)" ( (unary_expression "!bVar14" ! identifier) ))) )) (goto_statement "goto LAB_00048240;" goto statement_identifier ;)) (if_statement "if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }" { (expression_statement "uVar1 = *(uint *)(iVar5 + 0x14);" (assignment_expression "uVar1 = *(uint *)(iVar5 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "puVar2 = puVar10;" (assignment_expression "puVar2 = puVar10" identifier = identifier) ;) (goto_statement "goto joined_r0x00048289;" goto statement_identifier ;) })) }))) (expression_statement "puVar2 = puVar10;" (assignment_expression "puVar2 = puVar10" identifier = identifier) ;) (expression_statement "puVar11 = *(undefined **)(puVar10 + 0x10);" (assignment_expression "puVar11 = *(undefined **)(puVar10 + 0x10)" identifier = (pointer_expression "*(undefined **)(puVar10 + 0x10)" * (cast_expression "(undefined **)(puVar10 + 0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(undefined **)(puVar10 + 0x10) != (undefined *)0x0)" ( (binary_expression "*(undefined **)(puVar10 + 0x10) != (undefined *)0x0" (pointer_expression "*(undefined **)(puVar10 + 0x10)" * (cast_expression "(undefined **)(puVar10 + 0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) )))) != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }" if (parenthesized_expression "((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0))" ( (binary_expression "(((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)" (parenthesized_expression "(((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0))" ( (binary_expression "((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)" (parenthesized_expression "((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))" ( (binary_expression "(local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0)" (parenthesized_expression "(local_40 == (undefined *)0x0)" ( (binary_expression "local_40 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_40 = local_34, local_34 == (undefined *)0x0)" ( (comma_expression "local_40 = local_34, local_34 == (undefined *)0x0" (assignment_expression "local_40 = local_34" identifier = identifier) , (binary_expression "local_34 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(local_40 = local_38, local_38 == (undefined *)0x0)" ( (comma_expression "local_40 = local_38, local_38 == (undefined *)0x0" (assignment_expression "local_40 = local_38" identifier = identifier) , (binary_expression "local_38 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(local_40 = puVar2, local_28 != (undefined *)0x0)" ( (comma_expression "local_40 = puVar2, local_28 != (undefined *)0x0" (assignment_expression "local_40 = puVar2" identifier = identifier) , (binary_expression "local_28 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        local_40 = local_28;\n      }" { (expression_statement "local_40 = local_28;" (assignment_expression "local_40 = local_28" identifier = identifier) ;) })) (expression_statement "local_44[2] = local_40;" (assignment_expression "local_44[2] = local_40" (subscript_expression "local_44[2]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_00048089;" goto statement_identifier ;) })) }) (else_clause "else {\n    local_40 = (undefined *)FUN_000256d0(*local_44,0,0);\n    local_44[2] = local_40;\nLAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  }" else (compound_statement "{\n    local_40 = (undefined *)FUN_000256d0(*local_44,0,0);\n    local_44[2] = local_40;\nLAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  }" { (expression_statement "local_40 = (undefined *)FUN_000256d0(*local_44,0,0);" (assignment_expression "local_40 = (undefined *)FUN_000256d0(*local_44,0,0)" identifier = (cast_expression "(undefined *)FUN_000256d0(*local_44,0,0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000256d0(*local_44,0,0)" identifier (argument_list "(*local_44,0,0)" ( (pointer_expression "*local_44" * identifier) , number_literal , number_literal ))))) ;) (expression_statement "local_44[2] = local_40;" (assignment_expression "local_44[2] = local_40" (subscript_expression "local_44[2]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;" statement_identifier : (if_statement "if (local_40 != (undefined *)0x0) goto LAB_00047db8;" if (parenthesized_expression "(local_40 != (undefined *)0x0)" ( (binary_expression "local_40 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00047db8;" goto statement_identifier ;))) }))) (expression_statement "local_40 = (undefined *)\n             FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         );" (assignment_expression "local_40 = (undefined *)\n             FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         )" identifier = (cast_expression "(undefined *)\n             FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         )" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         )" identifier (argument_list "(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         )" ( identifier , identifier , (binary_expression "local_44 + 2" identifier + number_literal) , identifier ))))) ;) (if_statement "if (local_40 == (undefined *)0x0) {\n    local_40 = DAT_001d03a0;\n  }" if (parenthesized_expression "(local_40 == (undefined *)0x0)" ( (binary_expression "local_40 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_40 = DAT_001d03a0;\n  }" { (expression_statement "local_40 = DAT_001d03a0;" (assignment_expression "local_40 = DAT_001d03a0" identifier = identifier) ;) })) (labeled_statement "LAB_00047db8:\n  puVar2 = (undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0);" statement_identifier : (expression_statement "puVar2 = (undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0);" (assignment_expression "puVar2 = (undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0)" identifier = (cast_expression "(undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0)" identifier (argument_list "(param_1,param_2,param_3,local_40,local_44,0,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal ))))) ;)) (return_statement "return puVar2;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nlang_output_section_statement_type *\ngldelf_iamcu_place_orphan(asection *s,char *secname,int constraint)\n\n{\n  bfd_flavour bVar1;\n  bfd_flavour bVar2;\n  flagword fVar3;\n  lang_output_section_statement_type *plVar4;\n  bfd *pbVar5;\n  asection *paVar6;\n  lang_statement_union *plVar7;\n  int iVar8;\n  uint uVar9;\n  asection *paVar10;\n  byte *pbVar11;\n  orphan_save *poVar12;\n  lang_statement_union *plVar13;\n  lang_statement_union *plVar14;\n  byte *pbVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  uint local_48;\n  orphan_save *local_44;\n  lang_statement_union *local_40;\n  lang_statement_union *local_38;\n  lang_statement_union *local_34;\n  lang_statement_union *local_28;\n  \n  bVar20 = 0;\n  local_34 = (lang_statement_union *)0x0;\n  bVar1 = s->owner->xvec->flavour;\n  bVar17 = bVar1 == bfd_target_elf_flavour;\n  bVar2 = (link_info.output_bfd)->xvec->flavour;\n  if (bVar17) {\n    local_34 = *(lang_statement_union **)((int)s->used_by_bfd + 4);\n  }\n  if ((link_info._0_1_ & 3) == 2) {\nLAB_00047c3c:\n    bVar19 = false;\n  }\n  else if ((link_info._4_1_ & 0x40) == 0) {\n    bVar19 = false;\nLAB_00047b5c:\n    if (((bVar17) && (bVar2 == bfd_target_elf_flavour)) && (uVar9 = s->flags, (uVar9 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)((int)s->used_by_bfd + 0xb) & 1) != 0) {\n        if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n          plVar7 = lang_output_section_statement.head;\n          do {\n            paVar6 = (plVar7->output_section_statement).bfd_section;\n            if (((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))) goto LAB_00047fcb;\n            plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list;\n          } while (plVar7 != (lang_statement_union *)0x0);\n        }\n        secname = ".mbind.bss";\n        if (((uVar9 & 0x102) != 0) && (secname = ".mbind.data", (uVar9 & 8) != 0)) {\n          secname = ".mbind.text";\n          if ((uVar9 & 0x10) == 0) {\n            secname = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar9 = s->flags;\n    if ((uVar9 & 1) == 0) goto LAB_00047c3c;\n    bVar16 = bVar1 < bfd_target_elf_flavour;\n    bVar18 = bVar1 == bfd_target_elf_flavour;\n    if (bVar18) {\n      if (local_34 == (lang_statement_union *)0x4) {\n        secname = ".rela.dyn";\n        bVar19 = true;\n        goto LAB_00047b5c;\n      }\n      bVar19 = local_34 == (lang_statement_union *)0x9;\n      if (bVar19) {\n        secname = ".rel.dyn";\n      }\n      if (bVar2 == bfd_target_elf_flavour) goto LAB_00047b7b;\n    }\n    else {\n      iVar8 = 4;\n      bVar19 = false;\n      pbVar11 = (byte *)secname;\n      pbVar15 = &DAT_000ae302;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar15;\n        bVar18 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + 1;\n        pbVar15 = pbVar15 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) {\n        bVar19 = true;\n        if (secname[4] == 'a') {\n          secname = ".rela.dyn";\n        }\n        else {\n          secname = ".rel.dyn";\n        }\n      }\n    }\n  }\n  if ((constraint == 0) &&\n     (plVar7 = (lang_statement_union *)lang_output_section_statement_lookup(secname,0,0),\n     plVar7 != (lang_statement_union *)0x0)) {\n    plVar14 = (lang_statement_union *)0x0;\n    do {\n      paVar6 = (plVar7->output_section_statement).bfd_section;\n      plVar13 = plVar7;\n      if (paVar6 != (asection *)0x0) {\n        if (paVar6->flags == 0) goto LAB_00047fcb;\n        plVar13 = plVar14;\n        if (((paVar6->flags ^ s->flags) & 3) == 0) {\n          if ((bVar1 != bfd_target_elf_flavour) || (bVar2 != bfd_target_elf_flavour))\n          goto LAB_00047fcb;\n          if ((*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c)) &&\n             (((link_info._0_1_ & 3) != 2 ||\n              (-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8)))))) {\n            iVar8 = _bfd_elf_match_sections_by_type(link_info.output_bfd,paVar6,s->owner,s);\n            if (iVar8 != 0) goto LAB_00047fcb;\n            if ((plVar7->wild_statement).children.tail == (lang_statement_union **)0x0) {\n              plVar13 = plVar7;\n            }\n          }\n        }\n      }\n      plVar7 = (lang_statement_union *)\n               next_matching_output_section_statement(&plVar7->output_section_statement,0);\n      plVar14 = plVar13;\n    } while (plVar7 != (lang_statement_union *)0x0);\n    constraint = 0x17e;\n    if (plVar13 != (lang_statement_union *)0x0) {\n      lang_add_section(&(plVar13->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar13->output_section_statement);\n      return (lang_output_section_statement_type *)plVar13;\n    }\n  }\n  if (gldelf_iamcu_place_orphan::orphan_init_done == 0) {\n    poVar12 = gldelf_iamcu_place_orphan::hold;\n    do {\n      if (poVar12->name != (char *)0x0) {\n        plVar4 = lang_output_section_statement_lookup(poVar12->name,0,0);\n        poVar12->os = plVar4;\n        if ((plVar4 != (lang_output_section_statement_type *)0x0) && (plVar4->flags == 0)) {\n          plVar4->flags = poVar12->flags;\n        }\n      }\n      poVar12 = poVar12 + 1;\n    } while (poVar12 != (orphan_save *)&DAT_001ce938);\n    gldelf_iamcu_place_orphan::orphan_init_done = 1;\n  }\n  bVar16 = false;\n  bVar18 = (link_info._0_1_ & 2) == 0;\n  if (bVar18) {\n    iVar8 = 0xd;\n    pbVar11 = (byte *)s->name;\n    pbVar15 = (byte *)".gnu.warning.";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar15;\n      bVar18 = *pbVar11 == *pbVar15;\n      pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar18);\n    if (((!bVar16 && !bVar18) == bVar16) &&\n       (plVar7 = (lang_statement_union *)gldelf_iamcu_place_orphan::hold[0].os,\n       gldelf_iamcu_place_orphan::hold[0].os != (lang_output_section_statement_type *)0x0)) {\nLAB_00047fcb:\n      lang_add_section(&(plVar7->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar7->output_section_statement);\n      return (lang_output_section_statement_type *)plVar7;\n    }\n  }\n  local_48 = s->flags;\n  if ((link_info._0_1_ & 3) != 2) {\n    pbVar5 = s->owner;\n    paVar6 = s;\n    while (paVar6 = (asection *)bfd_get_next_section_by_name(pbVar5,paVar6),\n          paVar6 != (asection *)0x0) {\n      pbVar5 = paVar6->owner;\n      if ((((paVar6->output_section == (bfd_section *)0x0) &&\n           (((local_48 ^ paVar6->flags) & 3) == 0 && (paVar6->flags & 0x8000) == 0)) &&\n          ((pbVar5->field_0x29 & 8) == 0)) &&\n         ((pbVar5->usrdata != (void *)0x0 && ((*(byte *)((int)pbVar5->usrdata + 0x24) & 0x10) == 0))\n         )) {\n        iVar8 = _bfd_elf_match_sections_by_type(pbVar5,paVar6,s->owner,s);\n        if (iVar8 != 0) {\n          local_48 = (paVar6->flags ^ 8 | local_48 ^ 8) ^ 8;\n        }\n        pbVar5 = paVar6->owner;\n      }\n    }\n  }\n  if ((local_48 & 0x2001) == 0) {\n    local_44 = gldelf_iamcu_place_orphan::hold + 8;\n    goto LAB_00047da5;\n  }\n  if ((local_48 & 1) == 0) {\n    local_44 = (orphan_save *)0x0;\n    local_40 = (lang_statement_union *)0x0;\n    goto LAB_00047db8;\n  }\n  if ((local_48 & 2) == 0) {\nLAB_00047e40:\n    local_44 = gldelf_iamcu_place_orphan::hold + 4;\n    if (((((local_48 & 0x502) != 0) &&\n         (local_44 = gldelf_iamcu_place_orphan::hold + 7, (local_48 & 0x400000) == 0)) &&\n        (local_44 = gldelf_iamcu_place_orphan::hold + 2, (local_48 & 0x400) == 0)) &&\n       (local_44 = gldelf_iamcu_place_orphan::hold + 3, (local_48 & 8) != 0)) {\n      bVar17 = bVar1 < bfd_target_elf_flavour;\n      bVar16 = bVar1 == bfd_target_elf_flavour;\n      if (bVar16) {\n        if ((local_34 == (lang_statement_union *)0x4) || (local_34 == (lang_statement_union *)0x9))\n        goto LAB_00047ebf;\n      }\n      else {\n        iVar8 = 4;\n        pbVar11 = (byte *)secname;\n        pbVar15 = &DAT_000ae302;\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          bVar17 = *pbVar11 < *pbVar15;\n          bVar16 = *pbVar11 == *pbVar15;\n          pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) == bVar17) {\nLAB_00047ebf:\n          local_44 = gldelf_iamcu_place_orphan::hold + 5;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = gldelf_iamcu_place_orphan::hold;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = gldelf_iamcu_place_orphan::hold + 1;\n      }\n    }\n  }\n  else if ((local_34 != (lang_statement_union *)0x7) ||\n          (local_44 = gldelf_iamcu_place_orphan::hold + 6, !bVar17)) {\n    bVar17 = bVar1 < bfd_target_elf_flavour;\n    bVar16 = bVar1 == bfd_target_elf_flavour;\n    if (!bVar16) {\n      iVar8 = 5;\n      pbVar11 = (byte *)secname;\n      pbVar15 = (byte *)".note";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar17 = *pbVar11 < *pbVar15;\n        bVar16 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      } while (bVar16);\n      local_44 = gldelf_iamcu_place_orphan::hold + 6;\n      if ((!bVar17 && !bVar16) == bVar17) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }\nLAB_00047da5:\n  local_40 = (lang_statement_union *)local_44->os;\n  if (local_40 != (lang_statement_union *)0x0) goto LAB_00047db8;\n  if (local_44->name == (char *)0x0) {\n    if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n      local_38 = (lang_statement_union *)0x0;\n      local_28 = (lang_statement_union *)0x0;\n      local_40 = (lang_statement_union *)0x0;\n      local_34 = (lang_statement_union *)0x0;\n      plVar14 = lang_output_section_statement.head;\n      plVar7 = (lang_statement_union *)0x0;\n      do {\n        plVar13 = plVar14;\n        bVar17 = false;\n        bVar16 = (plVar13->output_section_statement).constraint == 0;\n        if ((plVar13->output_section_statement).constraint < 0) {\nLAB_00048272:\n          paVar6 = (plVar13->output_section_statement).bfd_section;\nLAB_00048240:\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = local_40;\njoined_r0x00048289:\n            if (((fVar3 & 1) != 0) && (local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0)) {\n              local_38 = plVar13;\n            }\n          }\n        }\n        else {\n          paVar6 = (plVar13->data_statement).output_section;\n          iVar8 = 4;\n          paVar10 = paVar6;\n          pbVar11 = &DAT_000ae302;\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar17 = *(byte *)&paVar10->name < *pbVar11;\n            bVar16 = *(byte *)&paVar10->name == *pbVar11;\n            paVar10 = (asection *)((int)paVar10 + (uint)bVar20 * -2 + 1);\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar17 && !bVar16) != bVar17) goto LAB_00048272;\n          bVar18 = (char)paVar6->id == 'a';\n          bVar16 = false;\n          bVar17 = !bVar19;\n          if (!bVar17) break;\n          iVar8 = 5;\n          pbVar11 = &DAT_000ae31b;\n          pbVar15 = (byte *)((int)&paVar6->id + (uint)bVar18);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar16 = *pbVar11 < *pbVar15;\n            bVar17 = *pbVar11 == *pbVar15;\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n            pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n          } while (bVar17);\n          if ((!bVar16 && !bVar17) == bVar16) break;\n          bVar17 = (s->name[4] == 'a') == bVar18;\n          if ((local_34 == (lang_statement_union *)0x0) || (bVar17)) {\n            local_34 = plVar13;\n          }\n          paVar6 = (plVar13->output_section_statement).bfd_section;\n          if ((local_40 != (lang_statement_union *)0x0) && (!bVar17)) goto LAB_00048240;\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = plVar13;\n            goto joined_r0x00048289;\n          }\n        }\n        plVar7 = plVar13;\n        plVar14 = (lang_statement_union *)(plVar13->wild_statement).section_list;\n      } while ((lang_statement_union *)(plVar13->wild_statement).section_list !=\n               (lang_statement_union *)0x0);\n      if ((((local_40 == (lang_statement_union *)0x0) &&\n           (local_40 = local_34, local_34 == (lang_statement_union *)0x0)) &&\n          (local_40 = local_38, local_38 == (lang_statement_union *)0x0)) &&\n         (local_40 = plVar7, local_28 != (lang_statement_union *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44->os = (lang_output_section_statement_type *)local_40;\n      goto LAB_00048089;\n    }\n  }\n  else {\n    local_40 = (lang_statement_union *)lang_output_section_statement_lookup(local_44->name,0,0);\n    local_44->os = (lang_output_section_statement_type *)local_40;\nLAB_00048089:\n    if (local_40 != (lang_statement_union *)0x0) goto LAB_00047db8;\n  }\n  local_40 = (lang_statement_union *)\n             lang_output_section_find_by_flags\n                       (s,local_48,&local_44->os,\n                        (lang_match_sec_type_func)PTR__bfd_elf_match_sections_by_type_001cdfe0);\n  if (local_40 == (lang_statement_union *)0x0) {\n    local_40 = lang_output_section_statement.head;\n  }\nLAB_00047db8:\n  plVar4 = lang_insert_orphan(s,secname,constraint,&local_40->output_section_statement,local_44,\n                              (etree_type *)0x0,(lang_statement_list_type *)0x0);\n  return plVar4;\n}\n\n" comment (function_definition "lang_output_section_statement_type *\ngldelf_iamcu_place_orphan(asection *s,char *secname,int constraint)\n\n{\n  bfd_flavour bVar1;\n  bfd_flavour bVar2;\n  flagword fVar3;\n  lang_output_section_statement_type *plVar4;\n  bfd *pbVar5;\n  asection *paVar6;\n  lang_statement_union *plVar7;\n  int iVar8;\n  uint uVar9;\n  asection *paVar10;\n  byte *pbVar11;\n  orphan_save *poVar12;\n  lang_statement_union *plVar13;\n  lang_statement_union *plVar14;\n  byte *pbVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  uint local_48;\n  orphan_save *local_44;\n  lang_statement_union *local_40;\n  lang_statement_union *local_38;\n  lang_statement_union *local_34;\n  lang_statement_union *local_28;\n  \n  bVar20 = 0;\n  local_34 = (lang_statement_union *)0x0;\n  bVar1 = s->owner->xvec->flavour;\n  bVar17 = bVar1 == bfd_target_elf_flavour;\n  bVar2 = (link_info.output_bfd)->xvec->flavour;\n  if (bVar17) {\n    local_34 = *(lang_statement_union **)((int)s->used_by_bfd + 4);\n  }\n  if ((link_info._0_1_ & 3) == 2) {\nLAB_00047c3c:\n    bVar19 = false;\n  }\n  else if ((link_info._4_1_ & 0x40) == 0) {\n    bVar19 = false;\nLAB_00047b5c:\n    if (((bVar17) && (bVar2 == bfd_target_elf_flavour)) && (uVar9 = s->flags, (uVar9 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)((int)s->used_by_bfd + 0xb) & 1) != 0) {\n        if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n          plVar7 = lang_output_section_statement.head;\n          do {\n            paVar6 = (plVar7->output_section_statement).bfd_section;\n            if (((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))) goto LAB_00047fcb;\n            plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list;\n          } while (plVar7 != (lang_statement_union *)0x0);\n        }\n        secname = ".mbind.bss";\n        if (((uVar9 & 0x102) != 0) && (secname = ".mbind.data", (uVar9 & 8) != 0)) {\n          secname = ".mbind.text";\n          if ((uVar9 & 0x10) == 0) {\n            secname = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar9 = s->flags;\n    if ((uVar9 & 1) == 0) goto LAB_00047c3c;\n    bVar16 = bVar1 < bfd_target_elf_flavour;\n    bVar18 = bVar1 == bfd_target_elf_flavour;\n    if (bVar18) {\n      if (local_34 == (lang_statement_union *)0x4) {\n        secname = ".rela.dyn";\n        bVar19 = true;\n        goto LAB_00047b5c;\n      }\n      bVar19 = local_34 == (lang_statement_union *)0x9;\n      if (bVar19) {\n        secname = ".rel.dyn";\n      }\n      if (bVar2 == bfd_target_elf_flavour) goto LAB_00047b7b;\n    }\n    else {\n      iVar8 = 4;\n      bVar19 = false;\n      pbVar11 = (byte *)secname;\n      pbVar15 = &DAT_000ae302;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar15;\n        bVar18 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + 1;\n        pbVar15 = pbVar15 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) {\n        bVar19 = true;\n        if (secname[4] == 'a') {\n          secname = ".rela.dyn";\n        }\n        else {\n          secname = ".rel.dyn";\n        }\n      }\n    }\n  }\n  if ((constraint == 0) &&\n     (plVar7 = (lang_statement_union *)lang_output_section_statement_lookup(secname,0,0),\n     plVar7 != (lang_statement_union *)0x0)) {\n    plVar14 = (lang_statement_union *)0x0;\n    do {\n      paVar6 = (plVar7->output_section_statement).bfd_section;\n      plVar13 = plVar7;\n      if (paVar6 != (asection *)0x0) {\n        if (paVar6->flags == 0) goto LAB_00047fcb;\n        plVar13 = plVar14;\n        if (((paVar6->flags ^ s->flags) & 3) == 0) {\n          if ((bVar1 != bfd_target_elf_flavour) || (bVar2 != bfd_target_elf_flavour))\n          goto LAB_00047fcb;\n          if ((*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c)) &&\n             (((link_info._0_1_ & 3) != 2 ||\n              (-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8)))))) {\n            iVar8 = _bfd_elf_match_sections_by_type(link_info.output_bfd,paVar6,s->owner,s);\n            if (iVar8 != 0) goto LAB_00047fcb;\n            if ((plVar7->wild_statement).children.tail == (lang_statement_union **)0x0) {\n              plVar13 = plVar7;\n            }\n          }\n        }\n      }\n      plVar7 = (lang_statement_union *)\n               next_matching_output_section_statement(&plVar7->output_section_statement,0);\n      plVar14 = plVar13;\n    } while (plVar7 != (lang_statement_union *)0x0);\n    constraint = 0x17e;\n    if (plVar13 != (lang_statement_union *)0x0) {\n      lang_add_section(&(plVar13->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar13->output_section_statement);\n      return (lang_output_section_statement_type *)plVar13;\n    }\n  }\n  if (gldelf_iamcu_place_orphan::orphan_init_done == 0) {\n    poVar12 = gldelf_iamcu_place_orphan::hold;\n    do {\n      if (poVar12->name != (char *)0x0) {\n        plVar4 = lang_output_section_statement_lookup(poVar12->name,0,0);\n        poVar12->os = plVar4;\n        if ((plVar4 != (lang_output_section_statement_type *)0x0) && (plVar4->flags == 0)) {\n          plVar4->flags = poVar12->flags;\n        }\n      }\n      poVar12 = poVar12 + 1;\n    } while (poVar12 != (orphan_save *)&DAT_001ce938);\n    gldelf_iamcu_place_orphan::orphan_init_done = 1;\n  }\n  bVar16 = false;\n  bVar18 = (link_info._0_1_ & 2) == 0;\n  if (bVar18) {\n    iVar8 = 0xd;\n    pbVar11 = (byte *)s->name;\n    pbVar15 = (byte *)".gnu.warning.";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar15;\n      bVar18 = *pbVar11 == *pbVar15;\n      pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar18);\n    if (((!bVar16 && !bVar18) == bVar16) &&\n       (plVar7 = (lang_statement_union *)gldelf_iamcu_place_orphan::hold[0].os,\n       gldelf_iamcu_place_orphan::hold[0].os != (lang_output_section_statement_type *)0x0)) {\nLAB_00047fcb:\n      lang_add_section(&(plVar7->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar7->output_section_statement);\n      return (lang_output_section_statement_type *)plVar7;\n    }\n  }\n  local_48 = s->flags;\n  if ((link_info._0_1_ & 3) != 2) {\n    pbVar5 = s->owner;\n    paVar6 = s;\n    while (paVar6 = (asection *)bfd_get_next_section_by_name(pbVar5,paVar6),\n          paVar6 != (asection *)0x0) {\n      pbVar5 = paVar6->owner;\n      if ((((paVar6->output_section == (bfd_section *)0x0) &&\n           (((local_48 ^ paVar6->flags) & 3) == 0 && (paVar6->flags & 0x8000) == 0)) &&\n          ((pbVar5->field_0x29 & 8) == 0)) &&\n         ((pbVar5->usrdata != (void *)0x0 && ((*(byte *)((int)pbVar5->usrdata + 0x24) & 0x10) == 0))\n         )) {\n        iVar8 = _bfd_elf_match_sections_by_type(pbVar5,paVar6,s->owner,s);\n        if (iVar8 != 0) {\n          local_48 = (paVar6->flags ^ 8 | local_48 ^ 8) ^ 8;\n        }\n        pbVar5 = paVar6->owner;\n      }\n    }\n  }\n  if ((local_48 & 0x2001) == 0) {\n    local_44 = gldelf_iamcu_place_orphan::hold + 8;\n    goto LAB_00047da5;\n  }\n  if ((local_48 & 1) == 0) {\n    local_44 = (orphan_save *)0x0;\n    local_40 = (lang_statement_union *)0x0;\n    goto LAB_00047db8;\n  }\n  if ((local_48 & 2) == 0) {\nLAB_00047e40:\n    local_44 = gldelf_iamcu_place_orphan::hold + 4;\n    if (((((local_48 & 0x502) != 0) &&\n         (local_44 = gldelf_iamcu_place_orphan::hold + 7, (local_48 & 0x400000) == 0)) &&\n        (local_44 = gldelf_iamcu_place_orphan::hold + 2, (local_48 & 0x400) == 0)) &&\n       (local_44 = gldelf_iamcu_place_orphan::hold + 3, (local_48 & 8) != 0)) {\n      bVar17 = bVar1 < bfd_target_elf_flavour;\n      bVar16 = bVar1 == bfd_target_elf_flavour;\n      if (bVar16) {\n        if ((local_34 == (lang_statement_union *)0x4) || (local_34 == (lang_statement_union *)0x9))\n        goto LAB_00047ebf;\n      }\n      else {\n        iVar8 = 4;\n        pbVar11 = (byte *)secname;\n        pbVar15 = &DAT_000ae302;\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          bVar17 = *pbVar11 < *pbVar15;\n          bVar16 = *pbVar11 == *pbVar15;\n          pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) == bVar17) {\nLAB_00047ebf:\n          local_44 = gldelf_iamcu_place_orphan::hold + 5;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = gldelf_iamcu_place_orphan::hold;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = gldelf_iamcu_place_orphan::hold + 1;\n      }\n    }\n  }\n  else if ((local_34 != (lang_statement_union *)0x7) ||\n          (local_44 = gldelf_iamcu_place_orphan::hold + 6, !bVar17)) {\n    bVar17 = bVar1 < bfd_target_elf_flavour;\n    bVar16 = bVar1 == bfd_target_elf_flavour;\n    if (!bVar16) {\n      iVar8 = 5;\n      pbVar11 = (byte *)secname;\n      pbVar15 = (byte *)".note";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar17 = *pbVar11 < *pbVar15;\n        bVar16 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      } while (bVar16);\n      local_44 = gldelf_iamcu_place_orphan::hold + 6;\n      if ((!bVar17 && !bVar16) == bVar17) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }\nLAB_00047da5:\n  local_40 = (lang_statement_union *)local_44->os;\n  if (local_40 != (lang_statement_union *)0x0) goto LAB_00047db8;\n  if (local_44->name == (char *)0x0) {\n    if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n      local_38 = (lang_statement_union *)0x0;\n      local_28 = (lang_statement_union *)0x0;\n      local_40 = (lang_statement_union *)0x0;\n      local_34 = (lang_statement_union *)0x0;\n      plVar14 = lang_output_section_statement.head;\n      plVar7 = (lang_statement_union *)0x0;\n      do {\n        plVar13 = plVar14;\n        bVar17 = false;\n        bVar16 = (plVar13->output_section_statement).constraint == 0;\n        if ((plVar13->output_section_statement).constraint < 0) {\nLAB_00048272:\n          paVar6 = (plVar13->output_section_statement).bfd_section;\nLAB_00048240:\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = local_40;\njoined_r0x00048289:\n            if (((fVar3 & 1) != 0) && (local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0)) {\n              local_38 = plVar13;\n            }\n          }\n        }\n        else {\n          paVar6 = (plVar13->data_statement).output_section;\n          iVar8 = 4;\n          paVar10 = paVar6;\n          pbVar11 = &DAT_000ae302;\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar17 = *(byte *)&paVar10->name < *pbVar11;\n            bVar16 = *(byte *)&paVar10->name == *pbVar11;\n            paVar10 = (asection *)((int)paVar10 + (uint)bVar20 * -2 + 1);\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar17 && !bVar16) != bVar17) goto LAB_00048272;\n          bVar18 = (char)paVar6->id == 'a';\n          bVar16 = false;\n          bVar17 = !bVar19;\n          if (!bVar17) break;\n          iVar8 = 5;\n          pbVar11 = &DAT_000ae31b;\n          pbVar15 = (byte *)((int)&paVar6->id + (uint)bVar18);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar16 = *pbVar11 < *pbVar15;\n            bVar17 = *pbVar11 == *pbVar15;\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n            pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n          } while (bVar17);\n          if ((!bVar16 && !bVar17) == bVar16) break;\n          bVar17 = (s->name[4] == 'a') == bVar18;\n          if ((local_34 == (lang_statement_union *)0x0) || (bVar17)) {\n            local_34 = plVar13;\n          }\n          paVar6 = (plVar13->output_section_statement).bfd_section;\n          if ((local_40 != (lang_statement_union *)0x0) && (!bVar17)) goto LAB_00048240;\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = plVar13;\n            goto joined_r0x00048289;\n          }\n        }\n        plVar7 = plVar13;\n        plVar14 = (lang_statement_union *)(plVar13->wild_statement).section_list;\n      } while ((lang_statement_union *)(plVar13->wild_statement).section_list !=\n               (lang_statement_union *)0x0);\n      if ((((local_40 == (lang_statement_union *)0x0) &&\n           (local_40 = local_34, local_34 == (lang_statement_union *)0x0)) &&\n          (local_40 = local_38, local_38 == (lang_statement_union *)0x0)) &&\n         (local_40 = plVar7, local_28 != (lang_statement_union *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44->os = (lang_output_section_statement_type *)local_40;\n      goto LAB_00048089;\n    }\n  }\n  else {\n    local_40 = (lang_statement_union *)lang_output_section_statement_lookup(local_44->name,0,0);\n    local_44->os = (lang_output_section_statement_type *)local_40;\nLAB_00048089:\n    if (local_40 != (lang_statement_union *)0x0) goto LAB_00047db8;\n  }\n  local_40 = (lang_statement_union *)\n             lang_output_section_find_by_flags\n                       (s,local_48,&local_44->os,\n                        (lang_match_sec_type_func)PTR__bfd_elf_match_sections_by_type_001cdfe0);\n  if (local_40 == (lang_statement_union *)0x0) {\n    local_40 = lang_output_section_statement.head;\n  }\nLAB_00047db8:\n  plVar4 = lang_insert_orphan(s,secname,constraint,&local_40->output_section_statement,local_44,\n                              (etree_type *)0x0,(lang_statement_list_type *)0x0);\n  return plVar4;\n}" type_identifier (pointer_declarator "*\ngldelf_iamcu_place_orphan(asection *s,char *secname,int constraint)" * (function_declarator "gldelf_iamcu_place_orphan(asection *s,char *secname,int constraint)" identifier (parameter_list "(asection *s,char *secname,int constraint)" ( (parameter_declaration "asection *s" type_identifier (pointer_declarator "*s" * identifier)) , (parameter_declaration "char *secname" primitive_type (pointer_declarator "*secname" * identifier)) , (parameter_declaration "int constraint" primitive_type identifier) )))) (compound_statement "{\n  bfd_flavour bVar1;\n  bfd_flavour bVar2;\n  flagword fVar3;\n  lang_output_section_statement_type *plVar4;\n  bfd *pbVar5;\n  asection *paVar6;\n  lang_statement_union *plVar7;\n  int iVar8;\n  uint uVar9;\n  asection *paVar10;\n  byte *pbVar11;\n  orphan_save *poVar12;\n  lang_statement_union *plVar13;\n  lang_statement_union *plVar14;\n  byte *pbVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  uint local_48;\n  orphan_save *local_44;\n  lang_statement_union *local_40;\n  lang_statement_union *local_38;\n  lang_statement_union *local_34;\n  lang_statement_union *local_28;\n  \n  bVar20 = 0;\n  local_34 = (lang_statement_union *)0x0;\n  bVar1 = s->owner->xvec->flavour;\n  bVar17 = bVar1 == bfd_target_elf_flavour;\n  bVar2 = (link_info.output_bfd)->xvec->flavour;\n  if (bVar17) {\n    local_34 = *(lang_statement_union **)((int)s->used_by_bfd + 4);\n  }\n  if ((link_info._0_1_ & 3) == 2) {\nLAB_00047c3c:\n    bVar19 = false;\n  }\n  else if ((link_info._4_1_ & 0x40) == 0) {\n    bVar19 = false;\nLAB_00047b5c:\n    if (((bVar17) && (bVar2 == bfd_target_elf_flavour)) && (uVar9 = s->flags, (uVar9 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)((int)s->used_by_bfd + 0xb) & 1) != 0) {\n        if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n          plVar7 = lang_output_section_statement.head;\n          do {\n            paVar6 = (plVar7->output_section_statement).bfd_section;\n            if (((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))) goto LAB_00047fcb;\n            plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list;\n          } while (plVar7 != (lang_statement_union *)0x0);\n        }\n        secname = ".mbind.bss";\n        if (((uVar9 & 0x102) != 0) && (secname = ".mbind.data", (uVar9 & 8) != 0)) {\n          secname = ".mbind.text";\n          if ((uVar9 & 0x10) == 0) {\n            secname = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar9 = s->flags;\n    if ((uVar9 & 1) == 0) goto LAB_00047c3c;\n    bVar16 = bVar1 < bfd_target_elf_flavour;\n    bVar18 = bVar1 == bfd_target_elf_flavour;\n    if (bVar18) {\n      if (local_34 == (lang_statement_union *)0x4) {\n        secname = ".rela.dyn";\n        bVar19 = true;\n        goto LAB_00047b5c;\n      }\n      bVar19 = local_34 == (lang_statement_union *)0x9;\n      if (bVar19) {\n        secname = ".rel.dyn";\n      }\n      if (bVar2 == bfd_target_elf_flavour) goto LAB_00047b7b;\n    }\n    else {\n      iVar8 = 4;\n      bVar19 = false;\n      pbVar11 = (byte *)secname;\n      pbVar15 = &DAT_000ae302;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar15;\n        bVar18 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + 1;\n        pbVar15 = pbVar15 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) {\n        bVar19 = true;\n        if (secname[4] == 'a') {\n          secname = ".rela.dyn";\n        }\n        else {\n          secname = ".rel.dyn";\n        }\n      }\n    }\n  }\n  if ((constraint == 0) &&\n     (plVar7 = (lang_statement_union *)lang_output_section_statement_lookup(secname,0,0),\n     plVar7 != (lang_statement_union *)0x0)) {\n    plVar14 = (lang_statement_union *)0x0;\n    do {\n      paVar6 = (plVar7->output_section_statement).bfd_section;\n      plVar13 = plVar7;\n      if (paVar6 != (asection *)0x0) {\n        if (paVar6->flags == 0) goto LAB_00047fcb;\n        plVar13 = plVar14;\n        if (((paVar6->flags ^ s->flags) & 3) == 0) {\n          if ((bVar1 != bfd_target_elf_flavour) || (bVar2 != bfd_target_elf_flavour))\n          goto LAB_00047fcb;\n          if ((*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c)) &&\n             (((link_info._0_1_ & 3) != 2 ||\n              (-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8)))))) {\n            iVar8 = _bfd_elf_match_sections_by_type(link_info.output_bfd,paVar6,s->owner,s);\n            if (iVar8 != 0) goto LAB_00047fcb;\n            if ((plVar7->wild_statement).children.tail == (lang_statement_union **)0x0) {\n              plVar13 = plVar7;\n            }\n          }\n        }\n      }\n      plVar7 = (lang_statement_union *)\n               next_matching_output_section_statement(&plVar7->output_section_statement,0);\n      plVar14 = plVar13;\n    } while (plVar7 != (lang_statement_union *)0x0);\n    constraint = 0x17e;\n    if (plVar13 != (lang_statement_union *)0x0) {\n      lang_add_section(&(plVar13->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar13->output_section_statement);\n      return (lang_output_section_statement_type *)plVar13;\n    }\n  }\n  if (gldelf_iamcu_place_orphan::orphan_init_done == 0) {\n    poVar12 = gldelf_iamcu_place_orphan::hold;\n    do {\n      if (poVar12->name != (char *)0x0) {\n        plVar4 = lang_output_section_statement_lookup(poVar12->name,0,0);\n        poVar12->os = plVar4;\n        if ((plVar4 != (lang_output_section_statement_type *)0x0) && (plVar4->flags == 0)) {\n          plVar4->flags = poVar12->flags;\n        }\n      }\n      poVar12 = poVar12 + 1;\n    } while (poVar12 != (orphan_save *)&DAT_001ce938);\n    gldelf_iamcu_place_orphan::orphan_init_done = 1;\n  }\n  bVar16 = false;\n  bVar18 = (link_info._0_1_ & 2) == 0;\n  if (bVar18) {\n    iVar8 = 0xd;\n    pbVar11 = (byte *)s->name;\n    pbVar15 = (byte *)".gnu.warning.";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar15;\n      bVar18 = *pbVar11 == *pbVar15;\n      pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar18);\n    if (((!bVar16 && !bVar18) == bVar16) &&\n       (plVar7 = (lang_statement_union *)gldelf_iamcu_place_orphan::hold[0].os,\n       gldelf_iamcu_place_orphan::hold[0].os != (lang_output_section_statement_type *)0x0)) {\nLAB_00047fcb:\n      lang_add_section(&(plVar7->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar7->output_section_statement);\n      return (lang_output_section_statement_type *)plVar7;\n    }\n  }\n  local_48 = s->flags;\n  if ((link_info._0_1_ & 3) != 2) {\n    pbVar5 = s->owner;\n    paVar6 = s;\n    while (paVar6 = (asection *)bfd_get_next_section_by_name(pbVar5,paVar6),\n          paVar6 != (asection *)0x0) {\n      pbVar5 = paVar6->owner;\n      if ((((paVar6->output_section == (bfd_section *)0x0) &&\n           (((local_48 ^ paVar6->flags) & 3) == 0 && (paVar6->flags & 0x8000) == 0)) &&\n          ((pbVar5->field_0x29 & 8) == 0)) &&\n         ((pbVar5->usrdata != (void *)0x0 && ((*(byte *)((int)pbVar5->usrdata + 0x24) & 0x10) == 0))\n         )) {\n        iVar8 = _bfd_elf_match_sections_by_type(pbVar5,paVar6,s->owner,s);\n        if (iVar8 != 0) {\n          local_48 = (paVar6->flags ^ 8 | local_48 ^ 8) ^ 8;\n        }\n        pbVar5 = paVar6->owner;\n      }\n    }\n  }\n  if ((local_48 & 0x2001) == 0) {\n    local_44 = gldelf_iamcu_place_orphan::hold + 8;\n    goto LAB_00047da5;\n  }\n  if ((local_48 & 1) == 0) {\n    local_44 = (orphan_save *)0x0;\n    local_40 = (lang_statement_union *)0x0;\n    goto LAB_00047db8;\n  }\n  if ((local_48 & 2) == 0) {\nLAB_00047e40:\n    local_44 = gldelf_iamcu_place_orphan::hold + 4;\n    if (((((local_48 & 0x502) != 0) &&\n         (local_44 = gldelf_iamcu_place_orphan::hold + 7, (local_48 & 0x400000) == 0)) &&\n        (local_44 = gldelf_iamcu_place_orphan::hold + 2, (local_48 & 0x400) == 0)) &&\n       (local_44 = gldelf_iamcu_place_orphan::hold + 3, (local_48 & 8) != 0)) {\n      bVar17 = bVar1 < bfd_target_elf_flavour;\n      bVar16 = bVar1 == bfd_target_elf_flavour;\n      if (bVar16) {\n        if ((local_34 == (lang_statement_union *)0x4) || (local_34 == (lang_statement_union *)0x9))\n        goto LAB_00047ebf;\n      }\n      else {\n        iVar8 = 4;\n        pbVar11 = (byte *)secname;\n        pbVar15 = &DAT_000ae302;\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          bVar17 = *pbVar11 < *pbVar15;\n          bVar16 = *pbVar11 == *pbVar15;\n          pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) == bVar17) {\nLAB_00047ebf:\n          local_44 = gldelf_iamcu_place_orphan::hold + 5;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = gldelf_iamcu_place_orphan::hold;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = gldelf_iamcu_place_orphan::hold + 1;\n      }\n    }\n  }\n  else if ((local_34 != (lang_statement_union *)0x7) ||\n          (local_44 = gldelf_iamcu_place_orphan::hold + 6, !bVar17)) {\n    bVar17 = bVar1 < bfd_target_elf_flavour;\n    bVar16 = bVar1 == bfd_target_elf_flavour;\n    if (!bVar16) {\n      iVar8 = 5;\n      pbVar11 = (byte *)secname;\n      pbVar15 = (byte *)".note";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar17 = *pbVar11 < *pbVar15;\n        bVar16 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      } while (bVar16);\n      local_44 = gldelf_iamcu_place_orphan::hold + 6;\n      if ((!bVar17 && !bVar16) == bVar17) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }\nLAB_00047da5:\n  local_40 = (lang_statement_union *)local_44->os;\n  if (local_40 != (lang_statement_union *)0x0) goto LAB_00047db8;\n  if (local_44->name == (char *)0x0) {\n    if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n      local_38 = (lang_statement_union *)0x0;\n      local_28 = (lang_statement_union *)0x0;\n      local_40 = (lang_statement_union *)0x0;\n      local_34 = (lang_statement_union *)0x0;\n      plVar14 = lang_output_section_statement.head;\n      plVar7 = (lang_statement_union *)0x0;\n      do {\n        plVar13 = plVar14;\n        bVar17 = false;\n        bVar16 = (plVar13->output_section_statement).constraint == 0;\n        if ((plVar13->output_section_statement).constraint < 0) {\nLAB_00048272:\n          paVar6 = (plVar13->output_section_statement).bfd_section;\nLAB_00048240:\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = local_40;\njoined_r0x00048289:\n            if (((fVar3 & 1) != 0) && (local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0)) {\n              local_38 = plVar13;\n            }\n          }\n        }\n        else {\n          paVar6 = (plVar13->data_statement).output_section;\n          iVar8 = 4;\n          paVar10 = paVar6;\n          pbVar11 = &DAT_000ae302;\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar17 = *(byte *)&paVar10->name < *pbVar11;\n            bVar16 = *(byte *)&paVar10->name == *pbVar11;\n            paVar10 = (asection *)((int)paVar10 + (uint)bVar20 * -2 + 1);\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar17 && !bVar16) != bVar17) goto LAB_00048272;\n          bVar18 = (char)paVar6->id == 'a';\n          bVar16 = false;\n          bVar17 = !bVar19;\n          if (!bVar17) break;\n          iVar8 = 5;\n          pbVar11 = &DAT_000ae31b;\n          pbVar15 = (byte *)((int)&paVar6->id + (uint)bVar18);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar16 = *pbVar11 < *pbVar15;\n            bVar17 = *pbVar11 == *pbVar15;\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n            pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n          } while (bVar17);\n          if ((!bVar16 && !bVar17) == bVar16) break;\n          bVar17 = (s->name[4] == 'a') == bVar18;\n          if ((local_34 == (lang_statement_union *)0x0) || (bVar17)) {\n            local_34 = plVar13;\n          }\n          paVar6 = (plVar13->output_section_statement).bfd_section;\n          if ((local_40 != (lang_statement_union *)0x0) && (!bVar17)) goto LAB_00048240;\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = plVar13;\n            goto joined_r0x00048289;\n          }\n        }\n        plVar7 = plVar13;\n        plVar14 = (lang_statement_union *)(plVar13->wild_statement).section_list;\n      } while ((lang_statement_union *)(plVar13->wild_statement).section_list !=\n               (lang_statement_union *)0x0);\n      if ((((local_40 == (lang_statement_union *)0x0) &&\n           (local_40 = local_34, local_34 == (lang_statement_union *)0x0)) &&\n          (local_40 = local_38, local_38 == (lang_statement_union *)0x0)) &&\n         (local_40 = plVar7, local_28 != (lang_statement_union *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44->os = (lang_output_section_statement_type *)local_40;\n      goto LAB_00048089;\n    }\n  }\n  else {\n    local_40 = (lang_statement_union *)lang_output_section_statement_lookup(local_44->name,0,0);\n    local_44->os = (lang_output_section_statement_type *)local_40;\nLAB_00048089:\n    if (local_40 != (lang_statement_union *)0x0) goto LAB_00047db8;\n  }\n  local_40 = (lang_statement_union *)\n             lang_output_section_find_by_flags\n                       (s,local_48,&local_44->os,\n                        (lang_match_sec_type_func)PTR__bfd_elf_match_sections_by_type_001cdfe0);\n  if (local_40 == (lang_statement_union *)0x0) {\n    local_40 = lang_output_section_statement.head;\n  }\nLAB_00047db8:\n  plVar4 = lang_insert_orphan(s,secname,constraint,&local_40->output_section_statement,local_44,\n                              (etree_type *)0x0,(lang_statement_list_type *)0x0);\n  return plVar4;\n}" { (declaration "bfd_flavour bVar1;" type_identifier identifier ;) (declaration "bfd_flavour bVar2;" type_identifier identifier ;) (declaration "flagword fVar3;" type_identifier identifier ;) (declaration "lang_output_section_statement_type *plVar4;" type_identifier (pointer_declarator "*plVar4" * identifier) ;) (declaration "bfd *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "asection *paVar6;" type_identifier (pointer_declarator "*paVar6" * identifier) ;) (declaration "lang_statement_union *plVar7;" type_identifier (pointer_declarator "*plVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "asection *paVar10;" type_identifier (pointer_declarator "*paVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "orphan_save *poVar12;" type_identifier (pointer_declarator "*poVar12" * identifier) ;) (declaration "lang_statement_union *plVar13;" type_identifier (pointer_declarator "*plVar13" * identifier) ;) (declaration "lang_statement_union *plVar14;" type_identifier (pointer_declarator "*plVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "bool bVar19;" primitive_type identifier ;) (declaration "byte bVar20;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "orphan_save *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "lang_statement_union *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "lang_statement_union *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "lang_statement_union *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "lang_statement_union *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" identifier = number_literal) ;) (expression_statement "local_34 = (lang_statement_union *)0x0;" (assignment_expression "local_34 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar1 = s->owner->xvec->flavour;" (assignment_expression "bVar1 = s->owner->xvec->flavour" identifier = (field_expression "s->owner->xvec->flavour" (field_expression "s->owner->xvec" (field_expression "s->owner" identifier -> field_identifier) -> field_identifier) -> field_identifier)) ;) (expression_statement "bVar17 = bVar1 == bfd_target_elf_flavour;" (assignment_expression "bVar17 = bVar1 == bfd_target_elf_flavour" identifier = (binary_expression "bVar1 == bfd_target_elf_flavour" identifier == identifier)) ;) (expression_statement "bVar2 = (link_info.output_bfd)->xvec->flavour;" (assignment_expression "bVar2 = (link_info.output_bfd)->xvec->flavour" identifier = (field_expression "(link_info.output_bfd)->xvec->flavour" (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) -> field_identifier)) ;) (if_statement "if (bVar17) {\n    local_34 = *(lang_statement_union **)((int)s->used_by_bfd + 4);\n  }" if (parenthesized_expression "(bVar17)" ( identifier )) (compound_statement "{\n    local_34 = *(lang_statement_union **)((int)s->used_by_bfd + 4);\n  }" { (expression_statement "local_34 = *(lang_statement_union **)((int)s->used_by_bfd + 4);" (assignment_expression "local_34 = *(lang_statement_union **)((int)s->used_by_bfd + 4)" identifier = (pointer_expression "*(lang_statement_union **)((int)s->used_by_bfd + 4)" * (cast_expression "(lang_statement_union **)((int)s->used_by_bfd + 4)" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)s->used_by_bfd + 4)" ( (binary_expression "(int)s->used_by_bfd + 4" (cast_expression "(int)s->used_by_bfd" ( (type_descriptor "int" primitive_type) ) (field_expression "s->used_by_bfd" identifier -> field_identifier)) + number_literal) ))))) ;) })) (if_statement "if ((link_info._0_1_ & 3) == 2) {\nLAB_00047c3c:\n    bVar19 = false;\n  }\n  else if ((link_info._4_1_ & 0x40) == 0) {\n    bVar19 = false;\nLAB_00047b5c:\n    if (((bVar17) && (bVar2 == bfd_target_elf_flavour)) && (uVar9 = s->flags, (uVar9 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)((int)s->used_by_bfd + 0xb) & 1) != 0) {\n        if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n          plVar7 = lang_output_section_statement.head;\n          do {\n            paVar6 = (plVar7->output_section_statement).bfd_section;\n            if (((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))) goto LAB_00047fcb;\n            plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list;\n          } while (plVar7 != (lang_statement_union *)0x0);\n        }\n        secname = ".mbind.bss";\n        if (((uVar9 & 0x102) != 0) && (secname = ".mbind.data", (uVar9 & 8) != 0)) {\n          secname = ".mbind.text";\n          if ((uVar9 & 0x10) == 0) {\n            secname = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar9 = s->flags;\n    if ((uVar9 & 1) == 0) goto LAB_00047c3c;\n    bVar16 = bVar1 < bfd_target_elf_flavour;\n    bVar18 = bVar1 == bfd_target_elf_flavour;\n    if (bVar18) {\n      if (local_34 == (lang_statement_union *)0x4) {\n        secname = ".rela.dyn";\n        bVar19 = true;\n        goto LAB_00047b5c;\n      }\n      bVar19 = local_34 == (lang_statement_union *)0x9;\n      if (bVar19) {\n        secname = ".rel.dyn";\n      }\n      if (bVar2 == bfd_target_elf_flavour) goto LAB_00047b7b;\n    }\n    else {\n      iVar8 = 4;\n      bVar19 = false;\n      pbVar11 = (byte *)secname;\n      pbVar15 = &DAT_000ae302;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar15;\n        bVar18 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + 1;\n        pbVar15 = pbVar15 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) {\n        bVar19 = true;\n        if (secname[4] == 'a') {\n          secname = ".rela.dyn";\n        }\n        else {\n          secname = ".rel.dyn";\n        }\n      }\n    }\n  }" if (parenthesized_expression "((link_info._0_1_ & 3) == 2)" ( (binary_expression "(link_info._0_1_ & 3) == 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00047c3c:\n    bVar19 = false;\n  }" { (labeled_statement "LAB_00047c3c:\n    bVar19 = false;" statement_identifier : (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;)) }) (else_clause "else if ((link_info._4_1_ & 0x40) == 0) {\n    bVar19 = false;\nLAB_00047b5c:\n    if (((bVar17) && (bVar2 == bfd_target_elf_flavour)) && (uVar9 = s->flags, (uVar9 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)((int)s->used_by_bfd + 0xb) & 1) != 0) {\n        if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n          plVar7 = lang_output_section_statement.head;\n          do {\n            paVar6 = (plVar7->output_section_statement).bfd_section;\n            if (((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))) goto LAB_00047fcb;\n            plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list;\n          } while (plVar7 != (lang_statement_union *)0x0);\n        }\n        secname = ".mbind.bss";\n        if (((uVar9 & 0x102) != 0) && (secname = ".mbind.data", (uVar9 & 8) != 0)) {\n          secname = ".mbind.text";\n          if ((uVar9 & 0x10) == 0) {\n            secname = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar9 = s->flags;\n    if ((uVar9 & 1) == 0) goto LAB_00047c3c;\n    bVar16 = bVar1 < bfd_target_elf_flavour;\n    bVar18 = bVar1 == bfd_target_elf_flavour;\n    if (bVar18) {\n      if (local_34 == (lang_statement_union *)0x4) {\n        secname = ".rela.dyn";\n        bVar19 = true;\n        goto LAB_00047b5c;\n      }\n      bVar19 = local_34 == (lang_statement_union *)0x9;\n      if (bVar19) {\n        secname = ".rel.dyn";\n      }\n      if (bVar2 == bfd_target_elf_flavour) goto LAB_00047b7b;\n    }\n    else {\n      iVar8 = 4;\n      bVar19 = false;\n      pbVar11 = (byte *)secname;\n      pbVar15 = &DAT_000ae302;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar15;\n        bVar18 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + 1;\n        pbVar15 = pbVar15 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) {\n        bVar19 = true;\n        if (secname[4] == 'a') {\n          secname = ".rela.dyn";\n        }\n        else {\n          secname = ".rel.dyn";\n        }\n      }\n    }\n  }" else (if_statement "if ((link_info._4_1_ & 0x40) == 0) {\n    bVar19 = false;\nLAB_00047b5c:\n    if (((bVar17) && (bVar2 == bfd_target_elf_flavour)) && (uVar9 = s->flags, (uVar9 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)((int)s->used_by_bfd + 0xb) & 1) != 0) {\n        if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n          plVar7 = lang_output_section_statement.head;\n          do {\n            paVar6 = (plVar7->output_section_statement).bfd_section;\n            if (((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))) goto LAB_00047fcb;\n            plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list;\n          } while (plVar7 != (lang_statement_union *)0x0);\n        }\n        secname = ".mbind.bss";\n        if (((uVar9 & 0x102) != 0) && (secname = ".mbind.data", (uVar9 & 8) != 0)) {\n          secname = ".mbind.text";\n          if ((uVar9 & 0x10) == 0) {\n            secname = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar9 = s->flags;\n    if ((uVar9 & 1) == 0) goto LAB_00047c3c;\n    bVar16 = bVar1 < bfd_target_elf_flavour;\n    bVar18 = bVar1 == bfd_target_elf_flavour;\n    if (bVar18) {\n      if (local_34 == (lang_statement_union *)0x4) {\n        secname = ".rela.dyn";\n        bVar19 = true;\n        goto LAB_00047b5c;\n      }\n      bVar19 = local_34 == (lang_statement_union *)0x9;\n      if (bVar19) {\n        secname = ".rel.dyn";\n      }\n      if (bVar2 == bfd_target_elf_flavour) goto LAB_00047b7b;\n    }\n    else {\n      iVar8 = 4;\n      bVar19 = false;\n      pbVar11 = (byte *)secname;\n      pbVar15 = &DAT_000ae302;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar15;\n        bVar18 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + 1;\n        pbVar15 = pbVar15 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) {\n        bVar19 = true;\n        if (secname[4] == 'a') {\n          secname = ".rela.dyn";\n        }\n        else {\n          secname = ".rel.dyn";\n        }\n      }\n    }\n  }" if (parenthesized_expression "((link_info._4_1_ & 0x40) == 0)" ( (binary_expression "(link_info._4_1_ & 0x40) == 0" (parenthesized_expression "(link_info._4_1_ & 0x40)" ( (binary_expression "link_info._4_1_ & 0x40" (field_expression "link_info._4_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    bVar19 = false;\nLAB_00047b5c:\n    if (((bVar17) && (bVar2 == bfd_target_elf_flavour)) && (uVar9 = s->flags, (uVar9 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)((int)s->used_by_bfd + 0xb) & 1) != 0) {\n        if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n          plVar7 = lang_output_section_statement.head;\n          do {\n            paVar6 = (plVar7->output_section_statement).bfd_section;\n            if (((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))) goto LAB_00047fcb;\n            plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list;\n          } while (plVar7 != (lang_statement_union *)0x0);\n        }\n        secname = ".mbind.bss";\n        if (((uVar9 & 0x102) != 0) && (secname = ".mbind.data", (uVar9 & 8) != 0)) {\n          secname = ".mbind.text";\n          if ((uVar9 & 0x10) == 0) {\n            secname = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }" { (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;) (labeled_statement "LAB_00047b5c:\n    if (((bVar17) && (bVar2 == bfd_target_elf_flavour)) && (uVar9 = s->flags, (uVar9 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)((int)s->used_by_bfd + 0xb) & 1) != 0) {\n        if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n          plVar7 = lang_output_section_statement.head;\n          do {\n            paVar6 = (plVar7->output_section_statement).bfd_section;\n            if (((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))) goto LAB_00047fcb;\n            plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list;\n          } while (plVar7 != (lang_statement_union *)0x0);\n        }\n        secname = ".mbind.bss";\n        if (((uVar9 & 0x102) != 0) && (secname = ".mbind.data", (uVar9 & 8) != 0)) {\n          secname = ".mbind.text";\n          if ((uVar9 & 0x10) == 0) {\n            secname = ".mbind.rodata";\n          }\n        }\n      }\n    }" statement_identifier : (if_statement "if (((bVar17) && (bVar2 == bfd_target_elf_flavour)) && (uVar9 = s->flags, (uVar9 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)((int)s->used_by_bfd + 0xb) & 1) != 0) {\n        if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n          plVar7 = lang_output_section_statement.head;\n          do {\n            paVar6 = (plVar7->output_section_statement).bfd_section;\n            if (((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))) goto LAB_00047fcb;\n            plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list;\n          } while (plVar7 != (lang_statement_union *)0x0);\n        }\n        secname = ".mbind.bss";\n        if (((uVar9 & 0x102) != 0) && (secname = ".mbind.data", (uVar9 & 8) != 0)) {\n          secname = ".mbind.text";\n          if ((uVar9 & 0x10) == 0) {\n            secname = ".mbind.rodata";\n          }\n        }\n      }\n    }" if (parenthesized_expression "(((bVar17) && (bVar2 == bfd_target_elf_flavour)) && (uVar9 = s->flags, (uVar9 & 1) != 0))" ( (binary_expression "((bVar17) && (bVar2 == bfd_target_elf_flavour)) && (uVar9 = s->flags, (uVar9 & 1) != 0)" (parenthesized_expression "((bVar17) && (bVar2 == bfd_target_elf_flavour))" ( (binary_expression "(bVar17) && (bVar2 == bfd_target_elf_flavour)" (parenthesized_expression "(bVar17)" ( identifier )) && (parenthesized_expression "(bVar2 == bfd_target_elf_flavour)" ( (binary_expression "bVar2 == bfd_target_elf_flavour" identifier == identifier) ))) )) && (parenthesized_expression "(uVar9 = s->flags, (uVar9 & 1) != 0)" ( (comma_expression "uVar9 = s->flags, (uVar9 & 1) != 0" (assignment_expression "uVar9 = s->flags" identifier = (field_expression "s->flags" identifier -> field_identifier)) , (binary_expression "(uVar9 & 1) != 0" (parenthesized_expression "(uVar9 & 1)" ( (binary_expression "uVar9 & 1" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\nLAB_00047b7b:\n      if ((*(byte *)((int)s->used_by_bfd + 0xb) & 1) != 0) {\n        if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n          plVar7 = lang_output_section_statement.head;\n          do {\n            paVar6 = (plVar7->output_section_statement).bfd_section;\n            if (((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))) goto LAB_00047fcb;\n            plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list;\n          } while (plVar7 != (lang_statement_union *)0x0);\n        }\n        secname = ".mbind.bss";\n        if (((uVar9 & 0x102) != 0) && (secname = ".mbind.data", (uVar9 & 8) != 0)) {\n          secname = ".mbind.text";\n          if ((uVar9 & 0x10) == 0) {\n            secname = ".mbind.rodata";\n          }\n        }\n      }\n    }" { (labeled_statement "LAB_00047b7b:\n      if ((*(byte *)((int)s->used_by_bfd + 0xb) & 1) != 0) {\n        if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n          plVar7 = lang_output_section_statement.head;\n          do {\n            paVar6 = (plVar7->output_section_statement).bfd_section;\n            if (((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))) goto LAB_00047fcb;\n            plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list;\n          } while (plVar7 != (lang_statement_union *)0x0);\n        }\n        secname = ".mbind.bss";\n        if (((uVar9 & 0x102) != 0) && (secname = ".mbind.data", (uVar9 & 8) != 0)) {\n          secname = ".mbind.text";\n          if ((uVar9 & 0x10) == 0) {\n            secname = ".mbind.rodata";\n          }\n        }\n      }" statement_identifier : (if_statement "if ((*(byte *)((int)s->used_by_bfd + 0xb) & 1) != 0) {\n        if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n          plVar7 = lang_output_section_statement.head;\n          do {\n            paVar6 = (plVar7->output_section_statement).bfd_section;\n            if (((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))) goto LAB_00047fcb;\n            plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list;\n          } while (plVar7 != (lang_statement_union *)0x0);\n        }\n        secname = ".mbind.bss";\n        if (((uVar9 & 0x102) != 0) && (secname = ".mbind.data", (uVar9 & 8) != 0)) {\n          secname = ".mbind.text";\n          if ((uVar9 & 0x10) == 0) {\n            secname = ".mbind.rodata";\n          }\n        }\n      }" if (parenthesized_expression "((*(byte *)((int)s->used_by_bfd + 0xb) & 1) != 0)" ( (binary_expression "(*(byte *)((int)s->used_by_bfd + 0xb) & 1) != 0" (parenthesized_expression "(*(byte *)((int)s->used_by_bfd + 0xb) & 1)" ( (binary_expression "*(byte *)((int)s->used_by_bfd + 0xb) & 1" (pointer_expression "*(byte *)((int)s->used_by_bfd + 0xb)" * (cast_expression "(byte *)((int)s->used_by_bfd + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)s->used_by_bfd + 0xb)" ( (binary_expression "(int)s->used_by_bfd + 0xb" (cast_expression "(int)s->used_by_bfd" ( (type_descriptor "int" primitive_type) ) (field_expression "s->used_by_bfd" identifier -> field_identifier)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n          plVar7 = lang_output_section_statement.head;\n          do {\n            paVar6 = (plVar7->output_section_statement).bfd_section;\n            if (((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))) goto LAB_00047fcb;\n            plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list;\n          } while (plVar7 != (lang_statement_union *)0x0);\n        }\n        secname = ".mbind.bss";\n        if (((uVar9 & 0x102) != 0) && (secname = ".mbind.data", (uVar9 & 8) != 0)) {\n          secname = ".mbind.text";\n          if ((uVar9 & 0x10) == 0) {\n            secname = ".mbind.rodata";\n          }\n        }\n      }" { (if_statement "if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n          plVar7 = lang_output_section_statement.head;\n          do {\n            paVar6 = (plVar7->output_section_statement).bfd_section;\n            if (((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))) goto LAB_00047fcb;\n            plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list;\n          } while (plVar7 != (lang_statement_union *)0x0);\n        }" if (parenthesized_expression "(lang_output_section_statement.head != (lang_statement_union *)0x0)" ( (binary_expression "lang_output_section_statement.head != (lang_statement_union *)0x0" (field_expression "lang_output_section_statement.head" identifier . field_identifier) != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          plVar7 = lang_output_section_statement.head;\n          do {\n            paVar6 = (plVar7->output_section_statement).bfd_section;\n            if (((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))) goto LAB_00047fcb;\n            plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list;\n          } while (plVar7 != (lang_statement_union *)0x0);\n        }" { (expression_statement "plVar7 = lang_output_section_statement.head;" (assignment_expression "plVar7 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ;) (do_statement "do {\n            paVar6 = (plVar7->output_section_statement).bfd_section;\n            if (((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))) goto LAB_00047fcb;\n            plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list;\n          } while (plVar7 != (lang_statement_union *)0x0);" do (compound_statement "{\n            paVar6 = (plVar7->output_section_statement).bfd_section;\n            if (((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))) goto LAB_00047fcb;\n            plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list;\n          }" { (expression_statement "paVar6 = (plVar7->output_section_statement).bfd_section;" (assignment_expression "paVar6 = (plVar7->output_section_statement).bfd_section" identifier = (field_expression "(plVar7->output_section_statement).bfd_section" (parenthesized_expression "(plVar7->output_section_statement)" ( (field_expression "plVar7->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))) goto LAB_00047fcb;" if (parenthesized_expression "(((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 )))))" ( (binary_expression "((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)) &&\n               (((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))" (parenthesized_expression "((paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0))" ( (binary_expression "(paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)) &&\n                (paVar6 != (asection *)0x0)" (parenthesized_expression "(paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180))" ( (binary_expression "paVar6 != (asection *)(PTR__bfd_std_section_001cdfbc + 0x180)" identifier != (cast_expression "(asection *)(PTR__bfd_std_section_001cdfbc + 0x180)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_001cdfbc + 0x180)" ( (binary_expression "PTR__bfd_std_section_001cdfbc + 0x180" identifier + number_literal) )))) )) && (parenthesized_expression "(paVar6 != (asection *)0x0)" ( (binary_expression "paVar6 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))))" ( (parenthesized_expression "((*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 )))" ( (binary_expression "(*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0 &&\n                ((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))" (binary_expression "(*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1) != 0" (parenthesized_expression "(*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1)" ( (binary_expression "*(byte *)((int)paVar6->used_by_bfd + 0xb) & 1" (pointer_expression "*(byte *)((int)paVar6->used_by_bfd + 0xb)" * (cast_expression "(byte *)((int)paVar6->used_by_bfd + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar6->used_by_bfd + 0xb)" ( (binary_expression "(int)paVar6->used_by_bfd + 0xb" (cast_expression "(int)paVar6->used_by_bfd" ( (type_descriptor "int" primitive_type) ) (field_expression "paVar6->used_by_bfd" identifier -> field_identifier)) + number_literal) )))) & number_literal) )) != number_literal) && (parenthesized_expression "((((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 ))" ( (parenthesized_expression "(((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))\n                 )" ( (binary_expression "((paVar6->flags ^ uVar9) & 0x11b) == 0 &&\n                 (*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))" (binary_expression "((paVar6->flags ^ uVar9) & 0x11b) == 0" (parenthesized_expression "((paVar6->flags ^ uVar9) & 0x11b)" ( (binary_expression "(paVar6->flags ^ uVar9) & 0x11b" (parenthesized_expression "(paVar6->flags ^ uVar9)" ( (binary_expression "paVar6->flags ^ uVar9" (field_expression "paVar6->flags" identifier -> field_identifier) ^ identifier) )) & number_literal) )) == number_literal) && (parenthesized_expression "(*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))" ( (binary_expression "*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c)" (pointer_expression "*(int *)((int)paVar6->used_by_bfd + 0x2c)" * (cast_expression "(int *)((int)paVar6->used_by_bfd + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar6->used_by_bfd + 0x2c)" ( (binary_expression "(int)paVar6->used_by_bfd + 0x2c" (cast_expression "(int)paVar6->used_by_bfd" ( (type_descriptor "int" primitive_type) ) (field_expression "paVar6->used_by_bfd" identifier -> field_identifier)) + number_literal) )))) == (pointer_expression "*(int *)((int)s->used_by_bfd + 0x2c)" * (cast_expression "(int *)((int)s->used_by_bfd + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)s->used_by_bfd + 0x2c)" ( (binary_expression "(int)s->used_by_bfd + 0x2c" (cast_expression "(int)s->used_by_bfd" ( (type_descriptor "int" primitive_type) ) (field_expression "s->used_by_bfd" identifier -> field_identifier)) + number_literal) ))))) ))) )) ))) )) ))) )) (goto_statement "goto LAB_00047fcb;" goto statement_identifier ;)) (expression_statement "plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list;" (assignment_expression "plVar7 = (lang_statement_union *)(plVar7->wild_statement).section_list" identifier = (cast_expression "(lang_statement_union *)(plVar7->wild_statement).section_list" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar7->wild_statement).section_list" (parenthesized_expression "(plVar7->wild_statement)" ( (field_expression "plVar7->wild_statement" identifier -> field_identifier) )) . field_identifier))) ;) }) while (parenthesized_expression "(plVar7 != (lang_statement_union *)0x0)" ( (binary_expression "plVar7 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "secname = ".mbind.bss";" (assignment_expression "secname = ".mbind.bss"" identifier = (string_literal "".mbind.bss"" " string_content ")) ;) (if_statement "if (((uVar9 & 0x102) != 0) && (secname = ".mbind.data", (uVar9 & 8) != 0)) {\n          secname = ".mbind.text";\n          if ((uVar9 & 0x10) == 0) {\n            secname = ".mbind.rodata";\n          }\n        }" if (parenthesized_expression "(((uVar9 & 0x102) != 0) && (secname = ".mbind.data", (uVar9 & 8) != 0))" ( (binary_expression "((uVar9 & 0x102) != 0) && (secname = ".mbind.data", (uVar9 & 8) != 0)" (parenthesized_expression "((uVar9 & 0x102) != 0)" ( (binary_expression "(uVar9 & 0x102) != 0" (parenthesized_expression "(uVar9 & 0x102)" ( (binary_expression "uVar9 & 0x102" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(secname = ".mbind.data", (uVar9 & 8) != 0)" ( (comma_expression "secname = ".mbind.data", (uVar9 & 8) != 0" (assignment_expression "secname = ".mbind.data"" identifier = (string_literal "".mbind.data"" " string_content ")) , (binary_expression "(uVar9 & 8) != 0" (parenthesized_expression "(uVar9 & 8)" ( (binary_expression "uVar9 & 8" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          secname = ".mbind.text";\n          if ((uVar9 & 0x10) == 0) {\n            secname = ".mbind.rodata";\n          }\n        }" { (expression_statement "secname = ".mbind.text";" (assignment_expression "secname = ".mbind.text"" identifier = (string_literal "".mbind.text"" " string_content ")) ;) (if_statement "if ((uVar9 & 0x10) == 0) {\n            secname = ".mbind.rodata";\n          }" if (parenthesized_expression "((uVar9 & 0x10) == 0)" ( (binary_expression "(uVar9 & 0x10) == 0" (parenthesized_expression "(uVar9 & 0x10)" ( (binary_expression "uVar9 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            secname = ".mbind.rodata";\n          }" { (expression_statement "secname = ".mbind.rodata";" (assignment_expression "secname = ".mbind.rodata"" identifier = (string_literal "".mbind.rodata"" " string_content ")) ;) })) })) }))) }))) }) (else_clause "else {\n    uVar9 = s->flags;\n    if ((uVar9 & 1) == 0) goto LAB_00047c3c;\n    bVar16 = bVar1 < bfd_target_elf_flavour;\n    bVar18 = bVar1 == bfd_target_elf_flavour;\n    if (bVar18) {\n      if (local_34 == (lang_statement_union *)0x4) {\n        secname = ".rela.dyn";\n        bVar19 = true;\n        goto LAB_00047b5c;\n      }\n      bVar19 = local_34 == (lang_statement_union *)0x9;\n      if (bVar19) {\n        secname = ".rel.dyn";\n      }\n      if (bVar2 == bfd_target_elf_flavour) goto LAB_00047b7b;\n    }\n    else {\n      iVar8 = 4;\n      bVar19 = false;\n      pbVar11 = (byte *)secname;\n      pbVar15 = &DAT_000ae302;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar15;\n        bVar18 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + 1;\n        pbVar15 = pbVar15 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) {\n        bVar19 = true;\n        if (secname[4] == 'a') {\n          secname = ".rela.dyn";\n        }\n        else {\n          secname = ".rel.dyn";\n        }\n      }\n    }\n  }" else (compound_statement "{\n    uVar9 = s->flags;\n    if ((uVar9 & 1) == 0) goto LAB_00047c3c;\n    bVar16 = bVar1 < bfd_target_elf_flavour;\n    bVar18 = bVar1 == bfd_target_elf_flavour;\n    if (bVar18) {\n      if (local_34 == (lang_statement_union *)0x4) {\n        secname = ".rela.dyn";\n        bVar19 = true;\n        goto LAB_00047b5c;\n      }\n      bVar19 = local_34 == (lang_statement_union *)0x9;\n      if (bVar19) {\n        secname = ".rel.dyn";\n      }\n      if (bVar2 == bfd_target_elf_flavour) goto LAB_00047b7b;\n    }\n    else {\n      iVar8 = 4;\n      bVar19 = false;\n      pbVar11 = (byte *)secname;\n      pbVar15 = &DAT_000ae302;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar15;\n        bVar18 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + 1;\n        pbVar15 = pbVar15 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) {\n        bVar19 = true;\n        if (secname[4] == 'a') {\n          secname = ".rela.dyn";\n        }\n        else {\n          secname = ".rel.dyn";\n        }\n      }\n    }\n  }" { (expression_statement "uVar9 = s->flags;" (assignment_expression "uVar9 = s->flags" identifier = (field_expression "s->flags" identifier -> field_identifier)) ;) (if_statement "if ((uVar9 & 1) == 0) goto LAB_00047c3c;" if (parenthesized_expression "((uVar9 & 1) == 0)" ( (binary_expression "(uVar9 & 1) == 0" (parenthesized_expression "(uVar9 & 1)" ( (binary_expression "uVar9 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00047c3c;" goto statement_identifier ;)) (expression_statement "bVar16 = bVar1 < bfd_target_elf_flavour;" (assignment_expression "bVar16 = bVar1 < bfd_target_elf_flavour" identifier = (binary_expression "bVar1 < bfd_target_elf_flavour" identifier < identifier)) ;) (expression_statement "bVar18 = bVar1 == bfd_target_elf_flavour;" (assignment_expression "bVar18 = bVar1 == bfd_target_elf_flavour" identifier = (binary_expression "bVar1 == bfd_target_elf_flavour" identifier == identifier)) ;) (if_statement "if (bVar18) {\n      if (local_34 == (lang_statement_union *)0x4) {\n        secname = ".rela.dyn";\n        bVar19 = true;\n        goto LAB_00047b5c;\n      }\n      bVar19 = local_34 == (lang_statement_union *)0x9;\n      if (bVar19) {\n        secname = ".rel.dyn";\n      }\n      if (bVar2 == bfd_target_elf_flavour) goto LAB_00047b7b;\n    }\n    else {\n      iVar8 = 4;\n      bVar19 = false;\n      pbVar11 = (byte *)secname;\n      pbVar15 = &DAT_000ae302;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar15;\n        bVar18 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + 1;\n        pbVar15 = pbVar15 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) {\n        bVar19 = true;\n        if (secname[4] == 'a') {\n          secname = ".rela.dyn";\n        }\n        else {\n          secname = ".rel.dyn";\n        }\n      }\n    }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n      if (local_34 == (lang_statement_union *)0x4) {\n        secname = ".rela.dyn";\n        bVar19 = true;\n        goto LAB_00047b5c;\n      }\n      bVar19 = local_34 == (lang_statement_union *)0x9;\n      if (bVar19) {\n        secname = ".rel.dyn";\n      }\n      if (bVar2 == bfd_target_elf_flavour) goto LAB_00047b7b;\n    }" { (if_statement "if (local_34 == (lang_statement_union *)0x4) {\n        secname = ".rela.dyn";\n        bVar19 = true;\n        goto LAB_00047b5c;\n      }" if (parenthesized_expression "(local_34 == (lang_statement_union *)0x4)" ( (binary_expression "local_34 == (lang_statement_union *)0x4" identifier == (cast_expression "(lang_statement_union *)0x4" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        secname = ".rela.dyn";\n        bVar19 = true;\n        goto LAB_00047b5c;\n      }" { (expression_statement "secname = ".rela.dyn";" (assignment_expression "secname = ".rela.dyn"" identifier = (string_literal "".rela.dyn"" " string_content ")) ;) (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" identifier = true) ;) (goto_statement "goto LAB_00047b5c;" goto statement_identifier ;) })) (expression_statement "bVar19 = local_34 == (lang_statement_union *)0x9;" (assignment_expression "bVar19 = local_34 == (lang_statement_union *)0x9" identifier = (binary_expression "local_34 == (lang_statement_union *)0x9" identifier == (cast_expression "(lang_statement_union *)0x9" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar19) {\n        secname = ".rel.dyn";\n      }" if (parenthesized_expression "(bVar19)" ( identifier )) (compound_statement "{\n        secname = ".rel.dyn";\n      }" { (expression_statement "secname = ".rel.dyn";" (assignment_expression "secname = ".rel.dyn"" identifier = (string_literal "".rel.dyn"" " string_content ")) ;) })) (if_statement "if (bVar2 == bfd_target_elf_flavour) goto LAB_00047b7b;" if (parenthesized_expression "(bVar2 == bfd_target_elf_flavour)" ( (binary_expression "bVar2 == bfd_target_elf_flavour" identifier == identifier) )) (goto_statement "goto LAB_00047b7b;" goto statement_identifier ;)) }) (else_clause "else {\n      iVar8 = 4;\n      bVar19 = false;\n      pbVar11 = (byte *)secname;\n      pbVar15 = &DAT_000ae302;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar15;\n        bVar18 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + 1;\n        pbVar15 = pbVar15 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) {\n        bVar19 = true;\n        if (secname[4] == 'a') {\n          secname = ".rela.dyn";\n        }\n        else {\n          secname = ".rel.dyn";\n        }\n      }\n    }" else (compound_statement "{\n      iVar8 = 4;\n      bVar19 = false;\n      pbVar11 = (byte *)secname;\n      pbVar15 = &DAT_000ae302;\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar15;\n        bVar18 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + 1;\n        pbVar15 = pbVar15 + 1;\n      } while (bVar18);\n      if ((!bVar16 && !bVar18) == bVar16) {\n        bVar19 = true;\n        if (secname[4] == 'a') {\n          secname = ".rela.dyn";\n        }\n        else {\n          secname = ".rel.dyn";\n        }\n      }\n    }" { (expression_statement "iVar8 = 4;" (assignment_expression "iVar8 = 4" identifier = number_literal) ;) (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;) (expression_statement "pbVar11 = (byte *)secname;" (assignment_expression "pbVar11 = (byte *)secname" identifier = (cast_expression "(byte *)secname" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar15 = &DAT_000ae302;" (assignment_expression "pbVar15 = &DAT_000ae302" identifier = (pointer_expression "&DAT_000ae302" & identifier)) ;) (do_statement "do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar15;\n        bVar18 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + 1;\n        pbVar15 = pbVar15 + 1;\n      } while (bVar18);" do (compound_statement "{\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar16 = *pbVar11 < *pbVar15;\n        bVar18 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + 1;\n        pbVar15 = pbVar15 + 1;\n      }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar11 < *pbVar15;" (assignment_expression "bVar16 = *pbVar11 < *pbVar15" identifier = (binary_expression "*pbVar11 < *pbVar15" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar18 = *pbVar11 == *pbVar15;" (assignment_expression "bVar18 = *pbVar11 == *pbVar15" identifier = (binary_expression "*pbVar11 == *pbVar15" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + 1;" (assignment_expression "pbVar11 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (if_statement "if ((!bVar16 && !bVar18) == bVar16) {\n        bVar19 = true;\n        if (secname[4] == 'a') {\n          secname = ".rela.dyn";\n        }\n        else {\n          secname = ".rel.dyn";\n        }\n      }" if (parenthesized_expression "((!bVar16 && !bVar18) == bVar16)" ( (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" ( (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier) )) (compound_statement "{\n        bVar19 = true;\n        if (secname[4] == 'a') {\n          secname = ".rela.dyn";\n        }\n        else {\n          secname = ".rel.dyn";\n        }\n      }" { (expression_statement "bVar19 = true;" (assignment_expression "bVar19 = true" identifier = true) ;) (if_statement "if (secname[4] == 'a') {\n          secname = ".rela.dyn";\n        }\n        else {\n          secname = ".rel.dyn";\n        }" if (parenthesized_expression "(secname[4] == 'a')" ( (binary_expression "secname[4] == 'a'" (subscript_expression "secname[4]" identifier [ number_literal ]) == (char_literal "'a'" ' character ')) )) (compound_statement "{\n          secname = ".rela.dyn";\n        }" { (expression_statement "secname = ".rela.dyn";" (assignment_expression "secname = ".rela.dyn"" identifier = (string_literal "".rela.dyn"" " string_content ")) ;) }) (else_clause "else {\n          secname = ".rel.dyn";\n        }" else (compound_statement "{\n          secname = ".rel.dyn";\n        }" { (expression_statement "secname = ".rel.dyn";" (assignment_expression "secname = ".rel.dyn"" identifier = (string_literal "".rel.dyn"" " string_content ")) ;) }))) })) }))) }))))) (if_statement "if ((constraint == 0) &&\n     (plVar7 = (lang_statement_union *)lang_output_section_statement_lookup(secname,0,0),\n     plVar7 != (lang_statement_union *)0x0)) {\n    plVar14 = (lang_statement_union *)0x0;\n    do {\n      paVar6 = (plVar7->output_section_statement).bfd_section;\n      plVar13 = plVar7;\n      if (paVar6 != (asection *)0x0) {\n        if (paVar6->flags == 0) goto LAB_00047fcb;\n        plVar13 = plVar14;\n        if (((paVar6->flags ^ s->flags) & 3) == 0) {\n          if ((bVar1 != bfd_target_elf_flavour) || (bVar2 != bfd_target_elf_flavour))\n          goto LAB_00047fcb;\n          if ((*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c)) &&\n             (((link_info._0_1_ & 3) != 2 ||\n              (-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8)))))) {\n            iVar8 = _bfd_elf_match_sections_by_type(link_info.output_bfd,paVar6,s->owner,s);\n            if (iVar8 != 0) goto LAB_00047fcb;\n            if ((plVar7->wild_statement).children.tail == (lang_statement_union **)0x0) {\n              plVar13 = plVar7;\n            }\n          }\n        }\n      }\n      plVar7 = (lang_statement_union *)\n               next_matching_output_section_statement(&plVar7->output_section_statement,0);\n      plVar14 = plVar13;\n    } while (plVar7 != (lang_statement_union *)0x0);\n    constraint = 0x17e;\n    if (plVar13 != (lang_statement_union *)0x0) {\n      lang_add_section(&(plVar13->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar13->output_section_statement);\n      return (lang_output_section_statement_type *)plVar13;\n    }\n  }" if (parenthesized_expression "((constraint == 0) &&\n     (plVar7 = (lang_statement_union *)lang_output_section_statement_lookup(secname,0,0),\n     plVar7 != (lang_statement_union *)0x0))" ( (binary_expression "(constraint == 0) &&\n     (plVar7 = (lang_statement_union *)lang_output_section_statement_lookup(secname,0,0),\n     plVar7 != (lang_statement_union *)0x0)" (parenthesized_expression "(constraint == 0)" ( (binary_expression "constraint == 0" identifier == number_literal) )) && (parenthesized_expression "(plVar7 = (lang_statement_union *)lang_output_section_statement_lookup(secname,0,0),\n     plVar7 != (lang_statement_union *)0x0)" ( (comma_expression "plVar7 = (lang_statement_union *)lang_output_section_statement_lookup(secname,0,0),\n     plVar7 != (lang_statement_union *)0x0" (assignment_expression "plVar7 = (lang_statement_union *)lang_output_section_statement_lookup(secname,0,0)" identifier = (cast_expression "(lang_statement_union *)lang_output_section_statement_lookup(secname,0,0)" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "lang_output_section_statement_lookup(secname,0,0)" identifier (argument_list "(secname,0,0)" ( identifier , number_literal , number_literal ))))) , (binary_expression "plVar7 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    plVar14 = (lang_statement_union *)0x0;\n    do {\n      paVar6 = (plVar7->output_section_statement).bfd_section;\n      plVar13 = plVar7;\n      if (paVar6 != (asection *)0x0) {\n        if (paVar6->flags == 0) goto LAB_00047fcb;\n        plVar13 = plVar14;\n        if (((paVar6->flags ^ s->flags) & 3) == 0) {\n          if ((bVar1 != bfd_target_elf_flavour) || (bVar2 != bfd_target_elf_flavour))\n          goto LAB_00047fcb;\n          if ((*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c)) &&\n             (((link_info._0_1_ & 3) != 2 ||\n              (-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8)))))) {\n            iVar8 = _bfd_elf_match_sections_by_type(link_info.output_bfd,paVar6,s->owner,s);\n            if (iVar8 != 0) goto LAB_00047fcb;\n            if ((plVar7->wild_statement).children.tail == (lang_statement_union **)0x0) {\n              plVar13 = plVar7;\n            }\n          }\n        }\n      }\n      plVar7 = (lang_statement_union *)\n               next_matching_output_section_statement(&plVar7->output_section_statement,0);\n      plVar14 = plVar13;\n    } while (plVar7 != (lang_statement_union *)0x0);\n    constraint = 0x17e;\n    if (plVar13 != (lang_statement_union *)0x0) {\n      lang_add_section(&(plVar13->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar13->output_section_statement);\n      return (lang_output_section_statement_type *)plVar13;\n    }\n  }" { (expression_statement "plVar14 = (lang_statement_union *)0x0;" (assignment_expression "plVar14 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      paVar6 = (plVar7->output_section_statement).bfd_section;\n      plVar13 = plVar7;\n      if (paVar6 != (asection *)0x0) {\n        if (paVar6->flags == 0) goto LAB_00047fcb;\n        plVar13 = plVar14;\n        if (((paVar6->flags ^ s->flags) & 3) == 0) {\n          if ((bVar1 != bfd_target_elf_flavour) || (bVar2 != bfd_target_elf_flavour))\n          goto LAB_00047fcb;\n          if ((*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c)) &&\n             (((link_info._0_1_ & 3) != 2 ||\n              (-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8)))))) {\n            iVar8 = _bfd_elf_match_sections_by_type(link_info.output_bfd,paVar6,s->owner,s);\n            if (iVar8 != 0) goto LAB_00047fcb;\n            if ((plVar7->wild_statement).children.tail == (lang_statement_union **)0x0) {\n              plVar13 = plVar7;\n            }\n          }\n        }\n      }\n      plVar7 = (lang_statement_union *)\n               next_matching_output_section_statement(&plVar7->output_section_statement,0);\n      plVar14 = plVar13;\n    } while (plVar7 != (lang_statement_union *)0x0);" do (compound_statement "{\n      paVar6 = (plVar7->output_section_statement).bfd_section;\n      plVar13 = plVar7;\n      if (paVar6 != (asection *)0x0) {\n        if (paVar6->flags == 0) goto LAB_00047fcb;\n        plVar13 = plVar14;\n        if (((paVar6->flags ^ s->flags) & 3) == 0) {\n          if ((bVar1 != bfd_target_elf_flavour) || (bVar2 != bfd_target_elf_flavour))\n          goto LAB_00047fcb;\n          if ((*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c)) &&\n             (((link_info._0_1_ & 3) != 2 ||\n              (-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8)))))) {\n            iVar8 = _bfd_elf_match_sections_by_type(link_info.output_bfd,paVar6,s->owner,s);\n            if (iVar8 != 0) goto LAB_00047fcb;\n            if ((plVar7->wild_statement).children.tail == (lang_statement_union **)0x0) {\n              plVar13 = plVar7;\n            }\n          }\n        }\n      }\n      plVar7 = (lang_statement_union *)\n               next_matching_output_section_statement(&plVar7->output_section_statement,0);\n      plVar14 = plVar13;\n    }" { (expression_statement "paVar6 = (plVar7->output_section_statement).bfd_section;" (assignment_expression "paVar6 = (plVar7->output_section_statement).bfd_section" identifier = (field_expression "(plVar7->output_section_statement).bfd_section" (parenthesized_expression "(plVar7->output_section_statement)" ( (field_expression "plVar7->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "plVar13 = plVar7;" (assignment_expression "plVar13 = plVar7" identifier = identifier) ;) (if_statement "if (paVar6 != (asection *)0x0) {\n        if (paVar6->flags == 0) goto LAB_00047fcb;\n        plVar13 = plVar14;\n        if (((paVar6->flags ^ s->flags) & 3) == 0) {\n          if ((bVar1 != bfd_target_elf_flavour) || (bVar2 != bfd_target_elf_flavour))\n          goto LAB_00047fcb;\n          if ((*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c)) &&\n             (((link_info._0_1_ & 3) != 2 ||\n              (-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8)))))) {\n            iVar8 = _bfd_elf_match_sections_by_type(link_info.output_bfd,paVar6,s->owner,s);\n            if (iVar8 != 0) goto LAB_00047fcb;\n            if ((plVar7->wild_statement).children.tail == (lang_statement_union **)0x0) {\n              plVar13 = plVar7;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(paVar6 != (asection *)0x0)" ( (binary_expression "paVar6 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (paVar6->flags == 0) goto LAB_00047fcb;\n        plVar13 = plVar14;\n        if (((paVar6->flags ^ s->flags) & 3) == 0) {\n          if ((bVar1 != bfd_target_elf_flavour) || (bVar2 != bfd_target_elf_flavour))\n          goto LAB_00047fcb;\n          if ((*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c)) &&\n             (((link_info._0_1_ & 3) != 2 ||\n              (-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8)))))) {\n            iVar8 = _bfd_elf_match_sections_by_type(link_info.output_bfd,paVar6,s->owner,s);\n            if (iVar8 != 0) goto LAB_00047fcb;\n            if ((plVar7->wild_statement).children.tail == (lang_statement_union **)0x0) {\n              plVar13 = plVar7;\n            }\n          }\n        }\n      }" { (if_statement "if (paVar6->flags == 0) goto LAB_00047fcb;" if (parenthesized_expression "(paVar6->flags == 0)" ( (binary_expression "paVar6->flags == 0" (field_expression "paVar6->flags" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_00047fcb;" goto statement_identifier ;)) (expression_statement "plVar13 = plVar14;" (assignment_expression "plVar13 = plVar14" identifier = identifier) ;) (if_statement "if (((paVar6->flags ^ s->flags) & 3) == 0) {\n          if ((bVar1 != bfd_target_elf_flavour) || (bVar2 != bfd_target_elf_flavour))\n          goto LAB_00047fcb;\n          if ((*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c)) &&\n             (((link_info._0_1_ & 3) != 2 ||\n              (-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8)))))) {\n            iVar8 = _bfd_elf_match_sections_by_type(link_info.output_bfd,paVar6,s->owner,s);\n            if (iVar8 != 0) goto LAB_00047fcb;\n            if ((plVar7->wild_statement).children.tail == (lang_statement_union **)0x0) {\n              plVar13 = plVar7;\n            }\n          }\n        }" if (parenthesized_expression "(((paVar6->flags ^ s->flags) & 3) == 0)" ( (binary_expression "((paVar6->flags ^ s->flags) & 3) == 0" (parenthesized_expression "((paVar6->flags ^ s->flags) & 3)" ( (binary_expression "(paVar6->flags ^ s->flags) & 3" (parenthesized_expression "(paVar6->flags ^ s->flags)" ( (binary_expression "paVar6->flags ^ s->flags" (field_expression "paVar6->flags" identifier -> field_identifier) ^ (field_expression "s->flags" identifier -> field_identifier)) )) & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((bVar1 != bfd_target_elf_flavour) || (bVar2 != bfd_target_elf_flavour))\n          goto LAB_00047fcb;\n          if ((*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c)) &&\n             (((link_info._0_1_ & 3) != 2 ||\n              (-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8)))))) {\n            iVar8 = _bfd_elf_match_sections_by_type(link_info.output_bfd,paVar6,s->owner,s);\n            if (iVar8 != 0) goto LAB_00047fcb;\n            if ((plVar7->wild_statement).children.tail == (lang_statement_union **)0x0) {\n              plVar13 = plVar7;\n            }\n          }\n        }" { (if_statement "if ((bVar1 != bfd_target_elf_flavour) || (bVar2 != bfd_target_elf_flavour))\n          goto LAB_00047fcb;" if (parenthesized_expression "((bVar1 != bfd_target_elf_flavour) || (bVar2 != bfd_target_elf_flavour))" ( (binary_expression "(bVar1 != bfd_target_elf_flavour) || (bVar2 != bfd_target_elf_flavour)" (parenthesized_expression "(bVar1 != bfd_target_elf_flavour)" ( (binary_expression "bVar1 != bfd_target_elf_flavour" identifier != identifier) )) || (parenthesized_expression "(bVar2 != bfd_target_elf_flavour)" ( (binary_expression "bVar2 != bfd_target_elf_flavour" identifier != identifier) ))) )) (goto_statement "goto LAB_00047fcb;" goto statement_identifier ;)) (if_statement "if ((*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c)) &&\n             (((link_info._0_1_ & 3) != 2 ||\n              (-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8)))))) {\n            iVar8 = _bfd_elf_match_sections_by_type(link_info.output_bfd,paVar6,s->owner,s);\n            if (iVar8 != 0) goto LAB_00047fcb;\n            if ((plVar7->wild_statement).children.tail == (lang_statement_union **)0x0) {\n              plVar13 = plVar7;\n            }\n          }" if (parenthesized_expression "((*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c)) &&\n             (((link_info._0_1_ & 3) != 2 ||\n              (-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8))))))" ( (binary_expression "(*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c)) &&\n             (((link_info._0_1_ & 3) != 2 ||\n              (-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8)))))" (parenthesized_expression "(*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))" ( (binary_expression "*(int *)((int)paVar6->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c)" (pointer_expression "*(int *)((int)paVar6->used_by_bfd + 0x2c)" * (cast_expression "(int *)((int)paVar6->used_by_bfd + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar6->used_by_bfd + 0x2c)" ( (binary_expression "(int)paVar6->used_by_bfd + 0x2c" (cast_expression "(int)paVar6->used_by_bfd" ( (type_descriptor "int" primitive_type) ) (field_expression "paVar6->used_by_bfd" identifier -> field_identifier)) + number_literal) )))) == (pointer_expression "*(int *)((int)s->used_by_bfd + 0x2c)" * (cast_expression "(int *)((int)s->used_by_bfd + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)s->used_by_bfd + 0x2c)" ( (binary_expression "(int)s->used_by_bfd + 0x2c" (cast_expression "(int)s->used_by_bfd" ( (type_descriptor "int" primitive_type) ) (field_expression "s->used_by_bfd" identifier -> field_identifier)) + number_literal) ))))) )) && (parenthesized_expression "(((link_info._0_1_ & 3) != 2 ||\n              (-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8)))))" ( (parenthesized_expression "((link_info._0_1_ & 3) != 2 ||\n              (-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8))))" ( (binary_expression "(link_info._0_1_ & 3) != 2 ||\n              (-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8)))" (binary_expression "(link_info._0_1_ & 3) != 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) != number_literal) || (parenthesized_expression "(-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8)))" ( (binary_expression "-1 < (int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8))" number_literal < (cast_expression "(int)(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8))" ( (binary_expression "*(uint *)((int)paVar6->used_by_bfd + 8) ^\n                         *(uint *)((int)s->used_by_bfd + 8)" (pointer_expression "*(uint *)((int)paVar6->used_by_bfd + 8)" * (cast_expression "(uint *)((int)paVar6->used_by_bfd + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar6->used_by_bfd + 8)" ( (binary_expression "(int)paVar6->used_by_bfd + 8" (cast_expression "(int)paVar6->used_by_bfd" ( (type_descriptor "int" primitive_type) ) (field_expression "paVar6->used_by_bfd" identifier -> field_identifier)) + number_literal) )))) ^ (pointer_expression "*(uint *)((int)s->used_by_bfd + 8)" * (cast_expression "(uint *)((int)s->used_by_bfd + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)s->used_by_bfd + 8)" ( (binary_expression "(int)s->used_by_bfd + 8" (cast_expression "(int)s->used_by_bfd" ( (type_descriptor "int" primitive_type) ) (field_expression "s->used_by_bfd" identifier -> field_identifier)) + number_literal) ))))) )))) ))) )) ))) )) (compound_statement "{\n            iVar8 = _bfd_elf_match_sections_by_type(link_info.output_bfd,paVar6,s->owner,s);\n            if (iVar8 != 0) goto LAB_00047fcb;\n            if ((plVar7->wild_statement).children.tail == (lang_statement_union **)0x0) {\n              plVar13 = plVar7;\n            }\n          }" { (expression_statement "iVar8 = _bfd_elf_match_sections_by_type(link_info.output_bfd,paVar6,s->owner,s);" (assignment_expression "iVar8 = _bfd_elf_match_sections_by_type(link_info.output_bfd,paVar6,s->owner,s)" identifier = (call_expression "_bfd_elf_match_sections_by_type(link_info.output_bfd,paVar6,s->owner,s)" identifier (argument_list "(link_info.output_bfd,paVar6,s->owner,s)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , identifier , (field_expression "s->owner" identifier -> field_identifier) , identifier )))) ;) (if_statement "if (iVar8 != 0) goto LAB_00047fcb;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00047fcb;" goto statement_identifier ;)) (if_statement "if ((plVar7->wild_statement).children.tail == (lang_statement_union **)0x0) {\n              plVar13 = plVar7;\n            }" if (parenthesized_expression "((plVar7->wild_statement).children.tail == (lang_statement_union **)0x0)" ( (binary_expression "(plVar7->wild_statement).children.tail == (lang_statement_union **)0x0" (field_expression "(plVar7->wild_statement).children.tail" (field_expression "(plVar7->wild_statement).children" (parenthesized_expression "(plVar7->wild_statement)" ( (field_expression "plVar7->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier) == (cast_expression "(lang_statement_union **)0x0" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n              plVar13 = plVar7;\n            }" { (expression_statement "plVar13 = plVar7;" (assignment_expression "plVar13 = plVar7" identifier = identifier) ;) })) })) })) })) (expression_statement "plVar7 = (lang_statement_union *)\n               next_matching_output_section_statement(&plVar7->output_section_statement,0);" (assignment_expression "plVar7 = (lang_statement_union *)\n               next_matching_output_section_statement(&plVar7->output_section_statement,0)" identifier = (cast_expression "(lang_statement_union *)\n               next_matching_output_section_statement(&plVar7->output_section_statement,0)" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "next_matching_output_section_statement(&plVar7->output_section_statement,0)" identifier (argument_list "(&plVar7->output_section_statement,0)" ( (pointer_expression "&plVar7->output_section_statement" & (field_expression "plVar7->output_section_statement" identifier -> field_identifier)) , number_literal ))))) ;) (expression_statement "plVar14 = plVar13;" (assignment_expression "plVar14 = plVar13" identifier = identifier) ;) }) while (parenthesized_expression "(plVar7 != (lang_statement_union *)0x0)" ( (binary_expression "plVar7 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "constraint = 0x17e;" (assignment_expression "constraint = 0x17e" identifier = number_literal) ;) (if_statement "if (plVar13 != (lang_statement_union *)0x0) {\n      lang_add_section(&(plVar13->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar13->output_section_statement);\n      return (lang_output_section_statement_type *)plVar13;\n    }" if (parenthesized_expression "(plVar13 != (lang_statement_union *)0x0)" ( (binary_expression "plVar13 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      lang_add_section(&(plVar13->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar13->output_section_statement);\n      return (lang_output_section_statement_type *)plVar13;\n    }" { (expression_statement "lang_add_section(&(plVar13->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar13->output_section_statement);" (call_expression "lang_add_section(&(plVar13->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar13->output_section_statement)" identifier (argument_list "(&(plVar13->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar13->output_section_statement)" ( (pointer_expression "&(plVar13->output_section_statement).children" & (field_expression "(plVar13->output_section_statement).children" (parenthesized_expression "(plVar13->output_section_statement)" ( (field_expression "plVar13->output_section_statement" identifier -> field_identifier) )) . field_identifier)) , identifier , (cast_expression "(flag_info *)0x0" ( (type_descriptor "flag_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&plVar13->output_section_statement" & (field_expression "plVar13->output_section_statement" identifier -> field_identifier)) ))) ;) (return_statement "return (lang_output_section_statement_type *)plVar13;" return (cast_expression "(lang_output_section_statement_type *)plVar13" ( (type_descriptor "lang_output_section_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ;) })) })) (if_statement "if (gldelf_iamcu_place_orphan::orphan_init_done == 0) {\n    poVar12 = gldelf_iamcu_place_orphan::hold;\n    do {\n      if (poVar12->name != (char *)0x0) {\n        plVar4 = lang_output_section_statement_lookup(poVar12->name,0,0);\n        poVar12->os = plVar4;\n        if ((plVar4 != (lang_output_section_statement_type *)0x0) && (plVar4->flags == 0)) {\n          plVar4->flags = poVar12->flags;\n        }\n      }\n      poVar12 = poVar12 + 1;\n    } while (poVar12 != (orphan_save *)&DAT_001ce938);\n    gldelf_iamcu_place_orphan::orphan_init_done = 1;\n  }" if (parenthesized_expression "(gldelf_iamcu_place_orphan::orphan_init_done == 0)" ( (binary_expression "gldelf_iamcu_place_orphan::orphan_init_done == 0" identifier (ERROR "::orphan_init_done" : : identifier) == number_literal) )) (compound_statement "{\n    poVar12 = gldelf_iamcu_place_orphan::hold;\n    do {\n      if (poVar12->name != (char *)0x0) {\n        plVar4 = lang_output_section_statement_lookup(poVar12->name,0,0);\n        poVar12->os = plVar4;\n        if ((plVar4 != (lang_output_section_statement_type *)0x0) && (plVar4->flags == 0)) {\n          plVar4->flags = poVar12->flags;\n        }\n      }\n      poVar12 = poVar12 + 1;\n    } while (poVar12 != (orphan_save *)&DAT_001ce938);\n    gldelf_iamcu_place_orphan::orphan_init_done = 1;\n  }" { (expression_statement "poVar12 = gldelf_iamcu_place_orphan::hold;" (assignment_expression "poVar12 = gldelf_iamcu_place_orphan" identifier = identifier) (ERROR "::hold" : : identifier) ;) (do_statement "do {\n      if (poVar12->name != (char *)0x0) {\n        plVar4 = lang_output_section_statement_lookup(poVar12->name,0,0);\n        poVar12->os = plVar4;\n        if ((plVar4 != (lang_output_section_statement_type *)0x0) && (plVar4->flags == 0)) {\n          plVar4->flags = poVar12->flags;\n        }\n      }\n      poVar12 = poVar12 + 1;\n    } while (poVar12 != (orphan_save *)&DAT_001ce938);" do (compound_statement "{\n      if (poVar12->name != (char *)0x0) {\n        plVar4 = lang_output_section_statement_lookup(poVar12->name,0,0);\n        poVar12->os = plVar4;\n        if ((plVar4 != (lang_output_section_statement_type *)0x0) && (plVar4->flags == 0)) {\n          plVar4->flags = poVar12->flags;\n        }\n      }\n      poVar12 = poVar12 + 1;\n    }" { (if_statement "if (poVar12->name != (char *)0x0) {\n        plVar4 = lang_output_section_statement_lookup(poVar12->name,0,0);\n        poVar12->os = plVar4;\n        if ((plVar4 != (lang_output_section_statement_type *)0x0) && (plVar4->flags == 0)) {\n          plVar4->flags = poVar12->flags;\n        }\n      }" if (parenthesized_expression "(poVar12->name != (char *)0x0)" ( (binary_expression "poVar12->name != (char *)0x0" (field_expression "poVar12->name" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        plVar4 = lang_output_section_statement_lookup(poVar12->name,0,0);\n        poVar12->os = plVar4;\n        if ((plVar4 != (lang_output_section_statement_type *)0x0) && (plVar4->flags == 0)) {\n          plVar4->flags = poVar12->flags;\n        }\n      }" { (expression_statement "plVar4 = lang_output_section_statement_lookup(poVar12->name,0,0);" (assignment_expression "plVar4 = lang_output_section_statement_lookup(poVar12->name,0,0)" identifier = (call_expression "lang_output_section_statement_lookup(poVar12->name,0,0)" identifier (argument_list "(poVar12->name,0,0)" ( (field_expression "poVar12->name" identifier -> field_identifier) , number_literal , number_literal )))) ;) (expression_statement "poVar12->os = plVar4;" (assignment_expression "poVar12->os = plVar4" (field_expression "poVar12->os" identifier -> field_identifier) = identifier) ;) (if_statement "if ((plVar4 != (lang_output_section_statement_type *)0x0) && (plVar4->flags == 0)) {\n          plVar4->flags = poVar12->flags;\n        }" if (parenthesized_expression "((plVar4 != (lang_output_section_statement_type *)0x0) && (plVar4->flags == 0))" ( (binary_expression "(plVar4 != (lang_output_section_statement_type *)0x0) && (plVar4->flags == 0)" (parenthesized_expression "(plVar4 != (lang_output_section_statement_type *)0x0)" ( (binary_expression "plVar4 != (lang_output_section_statement_type *)0x0" identifier != (cast_expression "(lang_output_section_statement_type *)0x0" ( (type_descriptor "lang_output_section_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(plVar4->flags == 0)" ( (binary_expression "plVar4->flags == 0" (field_expression "plVar4->flags" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\n          plVar4->flags = poVar12->flags;\n        }" { (expression_statement "plVar4->flags = poVar12->flags;" (assignment_expression "plVar4->flags = poVar12->flags" (field_expression "plVar4->flags" identifier -> field_identifier) = (field_expression "poVar12->flags" identifier -> field_identifier)) ;) })) })) (expression_statement "poVar12 = poVar12 + 1;" (assignment_expression "poVar12 = poVar12 + 1" identifier = (binary_expression "poVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(poVar12 != (orphan_save *)&DAT_001ce938)" ( (binary_expression "poVar12 != (orphan_save *)&DAT_001ce938" identifier != (cast_expression "(orphan_save *)&DAT_001ce938" ( (type_descriptor "orphan_save *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_001ce938" & identifier))) )) ;) (labeled_statement "gldelf_iamcu_place_orphan::orphan_init_done = 1;" statement_identifier : (ERROR ":" :) (expression_statement "orphan_init_done = 1;" (assignment_expression "orphan_init_done = 1" identifier = number_literal) ;)) })) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar18 = (link_info._0_1_ & 2) == 0;" (assignment_expression "bVar18 = (link_info._0_1_ & 2) == 0" identifier = (binary_expression "(link_info._0_1_ & 2) == 0" (parenthesized_expression "(link_info._0_1_ & 2)" ( (binary_expression "link_info._0_1_ & 2" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) == number_literal)) ;) (if_statement "if (bVar18) {\n    iVar8 = 0xd;\n    pbVar11 = (byte *)s->name;\n    pbVar15 = (byte *)".gnu.warning.";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar15;\n      bVar18 = *pbVar11 == *pbVar15;\n      pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar18);\n    if (((!bVar16 && !bVar18) == bVar16) &&\n       (plVar7 = (lang_statement_union *)gldelf_iamcu_place_orphan::hold[0].os,\n       gldelf_iamcu_place_orphan::hold[0].os != (lang_output_section_statement_type *)0x0)) {\nLAB_00047fcb:\n      lang_add_section(&(plVar7->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar7->output_section_statement);\n      return (lang_output_section_statement_type *)plVar7;\n    }\n  }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n    iVar8 = 0xd;\n    pbVar11 = (byte *)s->name;\n    pbVar15 = (byte *)".gnu.warning.";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar15;\n      bVar18 = *pbVar11 == *pbVar15;\n      pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar18);\n    if (((!bVar16 && !bVar18) == bVar16) &&\n       (plVar7 = (lang_statement_union *)gldelf_iamcu_place_orphan::hold[0].os,\n       gldelf_iamcu_place_orphan::hold[0].os != (lang_output_section_statement_type *)0x0)) {\nLAB_00047fcb:\n      lang_add_section(&(plVar7->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar7->output_section_statement);\n      return (lang_output_section_statement_type *)plVar7;\n    }\n  }" { (expression_statement "iVar8 = 0xd;" (assignment_expression "iVar8 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)s->name;" (assignment_expression "pbVar11 = (byte *)s->name" identifier = (cast_expression "(byte *)s->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "s->name" identifier -> field_identifier))) ;) (expression_statement "pbVar15 = (byte *)".gnu.warning.";" (assignment_expression "pbVar15 = (byte *)".gnu.warning."" identifier = (cast_expression "(byte *)".gnu.warning."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".gnu.warning."" " string_content "))) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar15;\n      bVar18 = *pbVar11 == *pbVar15;\n      pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    } while (bVar18);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar16 = *pbVar11 < *pbVar15;\n      bVar18 = *pbVar11 == *pbVar15;\n      pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n    }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar11 < *pbVar15;" (assignment_expression "bVar16 = *pbVar11 < *pbVar15" identifier = (binary_expression "*pbVar11 < *pbVar15" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar18 = *pbVar11 == *pbVar15;" (assignment_expression "bVar18 = *pbVar11 == *pbVar15" identifier = (binary_expression "*pbVar11 == *pbVar15" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (if_statement "if (((!bVar16 && !bVar18) == bVar16) &&\n       (plVar7 = (lang_statement_union *)gldelf_iamcu_place_orphan::hold[0].os,\n       gldelf_iamcu_place_orphan::hold[0].os != (lang_output_section_statement_type *)0x0)) {\nLAB_00047fcb:\n      lang_add_section(&(plVar7->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar7->output_section_statement);\n      return (lang_output_section_statement_type *)plVar7;\n    }" if (parenthesized_expression "(((!bVar16 && !bVar18) == bVar16) &&\n       (plVar7 = (lang_statement_union *)gldelf_iamcu_place_orphan::hold[0].os,\n       gldelf_iamcu_place_orphan::hold[0].os != (lang_output_section_statement_type *)0x0))" ( (binary_expression "((!bVar16 && !bVar18) == bVar16) &&\n       (plVar7 = (lang_statement_union *)gldelf_iamcu_place_orphan::hold[0].os,\n       gldelf_iamcu_place_orphan::hold[0].os != (lang_output_section_statement_type *)0x0)" (parenthesized_expression "((!bVar16 && !bVar18) == bVar16)" ( (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" ( (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier) )) && (parenthesized_expression "(plVar7 = (lang_statement_union *)gldelf_iamcu_place_orphan::hold[0].os,\n       gldelf_iamcu_place_orphan::hold[0].os != (lang_output_section_statement_type *)0x0)" ( (ERROR "plVar7 = (lang_statement_union *)gldelf_iamcu_place_orphan::hold[0].os,\n       gldelf_iamcu_place_orphan::" (comma_expression "plVar7 = (lang_statement_union *)gldelf_iamcu_place_orphan::hold[0].os,\n       gldelf_iamcu_place_orphan" (field_expression "plVar7 = (lang_statement_union *)gldelf_iamcu_place_orphan::hold[0].os" (subscript_expression "plVar7 = (lang_statement_union *)gldelf_iamcu_place_orphan::hold[0]" (assignment_expression "plVar7 = (lang_statement_union *)gldelf_iamcu_place_orphan" identifier = (cast_expression "(lang_statement_union *)gldelf_iamcu_place_orphan" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) (ERROR "::hold" : : identifier) [ number_literal ]) . field_identifier) , identifier) : :) (binary_expression "hold[0].os != (lang_output_section_statement_type *)0x0" (field_expression "hold[0].os" (subscript_expression "hold[0]" identifier [ number_literal ]) . field_identifier) != (cast_expression "(lang_output_section_statement_type *)0x0" ( (type_descriptor "lang_output_section_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\nLAB_00047fcb:\n      lang_add_section(&(plVar7->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar7->output_section_statement);\n      return (lang_output_section_statement_type *)plVar7;\n    }" { (labeled_statement "LAB_00047fcb:\n      lang_add_section(&(plVar7->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar7->output_section_statement);" statement_identifier : (expression_statement "lang_add_section(&(plVar7->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar7->output_section_statement);" (call_expression "lang_add_section(&(plVar7->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar7->output_section_statement)" identifier (argument_list "(&(plVar7->output_section_statement).children,s,(flag_info *)0x0,\n                       &plVar7->output_section_statement)" ( (pointer_expression "&(plVar7->output_section_statement).children" & (field_expression "(plVar7->output_section_statement).children" (parenthesized_expression "(plVar7->output_section_statement)" ( (field_expression "plVar7->output_section_statement" identifier -> field_identifier) )) . field_identifier)) , identifier , (cast_expression "(flag_info *)0x0" ( (type_descriptor "flag_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&plVar7->output_section_statement" & (field_expression "plVar7->output_section_statement" identifier -> field_identifier)) ))) ;)) (return_statement "return (lang_output_section_statement_type *)plVar7;" return (cast_expression "(lang_output_section_statement_type *)plVar7" ( (type_descriptor "lang_output_section_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ;) })) })) (expression_statement "local_48 = s->flags;" (assignment_expression "local_48 = s->flags" identifier = (field_expression "s->flags" identifier -> field_identifier)) ;) (if_statement "if ((link_info._0_1_ & 3) != 2) {\n    pbVar5 = s->owner;\n    paVar6 = s;\n    while (paVar6 = (asection *)bfd_get_next_section_by_name(pbVar5,paVar6),\n          paVar6 != (asection *)0x0) {\n      pbVar5 = paVar6->owner;\n      if ((((paVar6->output_section == (bfd_section *)0x0) &&\n           (((local_48 ^ paVar6->flags) & 3) == 0 && (paVar6->flags & 0x8000) == 0)) &&\n          ((pbVar5->field_0x29 & 8) == 0)) &&\n         ((pbVar5->usrdata != (void *)0x0 && ((*(byte *)((int)pbVar5->usrdata + 0x24) & 0x10) == 0))\n         )) {\n        iVar8 = _bfd_elf_match_sections_by_type(pbVar5,paVar6,s->owner,s);\n        if (iVar8 != 0) {\n          local_48 = (paVar6->flags ^ 8 | local_48 ^ 8) ^ 8;\n        }\n        pbVar5 = paVar6->owner;\n      }\n    }\n  }" if (parenthesized_expression "((link_info._0_1_ & 3) != 2)" ( (binary_expression "(link_info._0_1_ & 3) != 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    pbVar5 = s->owner;\n    paVar6 = s;\n    while (paVar6 = (asection *)bfd_get_next_section_by_name(pbVar5,paVar6),\n          paVar6 != (asection *)0x0) {\n      pbVar5 = paVar6->owner;\n      if ((((paVar6->output_section == (bfd_section *)0x0) &&\n           (((local_48 ^ paVar6->flags) & 3) == 0 && (paVar6->flags & 0x8000) == 0)) &&\n          ((pbVar5->field_0x29 & 8) == 0)) &&\n         ((pbVar5->usrdata != (void *)0x0 && ((*(byte *)((int)pbVar5->usrdata + 0x24) & 0x10) == 0))\n         )) {\n        iVar8 = _bfd_elf_match_sections_by_type(pbVar5,paVar6,s->owner,s);\n        if (iVar8 != 0) {\n          local_48 = (paVar6->flags ^ 8 | local_48 ^ 8) ^ 8;\n        }\n        pbVar5 = paVar6->owner;\n      }\n    }\n  }" { (expression_statement "pbVar5 = s->owner;" (assignment_expression "pbVar5 = s->owner" identifier = (field_expression "s->owner" identifier -> field_identifier)) ;) (expression_statement "paVar6 = s;" (assignment_expression "paVar6 = s" identifier = identifier) ;) (while_statement "while (paVar6 = (asection *)bfd_get_next_section_by_name(pbVar5,paVar6),\n          paVar6 != (asection *)0x0) {\n      pbVar5 = paVar6->owner;\n      if ((((paVar6->output_section == (bfd_section *)0x0) &&\n           (((local_48 ^ paVar6->flags) & 3) == 0 && (paVar6->flags & 0x8000) == 0)) &&\n          ((pbVar5->field_0x29 & 8) == 0)) &&\n         ((pbVar5->usrdata != (void *)0x0 && ((*(byte *)((int)pbVar5->usrdata + 0x24) & 0x10) == 0))\n         )) {\n        iVar8 = _bfd_elf_match_sections_by_type(pbVar5,paVar6,s->owner,s);\n        if (iVar8 != 0) {\n          local_48 = (paVar6->flags ^ 8 | local_48 ^ 8) ^ 8;\n        }\n        pbVar5 = paVar6->owner;\n      }\n    }" while (parenthesized_expression "(paVar6 = (asection *)bfd_get_next_section_by_name(pbVar5,paVar6),\n          paVar6 != (asection *)0x0)" ( (comma_expression "paVar6 = (asection *)bfd_get_next_section_by_name(pbVar5,paVar6),\n          paVar6 != (asection *)0x0" (assignment_expression "paVar6 = (asection *)bfd_get_next_section_by_name(pbVar5,paVar6)" identifier = (cast_expression "(asection *)bfd_get_next_section_by_name(pbVar5,paVar6)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_get_next_section_by_name(pbVar5,paVar6)" identifier (argument_list "(pbVar5,paVar6)" ( identifier , identifier ))))) , (binary_expression "paVar6 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      pbVar5 = paVar6->owner;\n      if ((((paVar6->output_section == (bfd_section *)0x0) &&\n           (((local_48 ^ paVar6->flags) & 3) == 0 && (paVar6->flags & 0x8000) == 0)) &&\n          ((pbVar5->field_0x29 & 8) == 0)) &&\n         ((pbVar5->usrdata != (void *)0x0 && ((*(byte *)((int)pbVar5->usrdata + 0x24) & 0x10) == 0))\n         )) {\n        iVar8 = _bfd_elf_match_sections_by_type(pbVar5,paVar6,s->owner,s);\n        if (iVar8 != 0) {\n          local_48 = (paVar6->flags ^ 8 | local_48 ^ 8) ^ 8;\n        }\n        pbVar5 = paVar6->owner;\n      }\n    }" { (expression_statement "pbVar5 = paVar6->owner;" (assignment_expression "pbVar5 = paVar6->owner" identifier = (field_expression "paVar6->owner" identifier -> field_identifier)) ;) (if_statement "if ((((paVar6->output_section == (bfd_section *)0x0) &&\n           (((local_48 ^ paVar6->flags) & 3) == 0 && (paVar6->flags & 0x8000) == 0)) &&\n          ((pbVar5->field_0x29 & 8) == 0)) &&\n         ((pbVar5->usrdata != (void *)0x0 && ((*(byte *)((int)pbVar5->usrdata + 0x24) & 0x10) == 0))\n         )) {\n        iVar8 = _bfd_elf_match_sections_by_type(pbVar5,paVar6,s->owner,s);\n        if (iVar8 != 0) {\n          local_48 = (paVar6->flags ^ 8 | local_48 ^ 8) ^ 8;\n        }\n        pbVar5 = paVar6->owner;\n      }" if (parenthesized_expression "((((paVar6->output_section == (bfd_section *)0x0) &&\n           (((local_48 ^ paVar6->flags) & 3) == 0 && (paVar6->flags & 0x8000) == 0)) &&\n          ((pbVar5->field_0x29 & 8) == 0)) &&\n         ((pbVar5->usrdata != (void *)0x0 && ((*(byte *)((int)pbVar5->usrdata + 0x24) & 0x10) == 0))\n         ))" ( (binary_expression "(((paVar6->output_section == (bfd_section *)0x0) &&\n           (((local_48 ^ paVar6->flags) & 3) == 0 && (paVar6->flags & 0x8000) == 0)) &&\n          ((pbVar5->field_0x29 & 8) == 0)) &&\n         ((pbVar5->usrdata != (void *)0x0 && ((*(byte *)((int)pbVar5->usrdata + 0x24) & 0x10) == 0))\n         )" (parenthesized_expression "(((paVar6->output_section == (bfd_section *)0x0) &&\n           (((local_48 ^ paVar6->flags) & 3) == 0 && (paVar6->flags & 0x8000) == 0)) &&\n          ((pbVar5->field_0x29 & 8) == 0))" ( (binary_expression "((paVar6->output_section == (bfd_section *)0x0) &&\n           (((local_48 ^ paVar6->flags) & 3) == 0 && (paVar6->flags & 0x8000) == 0)) &&\n          ((pbVar5->field_0x29 & 8) == 0)" (parenthesized_expression "((paVar6->output_section == (bfd_section *)0x0) &&\n           (((local_48 ^ paVar6->flags) & 3) == 0 && (paVar6->flags & 0x8000) == 0))" ( (binary_expression "(paVar6->output_section == (bfd_section *)0x0) &&\n           (((local_48 ^ paVar6->flags) & 3) == 0 && (paVar6->flags & 0x8000) == 0)" (parenthesized_expression "(paVar6->output_section == (bfd_section *)0x0)" ( (binary_expression "paVar6->output_section == (bfd_section *)0x0" (field_expression "paVar6->output_section" identifier -> field_identifier) == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((local_48 ^ paVar6->flags) & 3) == 0 && (paVar6->flags & 0x8000) == 0)" ( (binary_expression "((local_48 ^ paVar6->flags) & 3) == 0 && (paVar6->flags & 0x8000) == 0" (binary_expression "((local_48 ^ paVar6->flags) & 3) == 0" (parenthesized_expression "((local_48 ^ paVar6->flags) & 3)" ( (binary_expression "(local_48 ^ paVar6->flags) & 3" (parenthesized_expression "(local_48 ^ paVar6->flags)" ( (binary_expression "local_48 ^ paVar6->flags" identifier ^ (field_expression "paVar6->flags" identifier -> field_identifier)) )) & number_literal) )) == number_literal) && (binary_expression "(paVar6->flags & 0x8000) == 0" (parenthesized_expression "(paVar6->flags & 0x8000)" ( (binary_expression "paVar6->flags & 0x8000" (field_expression "paVar6->flags" identifier -> field_identifier) & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "((pbVar5->field_0x29 & 8) == 0)" ( (binary_expression "(pbVar5->field_0x29 & 8) == 0" (parenthesized_expression "(pbVar5->field_0x29 & 8)" ( (binary_expression "pbVar5->field_0x29 & 8" (field_expression "pbVar5->field_0x29" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((pbVar5->usrdata != (void *)0x0 && ((*(byte *)((int)pbVar5->usrdata + 0x24) & 0x10) == 0))\n         )" ( (parenthesized_expression "(pbVar5->usrdata != (void *)0x0 && ((*(byte *)((int)pbVar5->usrdata + 0x24) & 0x10) == 0))" ( (binary_expression "pbVar5->usrdata != (void *)0x0 && ((*(byte *)((int)pbVar5->usrdata + 0x24) & 0x10) == 0)" (binary_expression "pbVar5->usrdata != (void *)0x0" (field_expression "pbVar5->usrdata" identifier -> field_identifier) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "((*(byte *)((int)pbVar5->usrdata + 0x24) & 0x10) == 0)" ( (binary_expression "(*(byte *)((int)pbVar5->usrdata + 0x24) & 0x10) == 0" (parenthesized_expression "(*(byte *)((int)pbVar5->usrdata + 0x24) & 0x10)" ( (binary_expression "*(byte *)((int)pbVar5->usrdata + 0x24) & 0x10" (pointer_expression "*(byte *)((int)pbVar5->usrdata + 0x24)" * (cast_expression "(byte *)((int)pbVar5->usrdata + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pbVar5->usrdata + 0x24)" ( (binary_expression "(int)pbVar5->usrdata + 0x24" (cast_expression "(int)pbVar5->usrdata" ( (type_descriptor "int" primitive_type) ) (field_expression "pbVar5->usrdata" identifier -> field_identifier)) + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n        iVar8 = _bfd_elf_match_sections_by_type(pbVar5,paVar6,s->owner,s);\n        if (iVar8 != 0) {\n          local_48 = (paVar6->flags ^ 8 | local_48 ^ 8) ^ 8;\n        }\n        pbVar5 = paVar6->owner;\n      }" { (expression_statement "iVar8 = _bfd_elf_match_sections_by_type(pbVar5,paVar6,s->owner,s);" (assignment_expression "iVar8 = _bfd_elf_match_sections_by_type(pbVar5,paVar6,s->owner,s)" identifier = (call_expression "_bfd_elf_match_sections_by_type(pbVar5,paVar6,s->owner,s)" identifier (argument_list "(pbVar5,paVar6,s->owner,s)" ( identifier , identifier , (field_expression "s->owner" identifier -> field_identifier) , identifier )))) ;) (if_statement "if (iVar8 != 0) {\n          local_48 = (paVar6->flags ^ 8 | local_48 ^ 8) ^ 8;\n        }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n          local_48 = (paVar6->flags ^ 8 | local_48 ^ 8) ^ 8;\n        }" { (expression_statement "local_48 = (paVar6->flags ^ 8 | local_48 ^ 8) ^ 8;" (assignment_expression "local_48 = (paVar6->flags ^ 8 | local_48 ^ 8) ^ 8" identifier = (binary_expression "(paVar6->flags ^ 8 | local_48 ^ 8) ^ 8" (parenthesized_expression "(paVar6->flags ^ 8 | local_48 ^ 8)" ( (binary_expression "paVar6->flags ^ 8 | local_48 ^ 8" (binary_expression "paVar6->flags ^ 8" (field_expression "paVar6->flags" identifier -> field_identifier) ^ number_literal) | (binary_expression "local_48 ^ 8" identifier ^ number_literal)) )) ^ number_literal)) ;) })) (expression_statement "pbVar5 = paVar6->owner;" (assignment_expression "pbVar5 = paVar6->owner" identifier = (field_expression "paVar6->owner" identifier -> field_identifier)) ;) })) })) })) (if_statement "if ((local_48 & 0x2001) == 0) {\n    local_44 = gldelf_iamcu_place_orphan::hold + 8;\n    goto LAB_00047da5;\n  }" if (parenthesized_expression "((local_48 & 0x2001) == 0)" ( (binary_expression "(local_48 & 0x2001) == 0" (parenthesized_expression "(local_48 & 0x2001)" ( (binary_expression "local_48 & 0x2001" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    local_44 = gldelf_iamcu_place_orphan::hold + 8;\n    goto LAB_00047da5;\n  }" { (expression_statement "local_44 = gldelf_iamcu_place_orphan::hold + 8;" (binary_expression "local_44 = gldelf_iamcu_place_orphan::hold + 8" (assignment_expression "local_44 = gldelf_iamcu_place_orphan" identifier = identifier) (ERROR "::hold" : : identifier) + number_literal) ;) (goto_statement "goto LAB_00047da5;" goto statement_identifier ;) })) (if_statement "if ((local_48 & 1) == 0) {\n    local_44 = (orphan_save *)0x0;\n    local_40 = (lang_statement_union *)0x0;\n    goto LAB_00047db8;\n  }" if (parenthesized_expression "((local_48 & 1) == 0)" ( (binary_expression "(local_48 & 1) == 0" (parenthesized_expression "(local_48 & 1)" ( (binary_expression "local_48 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    local_44 = (orphan_save *)0x0;\n    local_40 = (lang_statement_union *)0x0;\n    goto LAB_00047db8;\n  }" { (expression_statement "local_44 = (orphan_save *)0x0;" (assignment_expression "local_44 = (orphan_save *)0x0" identifier = (cast_expression "(orphan_save *)0x0" ( (type_descriptor "orphan_save *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_40 = (lang_statement_union *)0x0;" (assignment_expression "local_40 = (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 LAB_00047db8;" goto statement_identifier ;) })) (if_statement "if ((local_48 & 2) == 0) {\nLAB_00047e40:\n    local_44 = gldelf_iamcu_place_orphan::hold + 4;\n    if (((((local_48 & 0x502) != 0) &&\n         (local_44 = gldelf_iamcu_place_orphan::hold + 7, (local_48 & 0x400000) == 0)) &&\n        (local_44 = gldelf_iamcu_place_orphan::hold + 2, (local_48 & 0x400) == 0)) &&\n       (local_44 = gldelf_iamcu_place_orphan::hold + 3, (local_48 & 8) != 0)) {\n      bVar17 = bVar1 < bfd_target_elf_flavour;\n      bVar16 = bVar1 == bfd_target_elf_flavour;\n      if (bVar16) {\n        if ((local_34 == (lang_statement_union *)0x4) || (local_34 == (lang_statement_union *)0x9))\n        goto LAB_00047ebf;\n      }\n      else {\n        iVar8 = 4;\n        pbVar11 = (byte *)secname;\n        pbVar15 = &DAT_000ae302;\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          bVar17 = *pbVar11 < *pbVar15;\n          bVar16 = *pbVar11 == *pbVar15;\n          pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) == bVar17) {\nLAB_00047ebf:\n          local_44 = gldelf_iamcu_place_orphan::hold + 5;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = gldelf_iamcu_place_orphan::hold;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = gldelf_iamcu_place_orphan::hold + 1;\n      }\n    }\n  }\n  else if ((local_34 != (lang_statement_union *)0x7) ||\n          (local_44 = gldelf_iamcu_place_orphan::hold + 6, !bVar17)) {\n    bVar17 = bVar1 < bfd_target_elf_flavour;\n    bVar16 = bVar1 == bfd_target_elf_flavour;\n    if (!bVar16) {\n      iVar8 = 5;\n      pbVar11 = (byte *)secname;\n      pbVar15 = (byte *)".note";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar17 = *pbVar11 < *pbVar15;\n        bVar16 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      } while (bVar16);\n      local_44 = gldelf_iamcu_place_orphan::hold + 6;\n      if ((!bVar17 && !bVar16) == bVar17) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }" if (parenthesized_expression "((local_48 & 2) == 0)" ( (binary_expression "(local_48 & 2) == 0" (parenthesized_expression "(local_48 & 2)" ( (binary_expression "local_48 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00047e40:\n    local_44 = gldelf_iamcu_place_orphan::hold + 4;\n    if (((((local_48 & 0x502) != 0) &&\n         (local_44 = gldelf_iamcu_place_orphan::hold + 7, (local_48 & 0x400000) == 0)) &&\n        (local_44 = gldelf_iamcu_place_orphan::hold + 2, (local_48 & 0x400) == 0)) &&\n       (local_44 = gldelf_iamcu_place_orphan::hold + 3, (local_48 & 8) != 0)) {\n      bVar17 = bVar1 < bfd_target_elf_flavour;\n      bVar16 = bVar1 == bfd_target_elf_flavour;\n      if (bVar16) {\n        if ((local_34 == (lang_statement_union *)0x4) || (local_34 == (lang_statement_union *)0x9))\n        goto LAB_00047ebf;\n      }\n      else {\n        iVar8 = 4;\n        pbVar11 = (byte *)secname;\n        pbVar15 = &DAT_000ae302;\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          bVar17 = *pbVar11 < *pbVar15;\n          bVar16 = *pbVar11 == *pbVar15;\n          pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) == bVar17) {\nLAB_00047ebf:\n          local_44 = gldelf_iamcu_place_orphan::hold + 5;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = gldelf_iamcu_place_orphan::hold;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = gldelf_iamcu_place_orphan::hold + 1;\n      }\n    }\n  }" { (labeled_statement "LAB_00047e40:\n    local_44 = gldelf_iamcu_place_orphan::hold + 4;" statement_identifier : (expression_statement "local_44 = gldelf_iamcu_place_orphan::hold + 4;" (binary_expression "local_44 = gldelf_iamcu_place_orphan::hold + 4" (assignment_expression "local_44 = gldelf_iamcu_place_orphan" identifier = identifier) (ERROR "::hold" : : identifier) + number_literal) ;)) (if_statement "if (((((local_48 & 0x502) != 0) &&\n         (local_44 = gldelf_iamcu_place_orphan::hold + 7, (local_48 & 0x400000) == 0)) &&\n        (local_44 = gldelf_iamcu_place_orphan::hold + 2, (local_48 & 0x400) == 0)) &&\n       (local_44 = gldelf_iamcu_place_orphan::hold + 3, (local_48 & 8) != 0)) {\n      bVar17 = bVar1 < bfd_target_elf_flavour;\n      bVar16 = bVar1 == bfd_target_elf_flavour;\n      if (bVar16) {\n        if ((local_34 == (lang_statement_union *)0x4) || (local_34 == (lang_statement_union *)0x9))\n        goto LAB_00047ebf;\n      }\n      else {\n        iVar8 = 4;\n        pbVar11 = (byte *)secname;\n        pbVar15 = &DAT_000ae302;\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          bVar17 = *pbVar11 < *pbVar15;\n          bVar16 = *pbVar11 == *pbVar15;\n          pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) == bVar17) {\nLAB_00047ebf:\n          local_44 = gldelf_iamcu_place_orphan::hold + 5;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = gldelf_iamcu_place_orphan::hold;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = gldelf_iamcu_place_orphan::hold + 1;\n      }\n    }" if (parenthesized_expression "(((((local_48 & 0x502) != 0) &&\n         (local_44 = gldelf_iamcu_place_orphan::hold + 7, (local_48 & 0x400000) == 0)) &&\n        (local_44 = gldelf_iamcu_place_orphan::hold + 2, (local_48 & 0x400) == 0)) &&\n       (local_44 = gldelf_iamcu_place_orphan::hold + 3, (local_48 & 8) != 0))" ( (binary_expression "((((local_48 & 0x502) != 0) &&\n         (local_44 = gldelf_iamcu_place_orphan::hold + 7, (local_48 & 0x400000) == 0)) &&\n        (local_44 = gldelf_iamcu_place_orphan::hold + 2, (local_48 & 0x400) == 0)) &&\n       (local_44 = gldelf_iamcu_place_orphan::hold + 3, (local_48 & 8) != 0)" (parenthesized_expression "((((local_48 & 0x502) != 0) &&\n         (local_44 = gldelf_iamcu_place_orphan::hold + 7, (local_48 & 0x400000) == 0)) &&\n        (local_44 = gldelf_iamcu_place_orphan::hold + 2, (local_48 & 0x400) == 0))" ( (binary_expression "(((local_48 & 0x502) != 0) &&\n         (local_44 = gldelf_iamcu_place_orphan::hold + 7, (local_48 & 0x400000) == 0)) &&\n        (local_44 = gldelf_iamcu_place_orphan::hold + 2, (local_48 & 0x400) == 0)" (parenthesized_expression "(((local_48 & 0x502) != 0) &&\n         (local_44 = gldelf_iamcu_place_orphan::hold + 7, (local_48 & 0x400000) == 0))" ( (binary_expression "((local_48 & 0x502) != 0) &&\n         (local_44 = gldelf_iamcu_place_orphan::hold + 7, (local_48 & 0x400000) == 0)" (parenthesized_expression "((local_48 & 0x502) != 0)" ( (binary_expression "(local_48 & 0x502) != 0" (parenthesized_expression "(local_48 & 0x502)" ( (binary_expression "local_48 & 0x502" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(local_44 = gldelf_iamcu_place_orphan::hold + 7, (local_48 & 0x400000) == 0)" ( (comma_expression "local_44 = gldelf_iamcu_place_orphan::hold + 7, (local_48 & 0x400000) == 0" (binary_expression "local_44 = gldelf_iamcu_place_orphan::hold + 7" (assignment_expression "local_44 = gldelf_iamcu_place_orphan" identifier = identifier) (ERROR "::hold" : : identifier) + number_literal) , (binary_expression "(local_48 & 0x400000) == 0" (parenthesized_expression "(local_48 & 0x400000)" ( (binary_expression "local_48 & 0x400000" identifier & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "(local_44 = gldelf_iamcu_place_orphan::hold + 2, (local_48 & 0x400) == 0)" ( (comma_expression "local_44 = gldelf_iamcu_place_orphan::hold + 2, (local_48 & 0x400) == 0" (binary_expression "local_44 = gldelf_iamcu_place_orphan::hold + 2" (assignment_expression "local_44 = gldelf_iamcu_place_orphan" identifier = identifier) (ERROR "::hold" : : identifier) + number_literal) , (binary_expression "(local_48 & 0x400) == 0" (parenthesized_expression "(local_48 & 0x400)" ( (binary_expression "local_48 & 0x400" identifier & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "(local_44 = gldelf_iamcu_place_orphan::hold + 3, (local_48 & 8) != 0)" ( (comma_expression "local_44 = gldelf_iamcu_place_orphan::hold + 3, (local_48 & 8) != 0" (binary_expression "local_44 = gldelf_iamcu_place_orphan::hold + 3" (assignment_expression "local_44 = gldelf_iamcu_place_orphan" identifier = identifier) (ERROR "::hold" : : identifier) + number_literal) , (binary_expression "(local_48 & 8) != 0" (parenthesized_expression "(local_48 & 8)" ( (binary_expression "local_48 & 8" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n      bVar17 = bVar1 < bfd_target_elf_flavour;\n      bVar16 = bVar1 == bfd_target_elf_flavour;\n      if (bVar16) {\n        if ((local_34 == (lang_statement_union *)0x4) || (local_34 == (lang_statement_union *)0x9))\n        goto LAB_00047ebf;\n      }\n      else {\n        iVar8 = 4;\n        pbVar11 = (byte *)secname;\n        pbVar15 = &DAT_000ae302;\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          bVar17 = *pbVar11 < *pbVar15;\n          bVar16 = *pbVar11 == *pbVar15;\n          pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) == bVar17) {\nLAB_00047ebf:\n          local_44 = gldelf_iamcu_place_orphan::hold + 5;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = gldelf_iamcu_place_orphan::hold;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = gldelf_iamcu_place_orphan::hold + 1;\n      }\n    }" { (expression_statement "bVar17 = bVar1 < bfd_target_elf_flavour;" (assignment_expression "bVar17 = bVar1 < bfd_target_elf_flavour" identifier = (binary_expression "bVar1 < bfd_target_elf_flavour" identifier < identifier)) ;) (expression_statement "bVar16 = bVar1 == bfd_target_elf_flavour;" (assignment_expression "bVar16 = bVar1 == bfd_target_elf_flavour" identifier = (binary_expression "bVar1 == bfd_target_elf_flavour" identifier == identifier)) ;) (if_statement "if (bVar16) {\n        if ((local_34 == (lang_statement_union *)0x4) || (local_34 == (lang_statement_union *)0x9))\n        goto LAB_00047ebf;\n      }\n      else {\n        iVar8 = 4;\n        pbVar11 = (byte *)secname;\n        pbVar15 = &DAT_000ae302;\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          bVar17 = *pbVar11 < *pbVar15;\n          bVar16 = *pbVar11 == *pbVar15;\n          pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) == bVar17) {\nLAB_00047ebf:\n          local_44 = gldelf_iamcu_place_orphan::hold + 5;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\n        if ((local_34 == (lang_statement_union *)0x4) || (local_34 == (lang_statement_union *)0x9))\n        goto LAB_00047ebf;\n      }" { (if_statement "if ((local_34 == (lang_statement_union *)0x4) || (local_34 == (lang_statement_union *)0x9))\n        goto LAB_00047ebf;" if (parenthesized_expression "((local_34 == (lang_statement_union *)0x4) || (local_34 == (lang_statement_union *)0x9))" ( (binary_expression "(local_34 == (lang_statement_union *)0x4) || (local_34 == (lang_statement_union *)0x9)" (parenthesized_expression "(local_34 == (lang_statement_union *)0x4)" ( (binary_expression "local_34 == (lang_statement_union *)0x4" identifier == (cast_expression "(lang_statement_union *)0x4" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_34 == (lang_statement_union *)0x9)" ( (binary_expression "local_34 == (lang_statement_union *)0x9" identifier == (cast_expression "(lang_statement_union *)0x9" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_00047ebf;" goto statement_identifier ;)) }) (else_clause "else {\n        iVar8 = 4;\n        pbVar11 = (byte *)secname;\n        pbVar15 = &DAT_000ae302;\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          bVar17 = *pbVar11 < *pbVar15;\n          bVar16 = *pbVar11 == *pbVar15;\n          pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) == bVar17) {\nLAB_00047ebf:\n          local_44 = gldelf_iamcu_place_orphan::hold + 5;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }" else (compound_statement "{\n        iVar8 = 4;\n        pbVar11 = (byte *)secname;\n        pbVar15 = &DAT_000ae302;\n        do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          bVar17 = *pbVar11 < *pbVar15;\n          bVar16 = *pbVar11 == *pbVar15;\n          pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar17 && !bVar16) == bVar17) {\nLAB_00047ebf:\n          local_44 = gldelf_iamcu_place_orphan::hold + 5;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }" { (expression_statement "iVar8 = 4;" (assignment_expression "iVar8 = 4" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)secname;" (assignment_expression "pbVar11 = (byte *)secname" identifier = (cast_expression "(byte *)secname" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar15 = &DAT_000ae302;" (assignment_expression "pbVar15 = &DAT_000ae302" identifier = (pointer_expression "&DAT_000ae302" & identifier)) ;) (do_statement "do {\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          bVar17 = *pbVar11 < *pbVar15;\n          bVar16 = *pbVar11 == *pbVar15;\n          pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n        } while (bVar16);" do (compound_statement "{\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          bVar17 = *pbVar11 < *pbVar15;\n          bVar16 = *pbVar11 == *pbVar15;\n          pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n        }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar11 < *pbVar15;" (assignment_expression "bVar17 = *pbVar11 < *pbVar15" identifier = (binary_expression "*pbVar11 < *pbVar15" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar16 = *pbVar11 == *pbVar15;" (assignment_expression "bVar16 = *pbVar11 == *pbVar15" identifier = (binary_expression "*pbVar11 == *pbVar15" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar17 && !bVar16) == bVar17) {\nLAB_00047ebf:\n          local_44 = gldelf_iamcu_place_orphan::hold + 5;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }" if (parenthesized_expression "((!bVar17 && !bVar16) == bVar17)" ( (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_00047ebf:\n          local_44 = gldelf_iamcu_place_orphan::hold + 5;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }" { (labeled_statement "LAB_00047ebf:\n          local_44 = gldelf_iamcu_place_orphan::hold + 5;" statement_identifier : (expression_statement "local_44 = gldelf_iamcu_place_orphan::hold + 5;" (binary_expression "local_44 = gldelf_iamcu_place_orphan::hold + 5" (assignment_expression "local_44 = gldelf_iamcu_place_orphan" identifier = identifier) (ERROR "::hold" : : identifier) + number_literal) ;)) (if_statement "if ((local_48 & 2) != 0) goto LAB_00047da5;" if (parenthesized_expression "((local_48 & 2) != 0)" ( (binary_expression "(local_48 & 2) != 0" (parenthesized_expression "(local_48 & 2)" ( (binary_expression "local_48 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00047da5;" goto statement_identifier ;)) })) }))) (expression_statement "local_44 = gldelf_iamcu_place_orphan::hold;" (assignment_expression "local_44 = gldelf_iamcu_place_orphan" identifier = identifier) (ERROR "::hold" : : identifier) ;) (if_statement "if ((local_48 & 0x10) == 0) {\n        local_44 = gldelf_iamcu_place_orphan::hold + 1;\n      }" if (parenthesized_expression "((local_48 & 0x10) == 0)" ( (binary_expression "(local_48 & 0x10) == 0" (parenthesized_expression "(local_48 & 0x10)" ( (binary_expression "local_48 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        local_44 = gldelf_iamcu_place_orphan::hold + 1;\n      }" { (expression_statement "local_44 = gldelf_iamcu_place_orphan::hold + 1;" (binary_expression "local_44 = gldelf_iamcu_place_orphan::hold + 1" (assignment_expression "local_44 = gldelf_iamcu_place_orphan" identifier = identifier) (ERROR "::hold" : : identifier) + number_literal) ;) })) })) }) (else_clause "else if ((local_34 != (lang_statement_union *)0x7) ||\n          (local_44 = gldelf_iamcu_place_orphan::hold + 6, !bVar17)) {\n    bVar17 = bVar1 < bfd_target_elf_flavour;\n    bVar16 = bVar1 == bfd_target_elf_flavour;\n    if (!bVar16) {\n      iVar8 = 5;\n      pbVar11 = (byte *)secname;\n      pbVar15 = (byte *)".note";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar17 = *pbVar11 < *pbVar15;\n        bVar16 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      } while (bVar16);\n      local_44 = gldelf_iamcu_place_orphan::hold + 6;\n      if ((!bVar17 && !bVar16) == bVar17) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }" else (if_statement "if ((local_34 != (lang_statement_union *)0x7) ||\n          (local_44 = gldelf_iamcu_place_orphan::hold + 6, !bVar17)) {\n    bVar17 = bVar1 < bfd_target_elf_flavour;\n    bVar16 = bVar1 == bfd_target_elf_flavour;\n    if (!bVar16) {\n      iVar8 = 5;\n      pbVar11 = (byte *)secname;\n      pbVar15 = (byte *)".note";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar17 = *pbVar11 < *pbVar15;\n        bVar16 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      } while (bVar16);\n      local_44 = gldelf_iamcu_place_orphan::hold + 6;\n      if ((!bVar17 && !bVar16) == bVar17) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }" if (parenthesized_expression "((local_34 != (lang_statement_union *)0x7) ||\n          (local_44 = gldelf_iamcu_place_orphan::hold + 6, !bVar17))" ( (binary_expression "(local_34 != (lang_statement_union *)0x7) ||\n          (local_44 = gldelf_iamcu_place_orphan::hold + 6, !bVar17)" (parenthesized_expression "(local_34 != (lang_statement_union *)0x7)" ( (binary_expression "local_34 != (lang_statement_union *)0x7" identifier != (cast_expression "(lang_statement_union *)0x7" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_44 = gldelf_iamcu_place_orphan::hold + 6, !bVar17)" ( (comma_expression "local_44 = gldelf_iamcu_place_orphan::hold + 6, !bVar17" (binary_expression "local_44 = gldelf_iamcu_place_orphan::hold + 6" (assignment_expression "local_44 = gldelf_iamcu_place_orphan" identifier = identifier) (ERROR "::hold" : : identifier) + number_literal) , (unary_expression "!bVar17" ! identifier)) ))) )) (compound_statement "{\n    bVar17 = bVar1 < bfd_target_elf_flavour;\n    bVar16 = bVar1 == bfd_target_elf_flavour;\n    if (!bVar16) {\n      iVar8 = 5;\n      pbVar11 = (byte *)secname;\n      pbVar15 = (byte *)".note";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar17 = *pbVar11 < *pbVar15;\n        bVar16 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      } while (bVar16);\n      local_44 = gldelf_iamcu_place_orphan::hold + 6;\n      if ((!bVar17 && !bVar16) == bVar17) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }" { (expression_statement "bVar17 = bVar1 < bfd_target_elf_flavour;" (assignment_expression "bVar17 = bVar1 < bfd_target_elf_flavour" identifier = (binary_expression "bVar1 < bfd_target_elf_flavour" identifier < identifier)) ;) (expression_statement "bVar16 = bVar1 == bfd_target_elf_flavour;" (assignment_expression "bVar16 = bVar1 == bfd_target_elf_flavour" identifier = (binary_expression "bVar1 == bfd_target_elf_flavour" identifier == identifier)) ;) (if_statement "if (!bVar16) {\n      iVar8 = 5;\n      pbVar11 = (byte *)secname;\n      pbVar15 = (byte *)".note";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar17 = *pbVar11 < *pbVar15;\n        bVar16 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      } while (bVar16);\n      local_44 = gldelf_iamcu_place_orphan::hold + 6;\n      if ((!bVar17 && !bVar16) == bVar17) goto LAB_00047da5;\n    }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n      iVar8 = 5;\n      pbVar11 = (byte *)secname;\n      pbVar15 = (byte *)".note";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar17 = *pbVar11 < *pbVar15;\n        bVar16 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      } while (bVar16);\n      local_44 = gldelf_iamcu_place_orphan::hold + 6;\n      if ((!bVar17 && !bVar16) == bVar17) goto LAB_00047da5;\n    }" { (expression_statement "iVar8 = 5;" (assignment_expression "iVar8 = 5" identifier = number_literal) ;) (expression_statement "pbVar11 = (byte *)secname;" (assignment_expression "pbVar11 = (byte *)secname" identifier = (cast_expression "(byte *)secname" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar15 = (byte *)".note";" (assignment_expression "pbVar15 = (byte *)".note"" identifier = (cast_expression "(byte *)".note"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".note"" " string_content "))) ;) (do_statement "do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar17 = *pbVar11 < *pbVar15;\n        bVar16 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      } while (bVar16);" do (compound_statement "{\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar17 = *pbVar11 < *pbVar15;\n        bVar16 = *pbVar11 == *pbVar15;\n        pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n      }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar11 < *pbVar15;" (assignment_expression "bVar17 = *pbVar11 < *pbVar15" identifier = (binary_expression "*pbVar11 < *pbVar15" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar16 = *pbVar11 == *pbVar15;" (assignment_expression "bVar16 = *pbVar11 == *pbVar15" identifier = (binary_expression "*pbVar11 == *pbVar15" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "local_44 = gldelf_iamcu_place_orphan::hold + 6;" (binary_expression "local_44 = gldelf_iamcu_place_orphan::hold + 6" (assignment_expression "local_44 = gldelf_iamcu_place_orphan" identifier = identifier) (ERROR "::hold" : : identifier) + number_literal) ;) (if_statement "if ((!bVar17 && !bVar16) == bVar17) goto LAB_00047da5;" if (parenthesized_expression "((!bVar17 && !bVar16) == bVar17)" ( (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_00047da5;" goto statement_identifier ;)) })) (goto_statement "goto LAB_00047e40;" goto statement_identifier ;) })))) (labeled_statement "LAB_00047da5:\n  local_40 = (lang_statement_union *)local_44->os;" statement_identifier : (expression_statement "local_40 = (lang_statement_union *)local_44->os;" (assignment_expression "local_40 = (lang_statement_union *)local_44->os" identifier = (cast_expression "(lang_statement_union *)local_44->os" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_44->os" identifier -> field_identifier))) ;)) (if_statement "if (local_40 != (lang_statement_union *)0x0) goto LAB_00047db8;" if (parenthesized_expression "(local_40 != (lang_statement_union *)0x0)" ( (binary_expression "local_40 != (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 LAB_00047db8;" goto statement_identifier ;)) (if_statement "if (local_44->name == (char *)0x0) {\n    if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n      local_38 = (lang_statement_union *)0x0;\n      local_28 = (lang_statement_union *)0x0;\n      local_40 = (lang_statement_union *)0x0;\n      local_34 = (lang_statement_union *)0x0;\n      plVar14 = lang_output_section_statement.head;\n      plVar7 = (lang_statement_union *)0x0;\n      do {\n        plVar13 = plVar14;\n        bVar17 = false;\n        bVar16 = (plVar13->output_section_statement).constraint == 0;\n        if ((plVar13->output_section_statement).constraint < 0) {\nLAB_00048272:\n          paVar6 = (plVar13->output_section_statement).bfd_section;\nLAB_00048240:\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = local_40;\njoined_r0x00048289:\n            if (((fVar3 & 1) != 0) && (local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0)) {\n              local_38 = plVar13;\n            }\n          }\n        }\n        else {\n          paVar6 = (plVar13->data_statement).output_section;\n          iVar8 = 4;\n          paVar10 = paVar6;\n          pbVar11 = &DAT_000ae302;\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar17 = *(byte *)&paVar10->name < *pbVar11;\n            bVar16 = *(byte *)&paVar10->name == *pbVar11;\n            paVar10 = (asection *)((int)paVar10 + (uint)bVar20 * -2 + 1);\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar17 && !bVar16) != bVar17) goto LAB_00048272;\n          bVar18 = (char)paVar6->id == 'a';\n          bVar16 = false;\n          bVar17 = !bVar19;\n          if (!bVar17) break;\n          iVar8 = 5;\n          pbVar11 = &DAT_000ae31b;\n          pbVar15 = (byte *)((int)&paVar6->id + (uint)bVar18);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar16 = *pbVar11 < *pbVar15;\n            bVar17 = *pbVar11 == *pbVar15;\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n            pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n          } while (bVar17);\n          if ((!bVar16 && !bVar17) == bVar16) break;\n          bVar17 = (s->name[4] == 'a') == bVar18;\n          if ((local_34 == (lang_statement_union *)0x0) || (bVar17)) {\n            local_34 = plVar13;\n          }\n          paVar6 = (plVar13->output_section_statement).bfd_section;\n          if ((local_40 != (lang_statement_union *)0x0) && (!bVar17)) goto LAB_00048240;\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = plVar13;\n            goto joined_r0x00048289;\n          }\n        }\n        plVar7 = plVar13;\n        plVar14 = (lang_statement_union *)(plVar13->wild_statement).section_list;\n      } while ((lang_statement_union *)(plVar13->wild_statement).section_list !=\n               (lang_statement_union *)0x0);\n      if ((((local_40 == (lang_statement_union *)0x0) &&\n           (local_40 = local_34, local_34 == (lang_statement_union *)0x0)) &&\n          (local_40 = local_38, local_38 == (lang_statement_union *)0x0)) &&\n         (local_40 = plVar7, local_28 != (lang_statement_union *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44->os = (lang_output_section_statement_type *)local_40;\n      goto LAB_00048089;\n    }\n  }\n  else {\n    local_40 = (lang_statement_union *)lang_output_section_statement_lookup(local_44->name,0,0);\n    local_44->os = (lang_output_section_statement_type *)local_40;\nLAB_00048089:\n    if (local_40 != (lang_statement_union *)0x0) goto LAB_00047db8;\n  }" if (parenthesized_expression "(local_44->name == (char *)0x0)" ( (binary_expression "local_44->name == (char *)0x0" (field_expression "local_44->name" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n      local_38 = (lang_statement_union *)0x0;\n      local_28 = (lang_statement_union *)0x0;\n      local_40 = (lang_statement_union *)0x0;\n      local_34 = (lang_statement_union *)0x0;\n      plVar14 = lang_output_section_statement.head;\n      plVar7 = (lang_statement_union *)0x0;\n      do {\n        plVar13 = plVar14;\n        bVar17 = false;\n        bVar16 = (plVar13->output_section_statement).constraint == 0;\n        if ((plVar13->output_section_statement).constraint < 0) {\nLAB_00048272:\n          paVar6 = (plVar13->output_section_statement).bfd_section;\nLAB_00048240:\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = local_40;\njoined_r0x00048289:\n            if (((fVar3 & 1) != 0) && (local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0)) {\n              local_38 = plVar13;\n            }\n          }\n        }\n        else {\n          paVar6 = (plVar13->data_statement).output_section;\n          iVar8 = 4;\n          paVar10 = paVar6;\n          pbVar11 = &DAT_000ae302;\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar17 = *(byte *)&paVar10->name < *pbVar11;\n            bVar16 = *(byte *)&paVar10->name == *pbVar11;\n            paVar10 = (asection *)((int)paVar10 + (uint)bVar20 * -2 + 1);\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar17 && !bVar16) != bVar17) goto LAB_00048272;\n          bVar18 = (char)paVar6->id == 'a';\n          bVar16 = false;\n          bVar17 = !bVar19;\n          if (!bVar17) break;\n          iVar8 = 5;\n          pbVar11 = &DAT_000ae31b;\n          pbVar15 = (byte *)((int)&paVar6->id + (uint)bVar18);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar16 = *pbVar11 < *pbVar15;\n            bVar17 = *pbVar11 == *pbVar15;\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n            pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n          } while (bVar17);\n          if ((!bVar16 && !bVar17) == bVar16) break;\n          bVar17 = (s->name[4] == 'a') == bVar18;\n          if ((local_34 == (lang_statement_union *)0x0) || (bVar17)) {\n            local_34 = plVar13;\n          }\n          paVar6 = (plVar13->output_section_statement).bfd_section;\n          if ((local_40 != (lang_statement_union *)0x0) && (!bVar17)) goto LAB_00048240;\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = plVar13;\n            goto joined_r0x00048289;\n          }\n        }\n        plVar7 = plVar13;\n        plVar14 = (lang_statement_union *)(plVar13->wild_statement).section_list;\n      } while ((lang_statement_union *)(plVar13->wild_statement).section_list !=\n               (lang_statement_union *)0x0);\n      if ((((local_40 == (lang_statement_union *)0x0) &&\n           (local_40 = local_34, local_34 == (lang_statement_union *)0x0)) &&\n          (local_40 = local_38, local_38 == (lang_statement_union *)0x0)) &&\n         (local_40 = plVar7, local_28 != (lang_statement_union *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44->os = (lang_output_section_statement_type *)local_40;\n      goto LAB_00048089;\n    }\n  }" { (if_statement "if (lang_output_section_statement.head != (lang_statement_union *)0x0) {\n      local_38 = (lang_statement_union *)0x0;\n      local_28 = (lang_statement_union *)0x0;\n      local_40 = (lang_statement_union *)0x0;\n      local_34 = (lang_statement_union *)0x0;\n      plVar14 = lang_output_section_statement.head;\n      plVar7 = (lang_statement_union *)0x0;\n      do {\n        plVar13 = plVar14;\n        bVar17 = false;\n        bVar16 = (plVar13->output_section_statement).constraint == 0;\n        if ((plVar13->output_section_statement).constraint < 0) {\nLAB_00048272:\n          paVar6 = (plVar13->output_section_statement).bfd_section;\nLAB_00048240:\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = local_40;\njoined_r0x00048289:\n            if (((fVar3 & 1) != 0) && (local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0)) {\n              local_38 = plVar13;\n            }\n          }\n        }\n        else {\n          paVar6 = (plVar13->data_statement).output_section;\n          iVar8 = 4;\n          paVar10 = paVar6;\n          pbVar11 = &DAT_000ae302;\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar17 = *(byte *)&paVar10->name < *pbVar11;\n            bVar16 = *(byte *)&paVar10->name == *pbVar11;\n            paVar10 = (asection *)((int)paVar10 + (uint)bVar20 * -2 + 1);\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar17 && !bVar16) != bVar17) goto LAB_00048272;\n          bVar18 = (char)paVar6->id == 'a';\n          bVar16 = false;\n          bVar17 = !bVar19;\n          if (!bVar17) break;\n          iVar8 = 5;\n          pbVar11 = &DAT_000ae31b;\n          pbVar15 = (byte *)((int)&paVar6->id + (uint)bVar18);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar16 = *pbVar11 < *pbVar15;\n            bVar17 = *pbVar11 == *pbVar15;\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n            pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n          } while (bVar17);\n          if ((!bVar16 && !bVar17) == bVar16) break;\n          bVar17 = (s->name[4] == 'a') == bVar18;\n          if ((local_34 == (lang_statement_union *)0x0) || (bVar17)) {\n            local_34 = plVar13;\n          }\n          paVar6 = (plVar13->output_section_statement).bfd_section;\n          if ((local_40 != (lang_statement_union *)0x0) && (!bVar17)) goto LAB_00048240;\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = plVar13;\n            goto joined_r0x00048289;\n          }\n        }\n        plVar7 = plVar13;\n        plVar14 = (lang_statement_union *)(plVar13->wild_statement).section_list;\n      } while ((lang_statement_union *)(plVar13->wild_statement).section_list !=\n               (lang_statement_union *)0x0);\n      if ((((local_40 == (lang_statement_union *)0x0) &&\n           (local_40 = local_34, local_34 == (lang_statement_union *)0x0)) &&\n          (local_40 = local_38, local_38 == (lang_statement_union *)0x0)) &&\n         (local_40 = plVar7, local_28 != (lang_statement_union *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44->os = (lang_output_section_statement_type *)local_40;\n      goto LAB_00048089;\n    }" if (parenthesized_expression "(lang_output_section_statement.head != (lang_statement_union *)0x0)" ( (binary_expression "lang_output_section_statement.head != (lang_statement_union *)0x0" (field_expression "lang_output_section_statement.head" identifier . field_identifier) != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_38 = (lang_statement_union *)0x0;\n      local_28 = (lang_statement_union *)0x0;\n      local_40 = (lang_statement_union *)0x0;\n      local_34 = (lang_statement_union *)0x0;\n      plVar14 = lang_output_section_statement.head;\n      plVar7 = (lang_statement_union *)0x0;\n      do {\n        plVar13 = plVar14;\n        bVar17 = false;\n        bVar16 = (plVar13->output_section_statement).constraint == 0;\n        if ((plVar13->output_section_statement).constraint < 0) {\nLAB_00048272:\n          paVar6 = (plVar13->output_section_statement).bfd_section;\nLAB_00048240:\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = local_40;\njoined_r0x00048289:\n            if (((fVar3 & 1) != 0) && (local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0)) {\n              local_38 = plVar13;\n            }\n          }\n        }\n        else {\n          paVar6 = (plVar13->data_statement).output_section;\n          iVar8 = 4;\n          paVar10 = paVar6;\n          pbVar11 = &DAT_000ae302;\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar17 = *(byte *)&paVar10->name < *pbVar11;\n            bVar16 = *(byte *)&paVar10->name == *pbVar11;\n            paVar10 = (asection *)((int)paVar10 + (uint)bVar20 * -2 + 1);\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar17 && !bVar16) != bVar17) goto LAB_00048272;\n          bVar18 = (char)paVar6->id == 'a';\n          bVar16 = false;\n          bVar17 = !bVar19;\n          if (!bVar17) break;\n          iVar8 = 5;\n          pbVar11 = &DAT_000ae31b;\n          pbVar15 = (byte *)((int)&paVar6->id + (uint)bVar18);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar16 = *pbVar11 < *pbVar15;\n            bVar17 = *pbVar11 == *pbVar15;\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n            pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n          } while (bVar17);\n          if ((!bVar16 && !bVar17) == bVar16) break;\n          bVar17 = (s->name[4] == 'a') == bVar18;\n          if ((local_34 == (lang_statement_union *)0x0) || (bVar17)) {\n            local_34 = plVar13;\n          }\n          paVar6 = (plVar13->output_section_statement).bfd_section;\n          if ((local_40 != (lang_statement_union *)0x0) && (!bVar17)) goto LAB_00048240;\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = plVar13;\n            goto joined_r0x00048289;\n          }\n        }\n        plVar7 = plVar13;\n        plVar14 = (lang_statement_union *)(plVar13->wild_statement).section_list;\n      } while ((lang_statement_union *)(plVar13->wild_statement).section_list !=\n               (lang_statement_union *)0x0);\n      if ((((local_40 == (lang_statement_union *)0x0) &&\n           (local_40 = local_34, local_34 == (lang_statement_union *)0x0)) &&\n          (local_40 = local_38, local_38 == (lang_statement_union *)0x0)) &&\n         (local_40 = plVar7, local_28 != (lang_statement_union *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44->os = (lang_output_section_statement_type *)local_40;\n      goto LAB_00048089;\n    }" { (expression_statement "local_38 = (lang_statement_union *)0x0;" (assignment_expression "local_38 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_28 = (lang_statement_union *)0x0;" (assignment_expression "local_28 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_40 = (lang_statement_union *)0x0;" (assignment_expression "local_40 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = (lang_statement_union *)0x0;" (assignment_expression "local_34 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar14 = lang_output_section_statement.head;" (assignment_expression "plVar14 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ;) (expression_statement "plVar7 = (lang_statement_union *)0x0;" (assignment_expression "plVar7 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        plVar13 = plVar14;\n        bVar17 = false;\n        bVar16 = (plVar13->output_section_statement).constraint == 0;\n        if ((plVar13->output_section_statement).constraint < 0) {\nLAB_00048272:\n          paVar6 = (plVar13->output_section_statement).bfd_section;\nLAB_00048240:\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = local_40;\njoined_r0x00048289:\n            if (((fVar3 & 1) != 0) && (local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0)) {\n              local_38 = plVar13;\n            }\n          }\n        }\n        else {\n          paVar6 = (plVar13->data_statement).output_section;\n          iVar8 = 4;\n          paVar10 = paVar6;\n          pbVar11 = &DAT_000ae302;\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar17 = *(byte *)&paVar10->name < *pbVar11;\n            bVar16 = *(byte *)&paVar10->name == *pbVar11;\n            paVar10 = (asection *)((int)paVar10 + (uint)bVar20 * -2 + 1);\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar17 && !bVar16) != bVar17) goto LAB_00048272;\n          bVar18 = (char)paVar6->id == 'a';\n          bVar16 = false;\n          bVar17 = !bVar19;\n          if (!bVar17) break;\n          iVar8 = 5;\n          pbVar11 = &DAT_000ae31b;\n          pbVar15 = (byte *)((int)&paVar6->id + (uint)bVar18);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar16 = *pbVar11 < *pbVar15;\n            bVar17 = *pbVar11 == *pbVar15;\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n            pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n          } while (bVar17);\n          if ((!bVar16 && !bVar17) == bVar16) break;\n          bVar17 = (s->name[4] == 'a') == bVar18;\n          if ((local_34 == (lang_statement_union *)0x0) || (bVar17)) {\n            local_34 = plVar13;\n          }\n          paVar6 = (plVar13->output_section_statement).bfd_section;\n          if ((local_40 != (lang_statement_union *)0x0) && (!bVar17)) goto LAB_00048240;\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = plVar13;\n            goto joined_r0x00048289;\n          }\n        }\n        plVar7 = plVar13;\n        plVar14 = (lang_statement_union *)(plVar13->wild_statement).section_list;\n      } while ((lang_statement_union *)(plVar13->wild_statement).section_list !=\n               (lang_statement_union *)0x0);" do (compound_statement "{\n        plVar13 = plVar14;\n        bVar17 = false;\n        bVar16 = (plVar13->output_section_statement).constraint == 0;\n        if ((plVar13->output_section_statement).constraint < 0) {\nLAB_00048272:\n          paVar6 = (plVar13->output_section_statement).bfd_section;\nLAB_00048240:\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = local_40;\njoined_r0x00048289:\n            if (((fVar3 & 1) != 0) && (local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0)) {\n              local_38 = plVar13;\n            }\n          }\n        }\n        else {\n          paVar6 = (plVar13->data_statement).output_section;\n          iVar8 = 4;\n          paVar10 = paVar6;\n          pbVar11 = &DAT_000ae302;\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar17 = *(byte *)&paVar10->name < *pbVar11;\n            bVar16 = *(byte *)&paVar10->name == *pbVar11;\n            paVar10 = (asection *)((int)paVar10 + (uint)bVar20 * -2 + 1);\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar17 && !bVar16) != bVar17) goto LAB_00048272;\n          bVar18 = (char)paVar6->id == 'a';\n          bVar16 = false;\n          bVar17 = !bVar19;\n          if (!bVar17) break;\n          iVar8 = 5;\n          pbVar11 = &DAT_000ae31b;\n          pbVar15 = (byte *)((int)&paVar6->id + (uint)bVar18);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar16 = *pbVar11 < *pbVar15;\n            bVar17 = *pbVar11 == *pbVar15;\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n            pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n          } while (bVar17);\n          if ((!bVar16 && !bVar17) == bVar16) break;\n          bVar17 = (s->name[4] == 'a') == bVar18;\n          if ((local_34 == (lang_statement_union *)0x0) || (bVar17)) {\n            local_34 = plVar13;\n          }\n          paVar6 = (plVar13->output_section_statement).bfd_section;\n          if ((local_40 != (lang_statement_union *)0x0) && (!bVar17)) goto LAB_00048240;\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = plVar13;\n            goto joined_r0x00048289;\n          }\n        }\n        plVar7 = plVar13;\n        plVar14 = (lang_statement_union *)(plVar13->wild_statement).section_list;\n      }" { (expression_statement "plVar13 = plVar14;" (assignment_expression "plVar13 = plVar14" identifier = identifier) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (plVar13->output_section_statement).constraint == 0;" (assignment_expression "bVar16 = (plVar13->output_section_statement).constraint == 0" identifier = (binary_expression "(plVar13->output_section_statement).constraint == 0" (field_expression "(plVar13->output_section_statement).constraint" (parenthesized_expression "(plVar13->output_section_statement)" ( (field_expression "plVar13->output_section_statement" identifier -> field_identifier) )) . field_identifier) == number_literal)) ;) (if_statement "if ((plVar13->output_section_statement).constraint < 0) {\nLAB_00048272:\n          paVar6 = (plVar13->output_section_statement).bfd_section;\nLAB_00048240:\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = local_40;\njoined_r0x00048289:\n            if (((fVar3 & 1) != 0) && (local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0)) {\n              local_38 = plVar13;\n            }\n          }\n        }\n        else {\n          paVar6 = (plVar13->data_statement).output_section;\n          iVar8 = 4;\n          paVar10 = paVar6;\n          pbVar11 = &DAT_000ae302;\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar17 = *(byte *)&paVar10->name < *pbVar11;\n            bVar16 = *(byte *)&paVar10->name == *pbVar11;\n            paVar10 = (asection *)((int)paVar10 + (uint)bVar20 * -2 + 1);\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar17 && !bVar16) != bVar17) goto LAB_00048272;\n          bVar18 = (char)paVar6->id == 'a';\n          bVar16 = false;\n          bVar17 = !bVar19;\n          if (!bVar17) break;\n          iVar8 = 5;\n          pbVar11 = &DAT_000ae31b;\n          pbVar15 = (byte *)((int)&paVar6->id + (uint)bVar18);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar16 = *pbVar11 < *pbVar15;\n            bVar17 = *pbVar11 == *pbVar15;\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n            pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n          } while (bVar17);\n          if ((!bVar16 && !bVar17) == bVar16) break;\n          bVar17 = (s->name[4] == 'a') == bVar18;\n          if ((local_34 == (lang_statement_union *)0x0) || (bVar17)) {\n            local_34 = plVar13;\n          }\n          paVar6 = (plVar13->output_section_statement).bfd_section;\n          if ((local_40 != (lang_statement_union *)0x0) && (!bVar17)) goto LAB_00048240;\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = plVar13;\n            goto joined_r0x00048289;\n          }\n        }" if (parenthesized_expression "((plVar13->output_section_statement).constraint < 0)" ( (binary_expression "(plVar13->output_section_statement).constraint < 0" (field_expression "(plVar13->output_section_statement).constraint" (parenthesized_expression "(plVar13->output_section_statement)" ( (field_expression "plVar13->output_section_statement" identifier -> field_identifier) )) . field_identifier) < number_literal) )) (compound_statement "{\nLAB_00048272:\n          paVar6 = (plVar13->output_section_statement).bfd_section;\nLAB_00048240:\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = local_40;\njoined_r0x00048289:\n            if (((fVar3 & 1) != 0) && (local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0)) {\n              local_38 = plVar13;\n            }\n          }\n        }" { (labeled_statement "LAB_00048272:\n          paVar6 = (plVar13->output_section_statement).bfd_section;" statement_identifier : (expression_statement "paVar6 = (plVar13->output_section_statement).bfd_section;" (assignment_expression "paVar6 = (plVar13->output_section_statement).bfd_section" identifier = (field_expression "(plVar13->output_section_statement).bfd_section" (parenthesized_expression "(plVar13->output_section_statement)" ( (field_expression "plVar13->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;)) (labeled_statement "LAB_00048240:\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = local_40;\njoined_r0x00048289:\n            if (((fVar3 & 1) != 0) && (local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0)) {\n              local_38 = plVar13;\n            }\n          }" statement_identifier : (if_statement "if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = local_40;\njoined_r0x00048289:\n            if (((fVar3 & 1) != 0) && (local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0)) {\n              local_38 = plVar13;\n            }\n          }" if (parenthesized_expression "(paVar6 != (asection *)0x0)" ( (binary_expression "paVar6 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            fVar3 = paVar6->flags;\n            plVar7 = local_40;\njoined_r0x00048289:\n            if (((fVar3 & 1) != 0) && (local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0)) {\n              local_38 = plVar13;\n            }\n          }" { (expression_statement "fVar3 = paVar6->flags;" (assignment_expression "fVar3 = paVar6->flags" identifier = (field_expression "paVar6->flags" identifier -> field_identifier)) ;) (expression_statement "plVar7 = local_40;" (assignment_expression "plVar7 = local_40" identifier = identifier) ;) (labeled_statement "joined_r0x00048289:\n            if (((fVar3 & 1) != 0) && (local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0)) {\n              local_38 = plVar13;\n            }" statement_identifier : (if_statement "if (((fVar3 & 1) != 0) && (local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0)) {\n              local_38 = plVar13;\n            }" if (parenthesized_expression "(((fVar3 & 1) != 0) && (local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0))" ( (binary_expression "((fVar3 & 1) != 0) && (local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0)" (parenthesized_expression "((fVar3 & 1) != 0)" ( (binary_expression "(fVar3 & 1) != 0" (parenthesized_expression "(fVar3 & 1)" ( (binary_expression "fVar3 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0)" ( (comma_expression "local_40 = plVar7, local_28 = plVar13, (fVar3 & 8) != 0" (assignment_expression "local_40 = plVar7" identifier = identifier) , (comma_expression "local_28 = plVar13, (fVar3 & 8) != 0" (assignment_expression "local_28 = plVar13" identifier = identifier) , (binary_expression "(fVar3 & 8) != 0" (parenthesized_expression "(fVar3 & 8)" ( (binary_expression "fVar3 & 8" identifier & number_literal) )) != number_literal))) ))) )) (compound_statement "{\n              local_38 = plVar13;\n            }" { (expression_statement "local_38 = plVar13;" (assignment_expression "local_38 = plVar13" identifier = identifier) ;) }))) }))) }) (else_clause "else {\n          paVar6 = (plVar13->data_statement).output_section;\n          iVar8 = 4;\n          paVar10 = paVar6;\n          pbVar11 = &DAT_000ae302;\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar17 = *(byte *)&paVar10->name < *pbVar11;\n            bVar16 = *(byte *)&paVar10->name == *pbVar11;\n            paVar10 = (asection *)((int)paVar10 + (uint)bVar20 * -2 + 1);\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar17 && !bVar16) != bVar17) goto LAB_00048272;\n          bVar18 = (char)paVar6->id == 'a';\n          bVar16 = false;\n          bVar17 = !bVar19;\n          if (!bVar17) break;\n          iVar8 = 5;\n          pbVar11 = &DAT_000ae31b;\n          pbVar15 = (byte *)((int)&paVar6->id + (uint)bVar18);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar16 = *pbVar11 < *pbVar15;\n            bVar17 = *pbVar11 == *pbVar15;\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n            pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n          } while (bVar17);\n          if ((!bVar16 && !bVar17) == bVar16) break;\n          bVar17 = (s->name[4] == 'a') == bVar18;\n          if ((local_34 == (lang_statement_union *)0x0) || (bVar17)) {\n            local_34 = plVar13;\n          }\n          paVar6 = (plVar13->output_section_statement).bfd_section;\n          if ((local_40 != (lang_statement_union *)0x0) && (!bVar17)) goto LAB_00048240;\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = plVar13;\n            goto joined_r0x00048289;\n          }\n        }" else (compound_statement "{\n          paVar6 = (plVar13->data_statement).output_section;\n          iVar8 = 4;\n          paVar10 = paVar6;\n          pbVar11 = &DAT_000ae302;\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar17 = *(byte *)&paVar10->name < *pbVar11;\n            bVar16 = *(byte *)&paVar10->name == *pbVar11;\n            paVar10 = (asection *)((int)paVar10 + (uint)bVar20 * -2 + 1);\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          } while (bVar16);\n          if ((!bVar17 && !bVar16) != bVar17) goto LAB_00048272;\n          bVar18 = (char)paVar6->id == 'a';\n          bVar16 = false;\n          bVar17 = !bVar19;\n          if (!bVar17) break;\n          iVar8 = 5;\n          pbVar11 = &DAT_000ae31b;\n          pbVar15 = (byte *)((int)&paVar6->id + (uint)bVar18);\n          do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar16 = *pbVar11 < *pbVar15;\n            bVar17 = *pbVar11 == *pbVar15;\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n            pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n          } while (bVar17);\n          if ((!bVar16 && !bVar17) == bVar16) break;\n          bVar17 = (s->name[4] == 'a') == bVar18;\n          if ((local_34 == (lang_statement_union *)0x0) || (bVar17)) {\n            local_34 = plVar13;\n          }\n          paVar6 = (plVar13->output_section_statement).bfd_section;\n          if ((local_40 != (lang_statement_union *)0x0) && (!bVar17)) goto LAB_00048240;\n          if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = plVar13;\n            goto joined_r0x00048289;\n          }\n        }" { (expression_statement "paVar6 = (plVar13->data_statement).output_section;" (assignment_expression "paVar6 = (plVar13->data_statement).output_section" identifier = (field_expression "(plVar13->data_statement).output_section" (parenthesized_expression "(plVar13->data_statement)" ( (field_expression "plVar13->data_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar8 = 4;" (assignment_expression "iVar8 = 4" identifier = number_literal) ;) (expression_statement "paVar10 = paVar6;" (assignment_expression "paVar10 = paVar6" identifier = identifier) ;) (expression_statement "pbVar11 = &DAT_000ae302;" (assignment_expression "pbVar11 = &DAT_000ae302" identifier = (pointer_expression "&DAT_000ae302" & identifier)) ;) (do_statement "do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar17 = *(byte *)&paVar10->name < *pbVar11;\n            bVar16 = *(byte *)&paVar10->name == *pbVar11;\n            paVar10 = (asection *)((int)paVar10 + (uint)bVar20 * -2 + 1);\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          } while (bVar16);" do (compound_statement "{\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar17 = *(byte *)&paVar10->name < *pbVar11;\n            bVar16 = *(byte *)&paVar10->name == *pbVar11;\n            paVar10 = (asection *)((int)paVar10 + (uint)bVar20 * -2 + 1);\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n          }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *(byte *)&paVar10->name < *pbVar11;" (assignment_expression "bVar17 = *(byte *)&paVar10->name < *pbVar11" identifier = (binary_expression "*(byte *)&paVar10->name < *pbVar11" (pointer_expression "*(byte *)&paVar10->name" * (cast_expression "(byte *)&paVar10->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar10->name" & (field_expression "paVar10->name" identifier -> field_identifier)))) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar16 = *(byte *)&paVar10->name == *pbVar11;" (assignment_expression "bVar16 = *(byte *)&paVar10->name == *pbVar11" identifier = (binary_expression "*(byte *)&paVar10->name == *pbVar11" (pointer_expression "*(byte *)&paVar10->name" * (cast_expression "(byte *)&paVar10->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar10->name" & (field_expression "paVar10->name" identifier -> field_identifier)))) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "paVar10 = (asection *)((int)paVar10 + (uint)bVar20 * -2 + 1);" (assignment_expression "paVar10 = (asection *)((int)paVar10 + (uint)bVar20 * -2 + 1)" identifier = (cast_expression "(asection *)((int)paVar10 + (uint)bVar20 * -2 + 1)" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar10 + (uint)bVar20 * -2 + 1)" ( (binary_expression "(int)paVar10 + (uint)bVar20 * -2 + 1" (binary_expression "(int)paVar10 + (uint)bVar20 * -2" (cast_expression "(int)paVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar17 && !bVar16) != bVar17) goto LAB_00048272;" if (parenthesized_expression "((!bVar17 && !bVar16) != bVar17)" ( (binary_expression "(!bVar17 && !bVar16) != bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00048272;" goto statement_identifier ;)) (expression_statement "bVar18 = (char)paVar6->id == 'a';" (assignment_expression "bVar18 = (char)paVar6->id == 'a'" identifier = (binary_expression "(char)paVar6->id == 'a'" (cast_expression "(char)paVar6->id" ( (type_descriptor "char" primitive_type) ) (field_expression "paVar6->id" identifier -> field_identifier)) == (char_literal "'a'" ' character '))) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar17 = !bVar19;" (assignment_expression "bVar17 = !bVar19" identifier = (unary_expression "!bVar19" ! identifier)) ;) (if_statement "if (!bVar17) break;" if (parenthesized_expression "(!bVar17)" ( (unary_expression "!bVar17" ! identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = 5;" (assignment_expression "iVar8 = 5" identifier = number_literal) ;) (expression_statement "pbVar11 = &DAT_000ae31b;" (assignment_expression "pbVar11 = &DAT_000ae31b" identifier = (pointer_expression "&DAT_000ae31b" & identifier)) ;) (expression_statement "pbVar15 = (byte *)((int)&paVar6->id + (uint)bVar18);" (assignment_expression "pbVar15 = (byte *)((int)&paVar6->id + (uint)bVar18)" identifier = (cast_expression "(byte *)((int)&paVar6->id + (uint)bVar18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar6->id + (uint)bVar18)" ( (binary_expression "(int)&paVar6->id + (uint)bVar18" (cast_expression "(int)&paVar6->id" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar6->id" & (field_expression "paVar6->id" identifier -> field_identifier))) + (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (do_statement "do {\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar16 = *pbVar11 < *pbVar15;\n            bVar17 = *pbVar11 == *pbVar15;\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n            pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n          } while (bVar17);" do (compound_statement "{\n            if (iVar8 == 0) break;\n            iVar8 = iVar8 + -1;\n            bVar16 = *pbVar11 < *pbVar15;\n            bVar17 = *pbVar11 == *pbVar15;\n            pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;\n            pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;\n          }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar11 < *pbVar15;" (assignment_expression "bVar16 = *pbVar11 < *pbVar15" identifier = (binary_expression "*pbVar11 < *pbVar15" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar17 = *pbVar11 == *pbVar15;" (assignment_expression "bVar17 = *pbVar11 == *pbVar15" identifier = (binary_expression "*pbVar11 == *pbVar15" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (uint)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (uint)bVar20 * -2 + 1" (binary_expression "pbVar15 + (uint)bVar20 * -2" identifier + (binary_expression "(uint)bVar20 * -2" (cast_expression "(uint)bVar20" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (if_statement "if ((!bVar16 && !bVar17) == bVar16) break;" if (parenthesized_expression "((!bVar16 && !bVar17) == bVar16)" ( (binary_expression "(!bVar16 && !bVar17) == bVar16" (parenthesized_expression "(!bVar16 && !bVar17)" ( (binary_expression "!bVar16 && !bVar17" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) == identifier) )) (break_statement "break;" break ;)) (expression_statement "bVar17 = (s->name[4] == 'a') == bVar18;" (assignment_expression "bVar17 = (s->name[4] == 'a') == bVar18" identifier = (binary_expression "(s->name[4] == 'a') == bVar18" (parenthesized_expression "(s->name[4] == 'a')" ( (binary_expression "s->name[4] == 'a'" (subscript_expression "s->name[4]" (field_expression "s->name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'a'" ' character ')) )) == identifier)) ;) (if_statement "if ((local_34 == (lang_statement_union *)0x0) || (bVar17)) {\n            local_34 = plVar13;\n          }" if (parenthesized_expression "((local_34 == (lang_statement_union *)0x0) || (bVar17))" ( (binary_expression "(local_34 == (lang_statement_union *)0x0) || (bVar17)" (parenthesized_expression "(local_34 == (lang_statement_union *)0x0)" ( (binary_expression "local_34 == (lang_statement_union *)0x0" identifier == (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(bVar17)" ( identifier ))) )) (compound_statement "{\n            local_34 = plVar13;\n          }" { (expression_statement "local_34 = plVar13;" (assignment_expression "local_34 = plVar13" identifier = identifier) ;) })) (expression_statement "paVar6 = (plVar13->output_section_statement).bfd_section;" (assignment_expression "paVar6 = (plVar13->output_section_statement).bfd_section" identifier = (field_expression "(plVar13->output_section_statement).bfd_section" (parenthesized_expression "(plVar13->output_section_statement)" ( (field_expression "plVar13->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((local_40 != (lang_statement_union *)0x0) && (!bVar17)) goto LAB_00048240;" if (parenthesized_expression "((local_40 != (lang_statement_union *)0x0) && (!bVar17))" ( (binary_expression "(local_40 != (lang_statement_union *)0x0) && (!bVar17)" (parenthesized_expression "(local_40 != (lang_statement_union *)0x0)" ( (binary_expression "local_40 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(!bVar17)" ( (unary_expression "!bVar17" ! identifier) ))) )) (goto_statement "goto LAB_00048240;" goto statement_identifier ;)) (if_statement "if (paVar6 != (asection *)0x0) {\n            fVar3 = paVar6->flags;\n            plVar7 = plVar13;\n            goto joined_r0x00048289;\n          }" if (parenthesized_expression "(paVar6 != (asection *)0x0)" ( (binary_expression "paVar6 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            fVar3 = paVar6->flags;\n            plVar7 = plVar13;\n            goto joined_r0x00048289;\n          }" { (expression_statement "fVar3 = paVar6->flags;" (assignment_expression "fVar3 = paVar6->flags" identifier = (field_expression "paVar6->flags" identifier -> field_identifier)) ;) (expression_statement "plVar7 = plVar13;" (assignment_expression "plVar7 = plVar13" identifier = identifier) ;) (goto_statement "goto joined_r0x00048289;" goto statement_identifier ;) })) }))) (expression_statement "plVar7 = plVar13;" (assignment_expression "plVar7 = plVar13" identifier = identifier) ;) (expression_statement "plVar14 = (lang_statement_union *)(plVar13->wild_statement).section_list;" (assignment_expression "plVar14 = (lang_statement_union *)(plVar13->wild_statement).section_list" identifier = (cast_expression "(lang_statement_union *)(plVar13->wild_statement).section_list" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar13->wild_statement).section_list" (parenthesized_expression "(plVar13->wild_statement)" ( (field_expression "plVar13->wild_statement" identifier -> field_identifier) )) . field_identifier))) ;) }) while (parenthesized_expression "((lang_statement_union *)(plVar13->wild_statement).section_list !=\n               (lang_statement_union *)0x0)" ( (binary_expression "(lang_statement_union *)(plVar13->wild_statement).section_list !=\n               (lang_statement_union *)0x0" (cast_expression "(lang_statement_union *)(plVar13->wild_statement).section_list" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar13->wild_statement).section_list" (parenthesized_expression "(plVar13->wild_statement)" ( (field_expression "plVar13->wild_statement" identifier -> field_identifier) )) . field_identifier)) != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if ((((local_40 == (lang_statement_union *)0x0) &&\n           (local_40 = local_34, local_34 == (lang_statement_union *)0x0)) &&\n          (local_40 = local_38, local_38 == (lang_statement_union *)0x0)) &&\n         (local_40 = plVar7, local_28 != (lang_statement_union *)0x0)) {\n        local_40 = local_28;\n      }" if (parenthesized_expression "((((local_40 == (lang_statement_union *)0x0) &&\n           (local_40 = local_34, local_34 == (lang_statement_union *)0x0)) &&\n          (local_40 = local_38, local_38 == (lang_statement_union *)0x0)) &&\n         (local_40 = plVar7, local_28 != (lang_statement_union *)0x0))" ( (binary_expression "(((local_40 == (lang_statement_union *)0x0) &&\n           (local_40 = local_34, local_34 == (lang_statement_union *)0x0)) &&\n          (local_40 = local_38, local_38 == (lang_statement_union *)0x0)) &&\n         (local_40 = plVar7, local_28 != (lang_statement_union *)0x0)" (parenthesized_expression "(((local_40 == (lang_statement_union *)0x0) &&\n           (local_40 = local_34, local_34 == (lang_statement_union *)0x0)) &&\n          (local_40 = local_38, local_38 == (lang_statement_union *)0x0))" ( (binary_expression "((local_40 == (lang_statement_union *)0x0) &&\n           (local_40 = local_34, local_34 == (lang_statement_union *)0x0)) &&\n          (local_40 = local_38, local_38 == (lang_statement_union *)0x0)" (parenthesized_expression "((local_40 == (lang_statement_union *)0x0) &&\n           (local_40 = local_34, local_34 == (lang_statement_union *)0x0))" ( (binary_expression "(local_40 == (lang_statement_union *)0x0) &&\n           (local_40 = local_34, local_34 == (lang_statement_union *)0x0)" (parenthesized_expression "(local_40 == (lang_statement_union *)0x0)" ( (binary_expression "local_40 == (lang_statement_union *)0x0" identifier == (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_40 = local_34, local_34 == (lang_statement_union *)0x0)" ( (comma_expression "local_40 = local_34, local_34 == (lang_statement_union *)0x0" (assignment_expression "local_40 = local_34" identifier = identifier) , (binary_expression "local_34 == (lang_statement_union *)0x0" identifier == (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(local_40 = local_38, local_38 == (lang_statement_union *)0x0)" ( (comma_expression "local_40 = local_38, local_38 == (lang_statement_union *)0x0" (assignment_expression "local_40 = local_38" identifier = identifier) , (binary_expression "local_38 == (lang_statement_union *)0x0" identifier == (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(local_40 = plVar7, local_28 != (lang_statement_union *)0x0)" ( (comma_expression "local_40 = plVar7, local_28 != (lang_statement_union *)0x0" (assignment_expression "local_40 = plVar7" identifier = identifier) , (binary_expression "local_28 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        local_40 = local_28;\n      }" { (expression_statement "local_40 = local_28;" (assignment_expression "local_40 = local_28" identifier = identifier) ;) })) (expression_statement "local_44->os = (lang_output_section_statement_type *)local_40;" (assignment_expression "local_44->os = (lang_output_section_statement_type *)local_40" (field_expression "local_44->os" identifier -> field_identifier) = (cast_expression "(lang_output_section_statement_type *)local_40" ( (type_descriptor "lang_output_section_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_00048089;" goto statement_identifier ;) })) }) (else_clause "else {\n    local_40 = (lang_statement_union *)lang_output_section_statement_lookup(local_44->name,0,0);\n    local_44->os = (lang_output_section_statement_type *)local_40;\nLAB_00048089:\n    if (local_40 != (lang_statement_union *)0x0) goto LAB_00047db8;\n  }" else (compound_statement "{\n    local_40 = (lang_statement_union *)lang_output_section_statement_lookup(local_44->name,0,0);\n    local_44->os = (lang_output_section_statement_type *)local_40;\nLAB_00048089:\n    if (local_40 != (lang_statement_union *)0x0) goto LAB_00047db8;\n  }" { (expression_statement "local_40 = (lang_statement_union *)lang_output_section_statement_lookup(local_44->name,0,0);" (assignment_expression "local_40 = (lang_statement_union *)lang_output_section_statement_lookup(local_44->name,0,0)" identifier = (cast_expression "(lang_statement_union *)lang_output_section_statement_lookup(local_44->name,0,0)" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "lang_output_section_statement_lookup(local_44->name,0,0)" identifier (argument_list "(local_44->name,0,0)" ( (field_expression "local_44->name" identifier -> field_identifier) , number_literal , number_literal ))))) ;) (expression_statement "local_44->os = (lang_output_section_statement_type *)local_40;" (assignment_expression "local_44->os = (lang_output_section_statement_type *)local_40" (field_expression "local_44->os" identifier -> field_identifier) = (cast_expression "(lang_output_section_statement_type *)local_40" ( (type_descriptor "lang_output_section_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_00048089:\n    if (local_40 != (lang_statement_union *)0x0) goto LAB_00047db8;" statement_identifier : (if_statement "if (local_40 != (lang_statement_union *)0x0) goto LAB_00047db8;" if (parenthesized_expression "(local_40 != (lang_statement_union *)0x0)" ( (binary_expression "local_40 != (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 LAB_00047db8;" goto statement_identifier ;))) }))) (expression_statement "local_40 = (lang_statement_union *)\n             lang_output_section_find_by_flags\n                       (s,local_48,&local_44->os,\n                        (lang_match_sec_type_func)PTR__bfd_elf_match_sections_by_type_001cdfe0);" (assignment_expression "local_40 = (lang_statement_union *)\n             lang_output_section_find_by_flags\n                       (s,local_48,&local_44->os,\n                        (lang_match_sec_type_func)PTR__bfd_elf_match_sections_by_type_001cdfe0)" identifier = (cast_expression "(lang_statement_union *)\n             lang_output_section_find_by_flags\n                       (s,local_48,&local_44->os,\n                        (lang_match_sec_type_func)PTR__bfd_elf_match_sections_by_type_001cdfe0)" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "lang_output_section_find_by_flags\n                       (s,local_48,&local_44->os,\n                        (lang_match_sec_type_func)PTR__bfd_elf_match_sections_by_type_001cdfe0)" identifier (argument_list "(s,local_48,&local_44->os,\n                        (lang_match_sec_type_func)PTR__bfd_elf_match_sections_by_type_001cdfe0)" ( identifier , identifier , (pointer_expression "&local_44->os" & (field_expression "local_44->os" identifier -> field_identifier)) , (cast_expression "(lang_match_sec_type_func)PTR__bfd_elf_match_sections_by_type_001cdfe0" ( (type_descriptor "lang_match_sec_type_func" type_identifier) ) identifier) ))))) ;) (if_statement "if (local_40 == (lang_statement_union *)0x0) {\n    local_40 = lang_output_section_statement.head;\n  }" if (parenthesized_expression "(local_40 == (lang_statement_union *)0x0)" ( (binary_expression "local_40 == (lang_statement_union *)0x0" identifier == (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_40 = lang_output_section_statement.head;\n  }" { (expression_statement "local_40 = lang_output_section_statement.head;" (assignment_expression "local_40 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ;) })) (labeled_statement "LAB_00047db8:\n  plVar4 = lang_insert_orphan(s,secname,constraint,&local_40->output_section_statement,local_44,\n                              (etree_type *)0x0,(lang_statement_list_type *)0x0);" statement_identifier : (expression_statement "plVar4 = lang_insert_orphan(s,secname,constraint,&local_40->output_section_statement,local_44,\n                              (etree_type *)0x0,(lang_statement_list_type *)0x0);" (assignment_expression "plVar4 = lang_insert_orphan(s,secname,constraint,&local_40->output_section_statement,local_44,\n                              (etree_type *)0x0,(lang_statement_list_type *)0x0)" identifier = (call_expression "lang_insert_orphan(s,secname,constraint,&local_40->output_section_statement,local_44,\n                              (etree_type *)0x0,(lang_statement_list_type *)0x0)" identifier (argument_list "(s,secname,constraint,&local_40->output_section_statement,local_44,\n                              (etree_type *)0x0,(lang_statement_list_type *)0x0)" ( identifier , identifier , identifier , (pointer_expression "&local_40->output_section_statement" & (field_expression "local_40->output_section_statement" identifier -> field_identifier)) , identifier , (cast_expression "(etree_type *)0x0" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(lang_statement_list_type *)0x0" ( (type_descriptor "lang_statement_list_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;)) (return_statement "return plVar4;" return identifier ;) })))
(translation_unit "undefined * FUN_00047ad0(int *param_1,char *param_2,int param_3)\n\n{\n  uint uVar1;\n  undefined *puVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined **ppuVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  uint local_48;\n  undefined **local_44;\n  undefined *local_40;\n  undefined *local_38;\n  undefined *local_34;\n  undefined *local_28;\n  \n  bVar17 = 0;\n  local_34 = (undefined *)0x0;\n  uVar1 = *(uint *)(*(int *)(param_1[0x2b] + 4) + 4);\n  bVar14 = uVar1 == 5;\n  iVar5 = *(int *)(*(int *)(DAT_001d0414 + 4) + 4);\n  if (bVar14) {\n    local_34 = *(undefined **)(param_1[0x29] + 4);\n  }\n  if ((DAT_001d03e0 & 3) == 2) {\nLAB_00047c3c:\n    bVar16 = false;\n  }\n  else if ((DAT_001d03e4 & 0x40) == 0) {\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }\n  if ((param_3 == 0) &&\n     (puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0)) {\n    puVar11 = (undefined *)0x0;\n    do {\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    } while (puVar2 != (undefined *)0x0);\n    param_3 = 0x17e;\n    if (puVar10 != (undefined *)0x0) {\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }\n  }\n  if (DAT_001cfba8 == 0) {\n    ppuVar9 = &PTR_s__text_001ce860;\n    do {\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    } while (ppuVar9 != (undefined **)&DAT_001ce938);\n    DAT_001cfba8 = 1;\n  }\n  bVar13 = false;\n  bVar15 = (DAT_001d03e0 & 2) == 0;\n  if (bVar15) {\n    iVar5 = 0xd;\n    pbVar7 = (byte *)*param_1;\n    pbVar8 = (byte *)".gnu.warning.";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if (((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)) {\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }\n  }\n  local_48 = param_1[5];\n  if ((DAT_001d03e0 & 3) != 2) {\n    iVar5 = param_1[0x2b];\n    piVar3 = param_1;\n    while (piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0) {\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }\n  }\n  if ((local_48 & 0x2001) == 0) {\n    local_44 = &PTR_s__comment_001ce920;\n    goto LAB_00047da5;\n  }\n  if ((local_48 & 1) == 0) {\n    local_44 = (undefined **)0x0;\n    local_40 = (undefined *)0x0;\n    goto LAB_00047db8;\n  }\n  if ((local_48 & 2) == 0) {\nLAB_00047e40:\n    local_44 = &PTR_s__bss_001ce8c0;\n    if (((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)) {\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }\n  }\n  else if ((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)) {\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }\nLAB_00047da5:\n  local_40 = local_44[2];\n  if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  if (*local_44 == (undefined *)0x0) {\n    if (DAT_001d03a0 != (undefined *)0x0) {\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }\n  }\n  else {\n    local_40 = (undefined *)FUN_000256d0(*local_44,0,0);\n    local_44[2] = local_40;\nLAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  }\n  local_40 = (undefined *)\n             FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         );\n  if (local_40 == (undefined *)0x0) {\n    local_40 = DAT_001d03a0;\n  }\nLAB_00047db8:\n  puVar2 = (undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0);\n  return puVar2;\n}\n\n" (function_definition "undefined * FUN_00047ad0(int *param_1,char *param_2,int param_3)\n\n{\n  uint uVar1;\n  undefined *puVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined **ppuVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  uint local_48;\n  undefined **local_44;\n  undefined *local_40;\n  undefined *local_38;\n  undefined *local_34;\n  undefined *local_28;\n  \n  bVar17 = 0;\n  local_34 = (undefined *)0x0;\n  uVar1 = *(uint *)(*(int *)(param_1[0x2b] + 4) + 4);\n  bVar14 = uVar1 == 5;\n  iVar5 = *(int *)(*(int *)(DAT_001d0414 + 4) + 4);\n  if (bVar14) {\n    local_34 = *(undefined **)(param_1[0x29] + 4);\n  }\n  if ((DAT_001d03e0 & 3) == 2) {\nLAB_00047c3c:\n    bVar16 = false;\n  }\n  else if ((DAT_001d03e4 & 0x40) == 0) {\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }\n  if ((param_3 == 0) &&\n     (puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0)) {\n    puVar11 = (undefined *)0x0;\n    do {\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    } while (puVar2 != (undefined *)0x0);\n    param_3 = 0x17e;\n    if (puVar10 != (undefined *)0x0) {\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }\n  }\n  if (DAT_001cfba8 == 0) {\n    ppuVar9 = &PTR_s__text_001ce860;\n    do {\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    } while (ppuVar9 != (undefined **)&DAT_001ce938);\n    DAT_001cfba8 = 1;\n  }\n  bVar13 = false;\n  bVar15 = (DAT_001d03e0 & 2) == 0;\n  if (bVar15) {\n    iVar5 = 0xd;\n    pbVar7 = (byte *)*param_1;\n    pbVar8 = (byte *)".gnu.warning.";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if (((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)) {\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }\n  }\n  local_48 = param_1[5];\n  if ((DAT_001d03e0 & 3) != 2) {\n    iVar5 = param_1[0x2b];\n    piVar3 = param_1;\n    while (piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0) {\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }\n  }\n  if ((local_48 & 0x2001) == 0) {\n    local_44 = &PTR_s__comment_001ce920;\n    goto LAB_00047da5;\n  }\n  if ((local_48 & 1) == 0) {\n    local_44 = (undefined **)0x0;\n    local_40 = (undefined *)0x0;\n    goto LAB_00047db8;\n  }\n  if ((local_48 & 2) == 0) {\nLAB_00047e40:\n    local_44 = &PTR_s__bss_001ce8c0;\n    if (((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)) {\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }\n  }\n  else if ((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)) {\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }\nLAB_00047da5:\n  local_40 = local_44[2];\n  if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  if (*local_44 == (undefined *)0x0) {\n    if (DAT_001d03a0 != (undefined *)0x0) {\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }\n  }\n  else {\n    local_40 = (undefined *)FUN_000256d0(*local_44,0,0);\n    local_44[2] = local_40;\nLAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  }\n  local_40 = (undefined *)\n             FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         );\n  if (local_40 == (undefined *)0x0) {\n    local_40 = DAT_001d03a0;\n  }\nLAB_00047db8:\n  puVar2 = (undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0);\n  return puVar2;\n}" type_identifier (pointer_declarator "* FUN_00047ad0(int *param_1,char *param_2,int param_3)" * (function_declarator "FUN_00047ad0(int *param_1,char *param_2,int param_3)" identifier (parameter_list "(int *param_1,char *param_2,int param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) )))) (compound_statement "{\n  uint uVar1;\n  undefined *puVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined **ppuVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  uint local_48;\n  undefined **local_44;\n  undefined *local_40;\n  undefined *local_38;\n  undefined *local_34;\n  undefined *local_28;\n  \n  bVar17 = 0;\n  local_34 = (undefined *)0x0;\n  uVar1 = *(uint *)(*(int *)(param_1[0x2b] + 4) + 4);\n  bVar14 = uVar1 == 5;\n  iVar5 = *(int *)(*(int *)(DAT_001d0414 + 4) + 4);\n  if (bVar14) {\n    local_34 = *(undefined **)(param_1[0x29] + 4);\n  }\n  if ((DAT_001d03e0 & 3) == 2) {\nLAB_00047c3c:\n    bVar16 = false;\n  }\n  else if ((DAT_001d03e4 & 0x40) == 0) {\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }\n  if ((param_3 == 0) &&\n     (puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0)) {\n    puVar11 = (undefined *)0x0;\n    do {\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    } while (puVar2 != (undefined *)0x0);\n    param_3 = 0x17e;\n    if (puVar10 != (undefined *)0x0) {\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }\n  }\n  if (DAT_001cfba8 == 0) {\n    ppuVar9 = &PTR_s__text_001ce860;\n    do {\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    } while (ppuVar9 != (undefined **)&DAT_001ce938);\n    DAT_001cfba8 = 1;\n  }\n  bVar13 = false;\n  bVar15 = (DAT_001d03e0 & 2) == 0;\n  if (bVar15) {\n    iVar5 = 0xd;\n    pbVar7 = (byte *)*param_1;\n    pbVar8 = (byte *)".gnu.warning.";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if (((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)) {\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }\n  }\n  local_48 = param_1[5];\n  if ((DAT_001d03e0 & 3) != 2) {\n    iVar5 = param_1[0x2b];\n    piVar3 = param_1;\n    while (piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0) {\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }\n  }\n  if ((local_48 & 0x2001) == 0) {\n    local_44 = &PTR_s__comment_001ce920;\n    goto LAB_00047da5;\n  }\n  if ((local_48 & 1) == 0) {\n    local_44 = (undefined **)0x0;\n    local_40 = (undefined *)0x0;\n    goto LAB_00047db8;\n  }\n  if ((local_48 & 2) == 0) {\nLAB_00047e40:\n    local_44 = &PTR_s__bss_001ce8c0;\n    if (((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)) {\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }\n  }\n  else if ((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)) {\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }\nLAB_00047da5:\n  local_40 = local_44[2];\n  if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  if (*local_44 == (undefined *)0x0) {\n    if (DAT_001d03a0 != (undefined *)0x0) {\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }\n  }\n  else {\n    local_40 = (undefined *)FUN_000256d0(*local_44,0,0);\n    local_44[2] = local_40;\nLAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  }\n  local_40 = (undefined *)\n             FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         );\n  if (local_40 == (undefined *)0x0) {\n    local_40 = DAT_001d03a0;\n  }\nLAB_00047db8:\n  puVar2 = (undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0);\n  return puVar2;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "undefined **ppuVar9;" type_identifier (pointer_declarator "**ppuVar9" * (pointer_declarator "*ppuVar9" * identifier)) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "undefined **local_44;" type_identifier (pointer_declarator "**local_44" * (pointer_declarator "*local_44" * identifier)) ;) (declaration "undefined *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "undefined *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "undefined *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined *local_28;" type_identifier (pointer_declarator "*local_28" * identifier) ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "local_34 = (undefined *)0x0;" (assignment_expression "local_34 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar1 = *(uint *)(*(int *)(param_1[0x2b] + 4) + 4);" (assignment_expression "uVar1 = *(uint *)(*(int *)(param_1[0x2b] + 4) + 4)" identifier = (pointer_expression "*(uint *)(*(int *)(param_1[0x2b] + 4) + 4)" * (cast_expression "(uint *)(*(int *)(param_1[0x2b] + 4) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1[0x2b] + 4) + 4)" ( (binary_expression "*(int *)(param_1[0x2b] + 4) + 4" (pointer_expression "*(int *)(param_1[0x2b] + 4)" * (cast_expression "(int *)(param_1[0x2b] + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x2b] + 4)" ( (binary_expression "param_1[0x2b] + 4" (subscript_expression "param_1[0x2b]" identifier [ number_literal ]) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "bVar14 = uVar1 == 5;" (assignment_expression "bVar14 = uVar1 == 5" identifier = (binary_expression "uVar1 == 5" identifier == number_literal)) ;) (expression_statement "iVar5 = *(int *)(*(int *)(DAT_001d0414 + 4) + 4);" (assignment_expression "iVar5 = *(int *)(*(int *)(DAT_001d0414 + 4) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(DAT_001d0414 + 4) + 4)" * (cast_expression "(int *)(*(int *)(DAT_001d0414 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_001d0414 + 4) + 4)" ( (binary_expression "*(int *)(DAT_001d0414 + 4) + 4" (pointer_expression "*(int *)(DAT_001d0414 + 4)" * (cast_expression "(int *)(DAT_001d0414 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001d0414 + 4)" ( (binary_expression "DAT_001d0414 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (bVar14) {\n    local_34 = *(undefined **)(param_1[0x29] + 4);\n  }" if (parenthesized_expression "(bVar14)" ( identifier )) (compound_statement "{\n    local_34 = *(undefined **)(param_1[0x29] + 4);\n  }" { (expression_statement "local_34 = *(undefined **)(param_1[0x29] + 4);" (assignment_expression "local_34 = *(undefined **)(param_1[0x29] + 4)" identifier = (pointer_expression "*(undefined **)(param_1[0x29] + 4)" * (cast_expression "(undefined **)(param_1[0x29] + 4)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1[0x29] + 4)" ( (binary_expression "param_1[0x29] + 4" (subscript_expression "param_1[0x29]" identifier [ number_literal ]) + number_literal) ))))) ;) })) (if_statement "if ((DAT_001d03e0 & 3) == 2) {\nLAB_00047c3c:\n    bVar16 = false;\n  }\n  else if ((DAT_001d03e4 & 0x40) == 0) {\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }" if (parenthesized_expression "((DAT_001d03e0 & 3) == 2)" ( (binary_expression "(DAT_001d03e0 & 3) == 2" (parenthesized_expression "(DAT_001d03e0 & 3)" ( (binary_expression "DAT_001d03e0 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00047c3c:\n    bVar16 = false;\n  }" { (labeled_statement "LAB_00047c3c:\n    bVar16 = false;" statement_identifier : (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;)) }) (else_clause "else if ((DAT_001d03e4 & 0x40) == 0) {\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }" else (if_statement "if ((DAT_001d03e4 & 0x40) == 0) {\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }" if (parenthesized_expression "((DAT_001d03e4 & 0x40) == 0)" ( (binary_expression "(DAT_001d03e4 & 0x40) == 0" (parenthesized_expression "(DAT_001d03e4 & 0x40)" ( (binary_expression "DAT_001d03e4 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }" { (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (labeled_statement "LAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }" statement_identifier : (if_statement "if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }" if (parenthesized_expression "(((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0))" ( (binary_expression "((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)" (parenthesized_expression "((bVar14) && (iVar5 == 5))" ( (binary_expression "(bVar14) && (iVar5 == 5)" (parenthesized_expression "(bVar14)" ( identifier )) && (parenthesized_expression "(iVar5 == 5)" ( (binary_expression "iVar5 == 5" identifier == number_literal) ))) )) && (parenthesized_expression "(uVar6 = param_1[5], (uVar6 & 1) != 0)" ( (comma_expression "uVar6 = param_1[5], (uVar6 & 1) != 0" (assignment_expression "uVar6 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) , (binary_expression "(uVar6 & 1) != 0" (parenthesized_expression "(uVar6 & 1)" ( (binary_expression "uVar6 & 1" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }" { (labeled_statement "LAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }" statement_identifier : (if_statement "if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }" if (parenthesized_expression "((*(byte *)(param_1[0x29] + 0xb) & 1) != 0)" ( (binary_expression "(*(byte *)(param_1[0x29] + 0xb) & 1) != 0" (parenthesized_expression "(*(byte *)(param_1[0x29] + 0xb) & 1)" ( (binary_expression "*(byte *)(param_1[0x29] + 0xb) & 1" (pointer_expression "*(byte *)(param_1[0x29] + 0xb)" * (cast_expression "(byte *)(param_1[0x29] + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x29] + 0xb)" ( (binary_expression "param_1[0x29] + 0xb" (subscript_expression "param_1[0x29]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }" { (if_statement "if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }" if (parenthesized_expression "(DAT_001d03a0 != (undefined *)0x0)" ( (binary_expression "DAT_001d03a0 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }" { (expression_statement "puVar2 = DAT_001d03a0;" (assignment_expression "puVar2 = DAT_001d03a0" identifier = identifier) ;) (do_statement "do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);" do (compound_statement "{\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          }" { (expression_statement "puVar11 = *(undefined **)(puVar2 + 0x1c);" (assignment_expression "puVar11 = *(undefined **)(puVar2 + 0x1c)" identifier = (pointer_expression "*(undefined **)(puVar2 + 0x1c)" * (cast_expression "(undefined **)(puVar2 + 0x1c)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x1c)" ( (binary_expression "puVar2 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;" if (parenthesized_expression "(((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       )))))" ( (binary_expression "((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))" (parenthesized_expression "((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                )" ( (binary_expression "(puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)" (parenthesized_expression "(puVar11 != PTR__bfd_std_section_001cdfbc + 0x180)" ( (binary_expression "puVar11 != PTR__bfd_std_section_001cdfbc + 0x180" identifier != (binary_expression "PTR__bfd_std_section_001cdfbc + 0x180" identifier + number_literal)) )) && (parenthesized_expression "(puVar11 != (undefined *)0x0)" ( (binary_expression "puVar11 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))" ( (parenthesized_expression "((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       )))" ( (binary_expression "(*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))" (binary_expression "(*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0" (parenthesized_expression "(*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1)" ( (binary_expression "*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1" (pointer_expression "*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb)" * (cast_expression "(byte *)(*(int *)(puVar11 + 0xa4) + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0xa4) + 0xb)" ( (binary_expression "*(int *)(puVar11 + 0xa4) + 0xb" (pointer_expression "*(int *)(puVar11 + 0xa4)" * (cast_expression "(int *)(puVar11 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xa4)" ( (binary_expression "puVar11 + 0xa4" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) && (parenthesized_expression "((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))" ( (parenthesized_expression "(((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       )" ( (binary_expression "((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))" (binary_expression "((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0" (parenthesized_expression "((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b)" ( (binary_expression "(*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b" (parenthesized_expression "(*(uint *)(puVar11 + 0x14) ^ uVar6)" ( (binary_expression "*(uint *)(puVar11 + 0x14) ^ uVar6" (pointer_expression "*(uint *)(puVar11 + 0x14)" * (cast_expression "(uint *)(puVar11 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x14)" ( (binary_expression "puVar11 + 0x14" identifier + number_literal) )))) ^ identifier) )) & number_literal) )) == number_literal) && (parenthesized_expression "(*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))" ( (binary_expression "*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)" (pointer_expression "*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c)" * (cast_expression "(int *)(*(int *)(puVar11 + 0xa4) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0xa4) + 0x2c)" ( (binary_expression "*(int *)(puVar11 + 0xa4) + 0x2c" (pointer_expression "*(int *)(puVar11 + 0xa4)" * (cast_expression "(int *)(puVar11 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xa4)" ( (binary_expression "puVar11 + 0xa4" identifier + number_literal) )))) + number_literal) )))) == (pointer_expression "*(int *)(param_1[0x29] + 0x2c)" * (cast_expression "(int *)(param_1[0x29] + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x29] + 0x2c)" ( (binary_expression "param_1[0x29] + 0x2c" (subscript_expression "param_1[0x29]" identifier [ number_literal ]) + number_literal) ))))) ))) )) ))) )) ))) )) (goto_statement "goto LAB_00047fcb;" goto statement_identifier ;)) (expression_statement "puVar2 = *(undefined **)(puVar2 + 0x10);" (assignment_expression "puVar2 = *(undefined **)(puVar2 + 0x10)" identifier = (pointer_expression "*(undefined **)(puVar2 + 0x10)" * (cast_expression "(undefined **)(puVar2 + 0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x10)" ( (binary_expression "puVar2 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(puVar2 != (undefined *)0x0)" ( (binary_expression "puVar2 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "param_2 = ".mbind.bss";" (assignment_expression "param_2 = ".mbind.bss"" identifier = (string_literal "".mbind.bss"" " string_content ")) ;) (if_statement "if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }" if (parenthesized_expression "(((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0))" ( (binary_expression "((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)" (parenthesized_expression "((uVar6 & 0x102) != 0)" ( (binary_expression "(uVar6 & 0x102) != 0" (parenthesized_expression "(uVar6 & 0x102)" ( (binary_expression "uVar6 & 0x102" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(param_2 = ".mbind.data", (uVar6 & 8) != 0)" ( (comma_expression "param_2 = ".mbind.data", (uVar6 & 8) != 0" (assignment_expression "param_2 = ".mbind.data"" identifier = (string_literal "".mbind.data"" " string_content ")) , (binary_expression "(uVar6 & 8) != 0" (parenthesized_expression "(uVar6 & 8)" ( (binary_expression "uVar6 & 8" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }" { (expression_statement "param_2 = ".mbind.text";" (assignment_expression "param_2 = ".mbind.text"" identifier = (string_literal "".mbind.text"" " string_content ")) ;) (if_statement "if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }" if (parenthesized_expression "((uVar6 & 0x10) == 0)" ( (binary_expression "(uVar6 & 0x10) == 0" (parenthesized_expression "(uVar6 & 0x10)" ( (binary_expression "uVar6 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            param_2 = ".mbind.rodata";\n          }" { (expression_statement "param_2 = ".mbind.rodata";" (assignment_expression "param_2 = ".mbind.rodata"" identifier = (string_literal "".mbind.rodata"" " string_content ")) ;) })) })) }))) }))) }) (else_clause "else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }" else (compound_statement "{\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }" { (expression_statement "uVar6 = param_1[5];" (assignment_expression "uVar6 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (if_statement "if ((uVar6 & 1) == 0) goto LAB_00047c3c;" if (parenthesized_expression "((uVar6 & 1) == 0)" ( (binary_expression "(uVar6 & 1) == 0" (parenthesized_expression "(uVar6 & 1)" ( (binary_expression "uVar6 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00047c3c;" goto statement_identifier ;)) (expression_statement "bVar13 = uVar1 < 5;" (assignment_expression "bVar13 = uVar1 < 5" identifier = (binary_expression "uVar1 < 5" identifier < number_literal)) ;) (expression_statement "bVar15 = uVar1 == 5;" (assignment_expression "bVar15 = uVar1 == 5" identifier = (binary_expression "uVar1 == 5" identifier == number_literal)) ;) (if_statement "if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }" { (if_statement "if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }" if (parenthesized_expression "(local_34 == (undefined *)0x4)" ( (binary_expression "local_34 == (undefined *)0x4" identifier == (cast_expression "(undefined *)0x4" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }" { (expression_statement "param_2 = ".rela.dyn";" (assignment_expression "param_2 = ".rela.dyn"" identifier = (string_literal "".rela.dyn"" " string_content ")) ;) (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" identifier = true) ;) (goto_statement "goto LAB_00047b5c;" goto statement_identifier ;) })) (expression_statement "bVar16 = local_34 == (undefined *)0x9;" (assignment_expression "bVar16 = local_34 == (undefined *)0x9" identifier = (binary_expression "local_34 == (undefined *)0x9" identifier == (cast_expression "(undefined *)0x9" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (bVar16) {\n        param_2 = ".rel.dyn";\n      }" if (parenthesized_expression "(bVar16)" ( identifier )) (compound_statement "{\n        param_2 = ".rel.dyn";\n      }" { (expression_statement "param_2 = ".rel.dyn";" (assignment_expression "param_2 = ".rel.dyn"" identifier = (string_literal "".rel.dyn"" " string_content ")) ;) })) (if_statement "if (iVar5 == 5) goto LAB_00047b7b;" if (parenthesized_expression "(iVar5 == 5)" ( (binary_expression "iVar5 == 5" identifier == number_literal) )) (goto_statement "goto LAB_00047b7b;" goto statement_identifier ;)) }) (else_clause "else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }" else (compound_statement "{\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }" { (expression_statement "iVar4 = 4;" (assignment_expression "iVar4 = 4" identifier = number_literal) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "pbVar7 = (byte *)param_2;" (assignment_expression "pbVar7 = (byte *)param_2" identifier = (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar8 = &DAT_000ae302;" (assignment_expression "pbVar8 = &DAT_000ae302" identifier = (pointer_expression "&DAT_000ae302" & identifier)) ;) (do_statement "do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);" do (compound_statement "{\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      }" { (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar7 < *pbVar8;" (assignment_expression "bVar13 = *pbVar7 < *pbVar8" identifier = (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "bVar15 = *pbVar7 == *pbVar8;" (assignment_expression "bVar15 = *pbVar7 == *pbVar8" identifier = (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }" if (parenthesized_expression "((!bVar13 && !bVar15) == bVar13)" ( (binary_expression "(!bVar13 && !bVar15) == bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" ( (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier) )) (compound_statement "{\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }" { (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" identifier = true) ;) (if_statement "if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }" if (parenthesized_expression "(((byte *)param_2)[4] == 0x61)" ( (binary_expression "((byte *)param_2)[4] == 0x61" (subscript_expression "((byte *)param_2)[4]" (parenthesized_expression "((byte *)param_2)" ( (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) == number_literal) )) (compound_statement "{\n          param_2 = ".rela.dyn";\n        }" { (expression_statement "param_2 = ".rela.dyn";" (assignment_expression "param_2 = ".rela.dyn"" identifier = (string_literal "".rela.dyn"" " string_content ")) ;) }) (else_clause "else {\n          param_2 = ".rel.dyn";\n        }" else (compound_statement "{\n          param_2 = ".rel.dyn";\n        }" { (expression_statement "param_2 = ".rel.dyn";" (assignment_expression "param_2 = ".rel.dyn"" identifier = (string_literal "".rel.dyn"" " string_content ")) ;) }))) })) }))) }))))) (if_statement "if ((param_3 == 0) &&\n     (puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0)) {\n    puVar11 = (undefined *)0x0;\n    do {\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    } while (puVar2 != (undefined *)0x0);\n    param_3 = 0x17e;\n    if (puVar10 != (undefined *)0x0) {\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }\n  }" if (parenthesized_expression "((param_3 == 0) &&\n     (puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0))" ( (binary_expression "(param_3 == 0) &&\n     (puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0)" (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) && (parenthesized_expression "(puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0)" ( (comma_expression "puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0" (assignment_expression "puVar2 = (undefined *)FUN_000256d0(param_2,0,0)" identifier = (cast_expression "(undefined *)FUN_000256d0(param_2,0,0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000256d0(param_2,0,0)" identifier (argument_list "(param_2,0,0)" ( identifier , number_literal , number_literal ))))) , (binary_expression "puVar2 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    puVar11 = (undefined *)0x0;\n    do {\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    } while (puVar2 != (undefined *)0x0);\n    param_3 = 0x17e;\n    if (puVar10 != (undefined *)0x0) {\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }\n  }" { (expression_statement "puVar11 = (undefined *)0x0;" (assignment_expression "puVar11 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    } while (puVar2 != (undefined *)0x0);" do (compound_statement "{\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    }" { (expression_statement "iVar4 = *(int *)(puVar2 + 0x1c);" (assignment_expression "iVar4 = *(int *)(puVar2 + 0x1c)" identifier = (pointer_expression "*(int *)(puVar2 + 0x1c)" * (cast_expression "(int *)(puVar2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1c)" ( (binary_expression "puVar2 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "puVar10 = puVar2;" (assignment_expression "puVar10 = puVar2" identifier = identifier) ;) (if_statement "if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }" { (if_statement "if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;" if (parenthesized_expression "(*(uint *)(iVar4 + 0x14) == 0)" ( (binary_expression "*(uint *)(iVar4 + 0x14) == 0" (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00047fcb;" goto statement_identifier ;)) (expression_statement "puVar10 = puVar11;" (assignment_expression "puVar10 = puVar11" identifier = identifier) ;) (if_statement "if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }" if (parenthesized_expression "(((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0)" ( (binary_expression "((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0" (parenthesized_expression "((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3)" ( (binary_expression "(*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3" (parenthesized_expression "(*(uint *)(iVar4 + 0x14) ^ param_1[5])" ( (binary_expression "*(uint *)(iVar4 + 0x14) ^ param_1[5]" (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) ^ (subscript_expression "param_1[5]" identifier [ number_literal ])) )) & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }" { (if_statement "if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;" if (parenthesized_expression "((uVar1 != 5) || (iVar5 != 5))" ( (binary_expression "(uVar1 != 5) || (iVar5 != 5)" (parenthesized_expression "(uVar1 != 5)" ( (binary_expression "uVar1 != 5" identifier != number_literal) )) || (parenthesized_expression "(iVar5 != 5)" ( (binary_expression "iVar5 != 5" identifier != number_literal) ))) )) (goto_statement "goto LAB_00047fcb;" goto statement_identifier ;)) (if_statement "if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }" if (parenthesized_expression "((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))" ( (binary_expression "(*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8)))))" (parenthesized_expression "(*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))" ( (binary_expression "*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)" (pointer_expression "*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c)" * (cast_expression "(int *)(*(int *)(iVar4 + 0xa4) + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0xa4) + 0x2c)" ( (binary_expression "*(int *)(iVar4 + 0xa4) + 0x2c" (pointer_expression "*(int *)(iVar4 + 0xa4)" * (cast_expression "(int *)(iVar4 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xa4)" ( (binary_expression "iVar4 + 0xa4" identifier + number_literal) )))) + number_literal) )))) == (pointer_expression "*(int *)(param_1[0x29] + 0x2c)" * (cast_expression "(int *)(param_1[0x29] + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x29] + 0x2c)" ( (binary_expression "param_1[0x29] + 0x2c" (subscript_expression "param_1[0x29]" identifier [ number_literal ]) + number_literal) ))))) )) && (parenthesized_expression "(((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8)))))" ( (parenthesized_expression "((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))" ( (binary_expression "(DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8)))" (binary_expression "(DAT_001d03e0 & 3) != 2" (parenthesized_expression "(DAT_001d03e0 & 3)" ( (binary_expression "DAT_001d03e0 & 3" identifier & number_literal) )) != number_literal) || (parenthesized_expression "(-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8)))" ( (binary_expression "-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))" number_literal < (cast_expression "(int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))" ( (binary_expression "*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8)" (pointer_expression "*(uint *)(*(int *)(iVar4 + 0xa4) + 8)" * (cast_expression "(uint *)(*(int *)(iVar4 + 0xa4) + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0xa4) + 8)" ( (binary_expression "*(int *)(iVar4 + 0xa4) + 8" (pointer_expression "*(int *)(iVar4 + 0xa4)" * (cast_expression "(int *)(iVar4 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xa4)" ( (binary_expression "iVar4 + 0xa4" identifier + number_literal) )))) + number_literal) )))) ^ (pointer_expression "*(uint *)(param_1[0x29] + 8)" * (cast_expression "(uint *)(param_1[0x29] + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0x29] + 8)" ( (binary_expression "param_1[0x29] + 8" (subscript_expression "param_1[0x29]" identifier [ number_literal ]) + number_literal) ))))) )))) ))) )) ))) )) (compound_statement "{\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }" { (expression_statement "iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);" (assignment_expression "iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1)" identifier = (call_expression "_bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1)" identifier (argument_list "(DAT_001d0414,iVar4,param_1[0x2b],param_1)" ( identifier , identifier , (subscript_expression "param_1[0x2b]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (iVar4 != 0) goto LAB_00047fcb;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00047fcb;" goto statement_identifier ;)) (if_statement "if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }" if (parenthesized_expression "(*(int *)(puVar2 + 0x1c) == 0)" ( (binary_expression "*(int *)(puVar2 + 0x1c) == 0" (pointer_expression "*(int *)(puVar2 + 0x1c)" * (cast_expression "(int *)(puVar2 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x1c)" ( (binary_expression "puVar2 + 0x1c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n              puVar10 = puVar2;\n            }" { (expression_statement "puVar10 = puVar2;" (assignment_expression "puVar10 = puVar2" identifier = identifier) ;) })) })) })) })) (expression_statement "puVar2 = (undefined *)FUN_00025b20(puVar2,0);" (assignment_expression "puVar2 = (undefined *)FUN_00025b20(puVar2,0)" identifier = (cast_expression "(undefined *)FUN_00025b20(puVar2,0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00025b20(puVar2,0)" identifier (argument_list "(puVar2,0)" ( identifier , number_literal ))))) ;) (expression_statement "puVar11 = puVar10;" (assignment_expression "puVar11 = puVar10" identifier = identifier) ;) }) while (parenthesized_expression "(puVar2 != (undefined *)0x0)" ( (binary_expression "puVar2 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "param_3 = 0x17e;" (assignment_expression "param_3 = 0x17e" identifier = number_literal) ;) (if_statement "if (puVar10 != (undefined *)0x0) {\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }" if (parenthesized_expression "(puVar10 != (undefined *)0x0)" ( (binary_expression "puVar10 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }" { (expression_statement "FUN_00026550(puVar10 + 8,param_1,0,puVar10);" (call_expression "FUN_00026550(puVar10 + 8,param_1,0,puVar10)" identifier (argument_list "(puVar10 + 8,param_1,0,puVar10)" ( (binary_expression "puVar10 + 8" identifier + number_literal) , identifier , number_literal , identifier ))) ;) (return_statement "return puVar10;" return identifier ;) })) })) (if_statement "if (DAT_001cfba8 == 0) {\n    ppuVar9 = &PTR_s__text_001ce860;\n    do {\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    } while (ppuVar9 != (undefined **)&DAT_001ce938);\n    DAT_001cfba8 = 1;\n  }" if (parenthesized_expression "(DAT_001cfba8 == 0)" ( (binary_expression "DAT_001cfba8 == 0" identifier == number_literal) )) (compound_statement "{\n    ppuVar9 = &PTR_s__text_001ce860;\n    do {\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    } while (ppuVar9 != (undefined **)&DAT_001ce938);\n    DAT_001cfba8 = 1;\n  }" { (expression_statement "ppuVar9 = &PTR_s__text_001ce860;" (assignment_expression "ppuVar9 = &PTR_s__text_001ce860" identifier = (pointer_expression "&PTR_s__text_001ce860" & identifier)) ;) (do_statement "do {\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    } while (ppuVar9 != (undefined **)&DAT_001ce938);" do (compound_statement "{\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    }" { (if_statement "if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }" if (parenthesized_expression "(*ppuVar9 != (undefined *)0x0)" ( (binary_expression "*ppuVar9 != (undefined *)0x0" (pointer_expression "*ppuVar9" * identifier) != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }" { (expression_statement "puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);" (assignment_expression "puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0)" identifier = (cast_expression "(undefined *)FUN_000256d0(*ppuVar9,0,0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000256d0(*ppuVar9,0,0)" identifier (argument_list "(*ppuVar9,0,0)" ( (pointer_expression "*ppuVar9" * identifier) , number_literal , number_literal ))))) ;) (expression_statement "ppuVar9[2] = puVar2;" (assignment_expression "ppuVar9[2] = puVar2" (subscript_expression "ppuVar9[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }" if (parenthesized_expression "((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0))" ( (binary_expression "(puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)" (parenthesized_expression "(puVar2 != (undefined *)0x0)" ( (binary_expression "puVar2 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*(int *)(puVar2 + 0x4c) == 0)" ( (binary_expression "*(int *)(puVar2 + 0x4c) == 0" (pointer_expression "*(int *)(puVar2 + 0x4c)" * (cast_expression "(int *)(puVar2 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x4c)" ( (binary_expression "puVar2 + 0x4c" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }" { (expression_statement "*(undefined **)(puVar2 + 0x4c) = ppuVar9[1];" (assignment_expression "*(undefined **)(puVar2 + 0x4c) = ppuVar9[1]" (pointer_expression "*(undefined **)(puVar2 + 0x4c)" * (cast_expression "(undefined **)(puVar2 + 0x4c)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 0x4c)" ( (binary_expression "puVar2 + 0x4c" identifier + number_literal) )))) = (subscript_expression "ppuVar9[1]" identifier [ number_literal ])) ;) })) })) (expression_statement "ppuVar9 = ppuVar9 + 6;" (assignment_expression "ppuVar9 = ppuVar9 + 6" identifier = (binary_expression "ppuVar9 + 6" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppuVar9 != (undefined **)&DAT_001ce938)" ( (binary_expression "ppuVar9 != (undefined **)&DAT_001ce938" identifier != (cast_expression "(undefined **)&DAT_001ce938" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_001ce938" & identifier))) )) ;) (expression_statement "DAT_001cfba8 = 1;" (assignment_expression "DAT_001cfba8 = 1" identifier = number_literal) ;) })) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "bVar15 = (DAT_001d03e0 & 2) == 0;" (assignment_expression "bVar15 = (DAT_001d03e0 & 2) == 0" identifier = (binary_expression "(DAT_001d03e0 & 2) == 0" (parenthesized_expression "(DAT_001d03e0 & 2)" ( (binary_expression "DAT_001d03e0 & 2" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar15) {\n    iVar5 = 0xd;\n    pbVar7 = (byte *)*param_1;\n    pbVar8 = (byte *)".gnu.warning.";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if (((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)) {\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }\n  }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n    iVar5 = 0xd;\n    pbVar7 = (byte *)*param_1;\n    pbVar8 = (byte *)".gnu.warning.";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if (((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)) {\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }\n  }" { (expression_statement "iVar5 = 0xd;" (assignment_expression "iVar5 = 0xd" identifier = number_literal) ;) (expression_statement "pbVar7 = (byte *)*param_1;" (assignment_expression "pbVar7 = (byte *)*param_1" identifier = (cast_expression "(byte *)*param_1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "pbVar8 = (byte *)".gnu.warning.";" (assignment_expression "pbVar8 = (byte *)".gnu.warning."" identifier = (cast_expression "(byte *)".gnu.warning."" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".gnu.warning."" " string_content "))) ;) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar7 < *pbVar8;" (assignment_expression "bVar13 = *pbVar7 < *pbVar8" identifier = (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "bVar15 = *pbVar7 == *pbVar8;" (assignment_expression "bVar15 = *pbVar7 == *pbVar8" identifier = (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if (((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)) {\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }" if (parenthesized_expression "(((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0))" ( (binary_expression "((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)" (parenthesized_expression "((!bVar13 && !bVar15) == bVar13)" ( (binary_expression "(!bVar13 && !bVar15) == bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" ( (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier) )) && (parenthesized_expression "(puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)" ( (comma_expression "puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0" (assignment_expression "puVar2 = DAT_001ce868" identifier = identifier) , (binary_expression "DAT_001ce868 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }" { (labeled_statement "LAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);" statement_identifier : (expression_statement "FUN_00026550(puVar2 + 8,param_1,0,puVar2);" (call_expression "FUN_00026550(puVar2 + 8,param_1,0,puVar2)" identifier (argument_list "(puVar2 + 8,param_1,0,puVar2)" ( (binary_expression "puVar2 + 8" identifier + number_literal) , identifier , number_literal , identifier ))) ;)) (return_statement "return puVar2;" return identifier ;) })) })) (expression_statement "local_48 = param_1[5];" (assignment_expression "local_48 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (if_statement "if ((DAT_001d03e0 & 3) != 2) {\n    iVar5 = param_1[0x2b];\n    piVar3 = param_1;\n    while (piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0) {\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }\n  }" if (parenthesized_expression "((DAT_001d03e0 & 3) != 2)" ( (binary_expression "(DAT_001d03e0 & 3) != 2" (parenthesized_expression "(DAT_001d03e0 & 3)" ( (binary_expression "DAT_001d03e0 & 3" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    iVar5 = param_1[0x2b];\n    piVar3 = param_1;\n    while (piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0) {\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }\n  }" { (expression_statement "iVar5 = param_1[0x2b];" (assignment_expression "iVar5 = param_1[0x2b]" identifier = (subscript_expression "param_1[0x2b]" identifier [ number_literal ])) ;) (expression_statement "piVar3 = param_1;" (assignment_expression "piVar3 = param_1" identifier = identifier) ;) (while_statement "while (piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0) {\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }" while (parenthesized_expression "(piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0)" ( (comma_expression "piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0" (assignment_expression "piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3)" identifier = (cast_expression "(int *)bfd_get_next_section_by_name(iVar5,piVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_get_next_section_by_name(iVar5,piVar3)" identifier (argument_list "(iVar5,piVar3)" ( identifier , identifier ))))) , (binary_expression "piVar3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }" { (expression_statement "iVar5 = piVar3[0x2b];" (assignment_expression "iVar5 = piVar3[0x2b]" identifier = (subscript_expression "piVar3[0x2b]" identifier [ number_literal ])) ;) (if_statement "if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }" if (parenthesized_expression "((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         )" ( (binary_expression "(((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))" (parenthesized_expression "(((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0))" ( (binary_expression "((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)" (parenthesized_expression "((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           )" ( (binary_expression "(piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)" (parenthesized_expression "(piVar3[0x15] == 0)" ( (binary_expression "piVar3[0x15] == 0" (subscript_expression "piVar3[0x15]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)" ( (binary_expression "((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0" (binary_expression "((local_48 ^ piVar3[5]) & 3) == 0" (parenthesized_expression "((local_48 ^ piVar3[5]) & 3)" ( (binary_expression "(local_48 ^ piVar3[5]) & 3" (parenthesized_expression "(local_48 ^ piVar3[5])" ( (binary_expression "local_48 ^ piVar3[5]" identifier ^ (subscript_expression "piVar3[5]" identifier [ number_literal ])) )) & number_literal) )) == number_literal) && (binary_expression "(piVar3[5] & 0x8000U) == 0" (parenthesized_expression "(piVar3[5] & 0x8000U)" ( (binary_expression "piVar3[5] & 0x8000U" (subscript_expression "piVar3[5]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "((*(byte *)(iVar5 + 0x29) & 8) == 0)" ( (binary_expression "(*(byte *)(iVar5 + 0x29) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x29) & 8)" ( (binary_expression "*(byte *)(iVar5 + 0x29) & 8" (pointer_expression "*(byte *)(iVar5 + 0x29)" * (cast_expression "(byte *)(iVar5 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x29)" ( (binary_expression "iVar5 + 0x29" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))" ( (parenthesized_expression "(*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0))" ( (binary_expression "*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)" (binary_expression "*(int *)(iVar5 + 0xa4) != 0" (pointer_expression "*(int *)(iVar5 + 0xa4)" * (cast_expression "(int *)(iVar5 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xa4)" ( (binary_expression "iVar5 + 0xa4" identifier + number_literal) )))) != number_literal) && (parenthesized_expression "((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10)" ( (binary_expression "*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10" (pointer_expression "*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24)" * (cast_expression "(byte *)(*(int *)(iVar5 + 0xa4) + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0xa4) + 0x24)" ( (binary_expression "*(int *)(iVar5 + 0xa4) + 0x24" (pointer_expression "*(int *)(iVar5 + 0xa4)" * (cast_expression "(int *)(iVar5 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xa4)" ( (binary_expression "iVar5 + 0xa4" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }" { (expression_statement "iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);" (assignment_expression "iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1)" identifier = (call_expression "_bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1)" identifier (argument_list "(iVar5,piVar3,param_1[0x2b],param_1)" ( identifier , identifier , (subscript_expression "param_1[0x2b]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }" { (expression_statement "local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;" (assignment_expression "local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8" identifier = (binary_expression "(piVar3[5] ^ 8U | local_48 ^ 8) ^ 8" (parenthesized_expression "(piVar3[5] ^ 8U | local_48 ^ 8)" ( (binary_expression "piVar3[5] ^ 8U | local_48 ^ 8" (binary_expression "piVar3[5] ^ 8U" (subscript_expression "piVar3[5]" identifier [ number_literal ]) ^ number_literal) | (binary_expression "local_48 ^ 8" identifier ^ number_literal)) )) ^ number_literal)) ;) })) (expression_statement "iVar5 = piVar3[0x2b];" (assignment_expression "iVar5 = piVar3[0x2b]" identifier = (subscript_expression "piVar3[0x2b]" identifier [ number_literal ])) ;) })) })) })) (if_statement "if ((local_48 & 0x2001) == 0) {\n    local_44 = &PTR_s__comment_001ce920;\n    goto LAB_00047da5;\n  }" if (parenthesized_expression "((local_48 & 0x2001) == 0)" ( (binary_expression "(local_48 & 0x2001) == 0" (parenthesized_expression "(local_48 & 0x2001)" ( (binary_expression "local_48 & 0x2001" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    local_44 = &PTR_s__comment_001ce920;\n    goto LAB_00047da5;\n  }" { (expression_statement "local_44 = &PTR_s__comment_001ce920;" (assignment_expression "local_44 = &PTR_s__comment_001ce920" identifier = (pointer_expression "&PTR_s__comment_001ce920" & identifier)) ;) (goto_statement "goto LAB_00047da5;" goto statement_identifier ;) })) (if_statement "if ((local_48 & 1) == 0) {\n    local_44 = (undefined **)0x0;\n    local_40 = (undefined *)0x0;\n    goto LAB_00047db8;\n  }" if (parenthesized_expression "((local_48 & 1) == 0)" ( (binary_expression "(local_48 & 1) == 0" (parenthesized_expression "(local_48 & 1)" ( (binary_expression "local_48 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    local_44 = (undefined **)0x0;\n    local_40 = (undefined *)0x0;\n    goto LAB_00047db8;\n  }" { (expression_statement "local_44 = (undefined **)0x0;" (assignment_expression "local_44 = (undefined **)0x0" identifier = (cast_expression "(undefined **)0x0" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_40 = (undefined *)0x0;" (assignment_expression "local_40 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00047db8;" goto statement_identifier ;) })) (if_statement "if ((local_48 & 2) == 0) {\nLAB_00047e40:\n    local_44 = &PTR_s__bss_001ce8c0;\n    if (((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)) {\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }\n  }\n  else if ((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)) {\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }" if (parenthesized_expression "((local_48 & 2) == 0)" ( (binary_expression "(local_48 & 2) == 0" (parenthesized_expression "(local_48 & 2)" ( (binary_expression "local_48 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00047e40:\n    local_44 = &PTR_s__bss_001ce8c0;\n    if (((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)) {\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }\n  }" { (labeled_statement "LAB_00047e40:\n    local_44 = &PTR_s__bss_001ce8c0;" statement_identifier : (expression_statement "local_44 = &PTR_s__bss_001ce8c0;" (assignment_expression "local_44 = &PTR_s__bss_001ce8c0" identifier = (pointer_expression "&PTR_s__bss_001ce8c0" & identifier)) ;)) (if_statement "if (((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)) {\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }" if (parenthesized_expression "(((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0))" ( (binary_expression "((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)" (parenthesized_expression "((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0))" ( (binary_expression "(((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)" (parenthesized_expression "(((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0))" ( (binary_expression "((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)" (parenthesized_expression "((local_48 & 0x502) != 0)" ( (binary_expression "(local_48 & 0x502) != 0" (parenthesized_expression "(local_48 & 0x502)" ( (binary_expression "local_48 & 0x502" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)" ( (comma_expression "local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0" (assignment_expression "local_44 = &PTR_s__sdata_001ce908" identifier = (pointer_expression "&PTR_s__sdata_001ce908" & identifier)) , (binary_expression "(local_48 & 0x400000) == 0" (parenthesized_expression "(local_48 & 0x400000)" ( (binary_expression "local_48 & 0x400000" identifier & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "(local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)" ( (comma_expression "local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0" (assignment_expression "local_44 = &PTR_s__tdata_001ce890" identifier = (pointer_expression "&PTR_s__tdata_001ce890" & identifier)) , (binary_expression "(local_48 & 0x400) == 0" (parenthesized_expression "(local_48 & 0x400)" ( (binary_expression "local_48 & 0x400" identifier & number_literal) )) == number_literal)) ))) )) && (parenthesized_expression "(local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)" ( (comma_expression "local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0" (assignment_expression "local_44 = &PTR_s__data_001ce8a8" identifier = (pointer_expression "&PTR_s__data_001ce8a8" & identifier)) , (binary_expression "(local_48 & 8) != 0" (parenthesized_expression "(local_48 & 8)" ( (binary_expression "local_48 & 8" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }" { (expression_statement "bVar14 = uVar1 < 5;" (assignment_expression "bVar14 = uVar1 < 5" identifier = (binary_expression "uVar1 < 5" identifier < number_literal)) ;) (expression_statement "bVar13 = uVar1 == 5;" (assignment_expression "bVar13 = uVar1 == 5" identifier = (binary_expression "uVar1 == 5" identifier == number_literal)) ;) (if_statement "if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }" if (parenthesized_expression "(bVar13)" ( identifier )) (compound_statement "{\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }" { (if_statement "if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;" if (parenthesized_expression "((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9))" ( (binary_expression "(local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)" (parenthesized_expression "(local_34 == (undefined *)0x4)" ( (binary_expression "local_34 == (undefined *)0x4" identifier == (cast_expression "(undefined *)0x4" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_34 == (undefined *)0x9)" ( (binary_expression "local_34 == (undefined *)0x9" identifier == (cast_expression "(undefined *)0x9" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_00047ebf;" goto statement_identifier ;)) }) (else_clause "else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }" else (compound_statement "{\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }" { (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (expression_statement "pbVar7 = (byte *)param_2;" (assignment_expression "pbVar7 = (byte *)param_2" identifier = (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar8 = &DAT_000ae302;" (assignment_expression "pbVar8 = &DAT_000ae302" identifier = (pointer_expression "&DAT_000ae302" & identifier)) ;) (do_statement "do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);" do (compound_statement "{\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar7 < *pbVar8;" (assignment_expression "bVar14 = *pbVar7 < *pbVar8" identifier = (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "bVar13 = *pbVar7 == *pbVar8;" (assignment_expression "bVar13 = *pbVar7 == *pbVar8" identifier = (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }" if (parenthesized_expression "((!bVar14 && !bVar13) == bVar14)" ( (binary_expression "(!bVar14 && !bVar13) == bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" ( (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }" { (labeled_statement "LAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;" statement_identifier : (expression_statement "local_44 = (undefined **)&DAT_001ce8d8;" (assignment_expression "local_44 = (undefined **)&DAT_001ce8d8" identifier = (cast_expression "(undefined **)&DAT_001ce8d8" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_001ce8d8" & identifier))) ;)) (if_statement "if ((local_48 & 2) != 0) goto LAB_00047da5;" if (parenthesized_expression "((local_48 & 2) != 0)" ( (binary_expression "(local_48 & 2) != 0" (parenthesized_expression "(local_48 & 2)" ( (binary_expression "local_48 & 2" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00047da5;" goto statement_identifier ;)) })) }))) (expression_statement "local_44 = &PTR_s__text_001ce860;" (assignment_expression "local_44 = &PTR_s__text_001ce860" identifier = (pointer_expression "&PTR_s__text_001ce860" & identifier)) ;) (if_statement "if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }" if (parenthesized_expression "((local_48 & 0x10) == 0)" ( (binary_expression "(local_48 & 0x10) == 0" (parenthesized_expression "(local_48 & 0x10)" ( (binary_expression "local_48 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        local_44 = (undefined **)&DAT_001ce878;\n      }" { (expression_statement "local_44 = (undefined **)&DAT_001ce878;" (assignment_expression "local_44 = (undefined **)&DAT_001ce878" identifier = (cast_expression "(undefined **)&DAT_001ce878" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_001ce878" & identifier))) ;) })) })) }) (else_clause "else if ((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)) {\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }" else (if_statement "if ((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)) {\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }" if (parenthesized_expression "((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14))" ( (binary_expression "(local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)" (parenthesized_expression "(local_34 != (undefined *)0x7)" ( (binary_expression "local_34 != (undefined *)0x7" identifier != (cast_expression "(undefined *)0x7" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_44 = &PTR_s__interp_001ce8f0, !bVar14)" ( (comma_expression "local_44 = &PTR_s__interp_001ce8f0, !bVar14" (assignment_expression "local_44 = &PTR_s__interp_001ce8f0" identifier = (pointer_expression "&PTR_s__interp_001ce8f0" & identifier)) , (unary_expression "!bVar14" ! identifier)) ))) )) (compound_statement "{\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }" { (expression_statement "bVar14 = uVar1 < 5;" (assignment_expression "bVar14 = uVar1 < 5" identifier = (binary_expression "uVar1 < 5" identifier < number_literal)) ;) (expression_statement "bVar13 = uVar1 == 5;" (assignment_expression "bVar13 = uVar1 == 5" identifier = (binary_expression "uVar1 == 5" identifier == number_literal)) ;) (if_statement "if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (compound_statement "{\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }" { (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (expression_statement "pbVar7 = (byte *)param_2;" (assignment_expression "pbVar7 = (byte *)param_2" identifier = (cast_expression "(byte *)param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar8 = (byte *)".note";" (assignment_expression "pbVar8 = (byte *)".note"" identifier = (cast_expression "(byte *)".note"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".note"" " string_content "))) ;) (do_statement "do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);" do (compound_statement "{\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar7 < *pbVar8;" (assignment_expression "bVar14 = *pbVar7 < *pbVar8" identifier = (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "bVar13 = *pbVar7 == *pbVar8;" (assignment_expression "bVar13 = *pbVar7 == *pbVar8" identifier = (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "local_44 = &PTR_s__interp_001ce8f0;" (assignment_expression "local_44 = &PTR_s__interp_001ce8f0" identifier = (pointer_expression "&PTR_s__interp_001ce8f0" & identifier)) ;) (if_statement "if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;" if (parenthesized_expression "((!bVar14 && !bVar13) == bVar14)" ( (binary_expression "(!bVar14 && !bVar13) == bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" ( (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) (goto_statement "goto LAB_00047da5;" goto statement_identifier ;)) })) (goto_statement "goto LAB_00047e40;" goto statement_identifier ;) })))) (labeled_statement "LAB_00047da5:\n  local_40 = local_44[2];" statement_identifier : (expression_statement "local_40 = local_44[2];" (assignment_expression "local_40 = local_44[2]" identifier = (subscript_expression "local_44[2]" identifier [ number_literal ])) ;)) (if_statement "if (local_40 != (undefined *)0x0) goto LAB_00047db8;" if (parenthesized_expression "(local_40 != (undefined *)0x0)" ( (binary_expression "local_40 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00047db8;" goto statement_identifier ;)) (if_statement "if (*local_44 == (undefined *)0x0) {\n    if (DAT_001d03a0 != (undefined *)0x0) {\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }\n  }\n  else {\n    local_40 = (undefined *)FUN_000256d0(*local_44,0,0);\n    local_44[2] = local_40;\nLAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  }" if (parenthesized_expression "(*local_44 == (undefined *)0x0)" ( (binary_expression "*local_44 == (undefined *)0x0" (pointer_expression "*local_44" * identifier) == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (DAT_001d03a0 != (undefined *)0x0) {\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }\n  }" { (if_statement "if (DAT_001d03a0 != (undefined *)0x0) {\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }" if (parenthesized_expression "(DAT_001d03a0 != (undefined *)0x0)" ( (binary_expression "DAT_001d03a0 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }" { (expression_statement "local_38 = (undefined *)0x0;" (assignment_expression "local_38 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_28 = (undefined *)0x0;" (assignment_expression "local_28 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_40 = (undefined *)0x0;" (assignment_expression "local_40 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_34 = (undefined *)0x0;" (assignment_expression "local_34 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar11 = DAT_001d03a0;" (assignment_expression "puVar11 = DAT_001d03a0" identifier = identifier) ;) (expression_statement "puVar2 = (undefined *)0x0;" (assignment_expression "puVar2 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);" do (compound_statement "{\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      }" { (expression_statement "puVar10 = puVar11;" (assignment_expression "puVar10 = puVar11" identifier = identifier) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar13 = *(int *)(puVar10 + 0x48) == 0;" (assignment_expression "bVar13 = *(int *)(puVar10 + 0x48) == 0" identifier = (binary_expression "*(int *)(puVar10 + 0x48) == 0" (pointer_expression "*(int *)(puVar10 + 0x48)" * (cast_expression "(int *)(puVar10 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x48)" ( (binary_expression "puVar10 + 0x48" identifier + number_literal) )))) == number_literal)) ;) (if_statement "if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }" if (parenthesized_expression "(*(int *)(puVar10 + 0x48) < 0)" ( (binary_expression "*(int *)(puVar10 + 0x48) < 0" (pointer_expression "*(int *)(puVar10 + 0x48)" * (cast_expression "(int *)(puVar10 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x48)" ( (binary_expression "puVar10 + 0x48" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }" { (labeled_statement "LAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);" statement_identifier : (expression_statement "iVar5 = *(int *)(puVar10 + 0x1c);" (assignment_expression "iVar5 = *(int *)(puVar10 + 0x1c)" identifier = (pointer_expression "*(int *)(puVar10 + 0x1c)" * (cast_expression "(int *)(puVar10 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x1c)" ( (binary_expression "puVar10 + 0x1c" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }" statement_identifier : (if_statement "if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }" { (expression_statement "uVar1 = *(uint *)(iVar5 + 0x14);" (assignment_expression "uVar1 = *(uint *)(iVar5 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "puVar2 = local_40;" (assignment_expression "puVar2 = local_40" identifier = identifier) ;) (labeled_statement "joined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }" statement_identifier : (if_statement "if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }" if (parenthesized_expression "(((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0))" ( (binary_expression "((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)" (parenthesized_expression "((uVar1 & 1) != 0)" ( (binary_expression "(uVar1 & 1) != 0" (parenthesized_expression "(uVar1 & 1)" ( (binary_expression "uVar1 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)" ( (comma_expression "local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0" (assignment_expression "local_40 = puVar2" identifier = identifier) , (comma_expression "local_28 = puVar10, (uVar1 & 8) != 0" (assignment_expression "local_28 = puVar10" identifier = identifier) , (binary_expression "(uVar1 & 8) != 0" (parenthesized_expression "(uVar1 & 8)" ( (binary_expression "uVar1 & 8" identifier & number_literal) )) != number_literal))) ))) )) (compound_statement "{\n              local_38 = puVar10;\n            }" { (expression_statement "local_38 = puVar10;" (assignment_expression "local_38 = puVar10" identifier = identifier) ;) }))) }))) }) (else_clause "else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }" else (compound_statement "{\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }" { (expression_statement "pbVar7 = *(byte **)(puVar10 + 0x18);" (assignment_expression "pbVar7 = *(byte **)(puVar10 + 0x18)" identifier = (pointer_expression "*(byte **)(puVar10 + 0x18)" * (cast_expression "(byte **)(puVar10 + 0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x18)" ( (binary_expression "puVar10 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" identifier = number_literal) ;) (expression_statement "pbVar8 = pbVar7;" (assignment_expression "pbVar8 = pbVar7" identifier = identifier) ;) (expression_statement "pbVar12 = &DAT_000ae302;" (assignment_expression "pbVar12 = &DAT_000ae302" identifier = (pointer_expression "&DAT_000ae302" & identifier)) ;) (do_statement "do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);" do (compound_statement "{\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar8 < *pbVar12;" (assignment_expression "bVar14 = *pbVar8 < *pbVar12" identifier = (binary_expression "*pbVar8 < *pbVar12" (pointer_expression "*pbVar8" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar13 = *pbVar8 == *pbVar12;" (assignment_expression "bVar13 = *pbVar8 == *pbVar12" identifier = (binary_expression "*pbVar8 == *pbVar12" (pointer_expression "*pbVar8" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;" if (parenthesized_expression "((!bVar14 && !bVar13) != bVar14)" ( (binary_expression "(!bVar14 && !bVar13) != bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" ( (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00048272;" goto statement_identifier ;)) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "bVar14 = !bVar16;" (assignment_expression "bVar14 = !bVar16" identifier = (unary_expression "!bVar16" ! identifier)) ;) (if_statement "if (!bVar14) break;" if (parenthesized_expression "(!bVar14)" ( (unary_expression "!bVar14" ! identifier) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (expression_statement "pbVar8 = &DAT_000ae31b;" (assignment_expression "pbVar8 = &DAT_000ae31b" identifier = (pointer_expression "&DAT_000ae31b" & identifier)) ;) (expression_statement "pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;" (assignment_expression "pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4" identifier = (binary_expression "pbVar7 + (pbVar7[4] == 0x61) + 4" (binary_expression "pbVar7 + (pbVar7[4] == 0x61)" identifier + (parenthesized_expression "(pbVar7[4] == 0x61)" ( (binary_expression "pbVar7[4] == 0x61" (subscript_expression "pbVar7[4]" identifier [ number_literal ]) == number_literal) ))) + number_literal)) ;) (do_statement "do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);" do (compound_statement "{\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar8 < *pbVar12;" (assignment_expression "bVar13 = *pbVar8 < *pbVar12" identifier = (binary_expression "*pbVar8 < *pbVar12" (pointer_expression "*pbVar8" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar14 = *pbVar8 == *pbVar12;" (assignment_expression "bVar14 = *pbVar8 == *pbVar12" identifier = (binary_expression "*pbVar8 == *pbVar12" (pointer_expression "*pbVar8" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) (if_statement "if ((!bVar13 && !bVar14) == bVar13) break;" if (parenthesized_expression "((!bVar13 && !bVar14) == bVar13)" ( (binary_expression "(!bVar13 && !bVar14) == bVar13" (parenthesized_expression "(!bVar13 && !bVar14)" ( (binary_expression "!bVar13 && !bVar14" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar14" ! identifier)) )) == identifier) )) (break_statement "break;" break ;)) (expression_statement "bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);" (assignment_expression "bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61)" identifier = (binary_expression "(*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61)" (parenthesized_expression "(*(char *)(*param_1 + 4) == 'a')" ( (binary_expression "*(char *)(*param_1 + 4) == 'a'" (pointer_expression "*(char *)(*param_1 + 4)" * (cast_expression "(char *)(*param_1 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 4)" ( (binary_expression "*param_1 + 4" (pointer_expression "*param_1" * identifier) + number_literal) )))) == (char_literal "'a'" ' character ')) )) == (parenthesized_expression "(pbVar7[4] == 0x61)" ( (binary_expression "pbVar7[4] == 0x61" (subscript_expression "pbVar7[4]" identifier [ number_literal ]) == number_literal) )))) ;) (if_statement "if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }" if (parenthesized_expression "((local_34 == (undefined *)0x0) || (bVar14))" ( (binary_expression "(local_34 == (undefined *)0x0) || (bVar14)" (parenthesized_expression "(local_34 == (undefined *)0x0)" ( (binary_expression "local_34 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(bVar14)" ( identifier ))) )) (compound_statement "{\n            local_34 = puVar10;\n          }" { (expression_statement "local_34 = puVar10;" (assignment_expression "local_34 = puVar10" identifier = identifier) ;) })) (expression_statement "iVar5 = *(int *)(puVar10 + 0x1c);" (assignment_expression "iVar5 = *(int *)(puVar10 + 0x1c)" identifier = (pointer_expression "*(int *)(puVar10 + 0x1c)" * (cast_expression "(int *)(puVar10 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x1c)" ( (binary_expression "puVar10 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;" if (parenthesized_expression "((local_40 != (undefined *)0x0) && (!bVar14))" ( (binary_expression "(local_40 != (undefined *)0x0) && (!bVar14)" (parenthesized_expression "(local_40 != (undefined *)0x0)" ( (binary_expression "local_40 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(!bVar14)" ( (unary_expression "!bVar14" ! identifier) ))) )) (goto_statement "goto LAB_00048240;" goto statement_identifier ;)) (if_statement "if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }" { (expression_statement "uVar1 = *(uint *)(iVar5 + 0x14);" (assignment_expression "uVar1 = *(uint *)(iVar5 + 0x14)" identifier = (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "puVar2 = puVar10;" (assignment_expression "puVar2 = puVar10" identifier = identifier) ;) (goto_statement "goto joined_r0x00048289;" goto statement_identifier ;) })) }))) (expression_statement "puVar2 = puVar10;" (assignment_expression "puVar2 = puVar10" identifier = identifier) ;) (expression_statement "puVar11 = *(undefined **)(puVar10 + 0x10);" (assignment_expression "puVar11 = *(undefined **)(puVar10 + 0x10)" identifier = (pointer_expression "*(undefined **)(puVar10 + 0x10)" * (cast_expression "(undefined **)(puVar10 + 0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(*(undefined **)(puVar10 + 0x10) != (undefined *)0x0)" ( (binary_expression "*(undefined **)(puVar10 + 0x10) != (undefined *)0x0" (pointer_expression "*(undefined **)(puVar10 + 0x10)" * (cast_expression "(undefined **)(puVar10 + 0x10)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x10)" ( (binary_expression "puVar10 + 0x10" identifier + number_literal) )))) != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }" if (parenthesized_expression "((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0))" ( (binary_expression "(((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)" (parenthesized_expression "(((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0))" ( (binary_expression "((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)" (parenthesized_expression "((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))" ( (binary_expression "(local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0)" (parenthesized_expression "(local_40 == (undefined *)0x0)" ( (binary_expression "local_40 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_40 = local_34, local_34 == (undefined *)0x0)" ( (comma_expression "local_40 = local_34, local_34 == (undefined *)0x0" (assignment_expression "local_40 = local_34" identifier = identifier) , (binary_expression "local_34 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(local_40 = local_38, local_38 == (undefined *)0x0)" ( (comma_expression "local_40 = local_38, local_38 == (undefined *)0x0" (assignment_expression "local_40 = local_38" identifier = identifier) , (binary_expression "local_38 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(local_40 = puVar2, local_28 != (undefined *)0x0)" ( (comma_expression "local_40 = puVar2, local_28 != (undefined *)0x0" (assignment_expression "local_40 = puVar2" identifier = identifier) , (binary_expression "local_28 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        local_40 = local_28;\n      }" { (expression_statement "local_40 = local_28;" (assignment_expression "local_40 = local_28" identifier = identifier) ;) })) (expression_statement "local_44[2] = local_40;" (assignment_expression "local_44[2] = local_40" (subscript_expression "local_44[2]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_00048089;" goto statement_identifier ;) })) }) (else_clause "else {\n    local_40 = (undefined *)FUN_000256d0(*local_44,0,0);\n    local_44[2] = local_40;\nLAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  }" else (compound_statement "{\n    local_40 = (undefined *)FUN_000256d0(*local_44,0,0);\n    local_44[2] = local_40;\nLAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  }" { (expression_statement "local_40 = (undefined *)FUN_000256d0(*local_44,0,0);" (assignment_expression "local_40 = (undefined *)FUN_000256d0(*local_44,0,0)" identifier = (cast_expression "(undefined *)FUN_000256d0(*local_44,0,0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000256d0(*local_44,0,0)" identifier (argument_list "(*local_44,0,0)" ( (pointer_expression "*local_44" * identifier) , number_literal , number_literal ))))) ;) (expression_statement "local_44[2] = local_40;" (assignment_expression "local_44[2] = local_40" (subscript_expression "local_44[2]" identifier [ number_literal ]) = identifier) ;) (labeled_statement "LAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;" statement_identifier : (if_statement "if (local_40 != (undefined *)0x0) goto LAB_00047db8;" if (parenthesized_expression "(local_40 != (undefined *)0x0)" ( (binary_expression "local_40 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00047db8;" goto statement_identifier ;))) }))) (expression_statement "local_40 = (undefined *)\n             FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         );" (assignment_expression "local_40 = (undefined *)\n             FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         )" identifier = (cast_expression "(undefined *)\n             FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         )" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         )" identifier (argument_list "(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         )" ( identifier , identifier , (binary_expression "local_44 + 2" identifier + number_literal) , identifier ))))) ;) (if_statement "if (local_40 == (undefined *)0x0) {\n    local_40 = DAT_001d03a0;\n  }" if (parenthesized_expression "(local_40 == (undefined *)0x0)" ( (binary_expression "local_40 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_40 = DAT_001d03a0;\n  }" { (expression_statement "local_40 = DAT_001d03a0;" (assignment_expression "local_40 = DAT_001d03a0" identifier = identifier) ;) })) (labeled_statement "LAB_00047db8:\n  puVar2 = (undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0);" statement_identifier : (expression_statement "puVar2 = (undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0);" (assignment_expression "puVar2 = (undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0)" identifier = (cast_expression "(undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0)" identifier (argument_list "(param_1,param_2,param_3,local_40,local_44,0,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal ))))) ;)) (return_statement "return puVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = BOOL) ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (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 (subscript_expression IDENT [ LIT ]) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) != LIT) && (parenthesized_expression ( (parenthesized_expression ( (binary_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) )))) ^ IDENT) )) & LIT) )) == LIT) && (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) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ))) )) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (string_literal " string_content ")) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) })) })) }))) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) })) }))) }))))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , LIT ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (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 = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (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) )))) ^ (subscript_expression IDENT [ LIT ])) )) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (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) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) || (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (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) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto 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) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT , IDENT ))) ;) (return_statement return IDENT ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , LIT , LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT))) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT , IDENT ))) ;)) (return_statement return IDENT ;) })) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ (subscript_expression IDENT [ LIT ])) )) & LIT) )) == LIT) && (binary_expression (parenthesized_expression ( (binary_expression (subscript_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) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) && (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) )) == LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) ^ LIT) | (binary_expression IDENT ^ LIT)) )) ^ LIT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression & IDENT)) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression & IDENT)) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression & IDENT)) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT))) ;) })) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression & IDENT)) , (unary_expression ! IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (goto_statement goto statement_identifier ;)) })) (goto_statement goto statement_identifier ;) })))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_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) )))) < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (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 IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (unary_expression ! IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) + LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == (char_literal ' character ')) )) == (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( IDENT ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (unary_expression ! IDENT) ))) )) (goto_statement goto statement_identifier ;)) (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 IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = 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) ))))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , LIT , LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , LIT , LIT ))))) ;)) (return_statement return IDENT ;) })))
(function_definition "undefined * FUN_00047ad0(int *param_1,char *param_2,int param_3)\n\n{\n  uint uVar1;\n  undefined *puVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined **ppuVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  uint local_48;\n  undefined **local_44;\n  undefined *local_40;\n  undefined *local_38;\n  undefined *local_34;\n  undefined *local_28;\n  \n  bVar17 = 0;\n  local_34 = (undefined *)0x0;\n  uVar1 = *(uint *)(*(int *)(param_1[0x2b] + 4) + 4);\n  bVar14 = uVar1 == 5;\n  iVar5 = *(int *)(*(int *)(DAT_001d0414 + 4) + 4);\n  if (bVar14) {\n    local_34 = *(undefined **)(param_1[0x29] + 4);\n  }\n  if ((DAT_001d03e0 & 3) == 2) {\nLAB_00047c3c:\n    bVar16 = false;\n  }\n  else if ((DAT_001d03e4 & 0x40) == 0) {\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }\n  if ((param_3 == 0) &&\n     (puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0)) {\n    puVar11 = (undefined *)0x0;\n    do {\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    } while (puVar2 != (undefined *)0x0);\n    param_3 = 0x17e;\n    if (puVar10 != (undefined *)0x0) {\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }\n  }\n  if (DAT_001cfba8 == 0) {\n    ppuVar9 = &PTR_s__text_001ce860;\n    do {\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    } while (ppuVar9 != (undefined **)&DAT_001ce938);\n    DAT_001cfba8 = 1;\n  }\n  bVar13 = false;\n  bVar15 = (DAT_001d03e0 & 2) == 0;\n  if (bVar15) {\n    iVar5 = 0xd;\n    pbVar7 = (byte *)*param_1;\n    pbVar8 = (byte *)".gnu.warning.";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if (((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)) {\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }\n  }\n  local_48 = param_1[5];\n  if ((DAT_001d03e0 & 3) != 2) {\n    iVar5 = param_1[0x2b];\n    piVar3 = param_1;\n    while (piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0) {\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }\n  }\n  if ((local_48 & 0x2001) == 0) {\n    local_44 = &PTR_s__comment_001ce920;\n    goto LAB_00047da5;\n  }\n  if ((local_48 & 1) == 0) {\n    local_44 = (undefined **)0x0;\n    local_40 = (undefined *)0x0;\n    goto LAB_00047db8;\n  }\n  if ((local_48 & 2) == 0) {\nLAB_00047e40:\n    local_44 = &PTR_s__bss_001ce8c0;\n    if (((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)) {\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }\n  }\n  else if ((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)) {\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }\nLAB_00047da5:\n  local_40 = local_44[2];\n  if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  if (*local_44 == (undefined *)0x0) {\n    if (DAT_001d03a0 != (undefined *)0x0) {\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }\n  }\n  else {\n    local_40 = (undefined *)FUN_000256d0(*local_44,0,0);\n    local_44[2] = local_40;\nLAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  }\n  local_40 = (undefined *)\n             FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         );\n  if (local_40 == (undefined *)0x0) {\n    local_40 = DAT_001d03a0;\n  }\nLAB_00047db8:\n  puVar2 = (undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0);\n  return puVar2;\n}" (type_identifier "undefined") (pointer_declarator "* FUN_00047ad0(int *param_1,char *param_2,int param_3)" (* "*") (function_declarator "FUN_00047ad0(int *param_1,char *param_2,int param_3)" (identifier "FUN_00047ad0") (parameter_list "(int *param_1,char *param_2,int param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) () ")")))) (compound_statement "{\n  uint uVar1;\n  undefined *puVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined **ppuVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  uint local_48;\n  undefined **local_44;\n  undefined *local_40;\n  undefined *local_38;\n  undefined *local_34;\n  undefined *local_28;\n  \n  bVar17 = 0;\n  local_34 = (undefined *)0x0;\n  uVar1 = *(uint *)(*(int *)(param_1[0x2b] + 4) + 4);\n  bVar14 = uVar1 == 5;\n  iVar5 = *(int *)(*(int *)(DAT_001d0414 + 4) + 4);\n  if (bVar14) {\n    local_34 = *(undefined **)(param_1[0x29] + 4);\n  }\n  if ((DAT_001d03e0 & 3) == 2) {\nLAB_00047c3c:\n    bVar16 = false;\n  }\n  else if ((DAT_001d03e4 & 0x40) == 0) {\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }\n  if ((param_3 == 0) &&\n     (puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0)) {\n    puVar11 = (undefined *)0x0;\n    do {\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    } while (puVar2 != (undefined *)0x0);\n    param_3 = 0x17e;\n    if (puVar10 != (undefined *)0x0) {\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }\n  }\n  if (DAT_001cfba8 == 0) {\n    ppuVar9 = &PTR_s__text_001ce860;\n    do {\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    } while (ppuVar9 != (undefined **)&DAT_001ce938);\n    DAT_001cfba8 = 1;\n  }\n  bVar13 = false;\n  bVar15 = (DAT_001d03e0 & 2) == 0;\n  if (bVar15) {\n    iVar5 = 0xd;\n    pbVar7 = (byte *)*param_1;\n    pbVar8 = (byte *)".gnu.warning.";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if (((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)) {\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }\n  }\n  local_48 = param_1[5];\n  if ((DAT_001d03e0 & 3) != 2) {\n    iVar5 = param_1[0x2b];\n    piVar3 = param_1;\n    while (piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0) {\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }\n  }\n  if ((local_48 & 0x2001) == 0) {\n    local_44 = &PTR_s__comment_001ce920;\n    goto LAB_00047da5;\n  }\n  if ((local_48 & 1) == 0) {\n    local_44 = (undefined **)0x0;\n    local_40 = (undefined *)0x0;\n    goto LAB_00047db8;\n  }\n  if ((local_48 & 2) == 0) {\nLAB_00047e40:\n    local_44 = &PTR_s__bss_001ce8c0;\n    if (((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)) {\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }\n  }\n  else if ((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)) {\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }\nLAB_00047da5:\n  local_40 = local_44[2];\n  if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  if (*local_44 == (undefined *)0x0) {\n    if (DAT_001d03a0 != (undefined *)0x0) {\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }\n  }\n  else {\n    local_40 = (undefined *)FUN_000256d0(*local_44,0,0);\n    local_44[2] = local_40;\nLAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  }\n  local_40 = (undefined *)\n             FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         );\n  if (local_40 == (undefined *)0x0) {\n    local_40 = DAT_001d03a0;\n  }\nLAB_00047db8:\n  puVar2 = (undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0);\n  return puVar2;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "undefined **ppuVar9;" (type_identifier "undefined") (pointer_declarator "**ppuVar9" (* "*") (pointer_declarator "*ppuVar9" (* "*") (identifier "ppuVar9"))) (; ";")) (declaration "undefined *puVar10;" (type_identifier "undefined") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined *puVar11;" (type_identifier "undefined") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "bool bVar13;" (primitive_type "bool") (identifier "bVar13") (; ";")) (declaration "bool bVar14;" (primitive_type "bool") (identifier "bVar14") (; ";")) (declaration "bool bVar15;" (primitive_type "bool") (identifier "bVar15") (; ";")) (declaration "bool bVar16;" (primitive_type "bool") (identifier "bVar16") (; ";")) (declaration "byte bVar17;" (type_identifier "byte") (identifier "bVar17") (; ";")) (declaration "uint local_48;" (type_identifier "uint") (identifier "local_48") (; ";")) (declaration "undefined **local_44;" (type_identifier "undefined") (pointer_declarator "**local_44" (* "*") (pointer_declarator "*local_44" (* "*") (identifier "local_44"))) (; ";")) (declaration "undefined *local_40;" (type_identifier "undefined") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "undefined *local_38;" (type_identifier "undefined") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "undefined *local_34;" (type_identifier "undefined") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "undefined *local_28;" (type_identifier "undefined") (pointer_declarator "*local_28" (* "*") (identifier "local_28")) (; ";")) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = (undefined *)0x0;" (assignment_expression "local_34 = (undefined *)0x0" (identifier "local_34") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar1 = *(uint *)(*(int *)(param_1[0x2b] + 4) + 4);" (assignment_expression "uVar1 = *(uint *)(*(int *)(param_1[0x2b] + 4) + 4)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(*(int *)(param_1[0x2b] + 4) + 4)" (* "*") (cast_expression "(uint *)(*(int *)(param_1[0x2b] + 4) + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1[0x2b] + 4) + 4)" (( "(") (binary_expression "*(int *)(param_1[0x2b] + 4) + 4" (pointer_expression "*(int *)(param_1[0x2b] + 4)" (* "*") (cast_expression "(int *)(param_1[0x2b] + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x2b] + 4)" (( "(") (binary_expression "param_1[0x2b] + 4" (subscript_expression "param_1[0x2b]" (identifier "param_1") ([ "[") (number_literal "0x2b") (] "]")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "bVar14 = uVar1 == 5;" (assignment_expression "bVar14 = uVar1 == 5" (identifier "bVar14") (= "=") (binary_expression "uVar1 == 5" (identifier "uVar1") (== "==") (number_literal "5"))) (; ";")) (expression_statement "iVar5 = *(int *)(*(int *)(DAT_001d0414 + 4) + 4);" (assignment_expression "iVar5 = *(int *)(*(int *)(DAT_001d0414 + 4) + 4)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(*(int *)(DAT_001d0414 + 4) + 4)" (* "*") (cast_expression "(int *)(*(int *)(DAT_001d0414 + 4) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_001d0414 + 4) + 4)" (( "(") (binary_expression "*(int *)(DAT_001d0414 + 4) + 4" (pointer_expression "*(int *)(DAT_001d0414 + 4)" (* "*") (cast_expression "(int *)(DAT_001d0414 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001d0414 + 4)" (( "(") (binary_expression "DAT_001d0414 + 4" (identifier "DAT_001d0414") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (bVar14) {\n    local_34 = *(undefined **)(param_1[0x29] + 4);\n  }" (if "if") (parenthesized_expression "(bVar14)" (( "(") (identifier "bVar14") () ")")) (compound_statement "{\n    local_34 = *(undefined **)(param_1[0x29] + 4);\n  }" ({ "{") (expression_statement "local_34 = *(undefined **)(param_1[0x29] + 4);" (assignment_expression "local_34 = *(undefined **)(param_1[0x29] + 4)" (identifier "local_34") (= "=") (pointer_expression "*(undefined **)(param_1[0x29] + 4)" (* "*") (cast_expression "(undefined **)(param_1[0x29] + 4)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1[0x29] + 4)" (( "(") (binary_expression "param_1[0x29] + 4" (subscript_expression "param_1[0x29]" (identifier "param_1") ([ "[") (number_literal "0x29") (] "]")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (if_statement "if ((DAT_001d03e0 & 3) == 2) {\nLAB_00047c3c:\n    bVar16 = false;\n  }\n  else if ((DAT_001d03e4 & 0x40) == 0) {\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "((DAT_001d03e0 & 3) == 2)" (( "(") (binary_expression "(DAT_001d03e0 & 3) == 2" (parenthesized_expression "(DAT_001d03e0 & 3)" (( "(") (binary_expression "DAT_001d03e0 & 3" (identifier "DAT_001d03e0") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\nLAB_00047c3c:\n    bVar16 = false;\n  }" ({ "{") (labeled_statement "LAB_00047c3c:\n    bVar16 = false;" (statement_identifier "LAB_00047c3c") (: ":") (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";"))) (} "}")) (else_clause "else if ((DAT_001d03e4 & 0x40) == 0) {\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }" (else "else") (if_statement "if ((DAT_001d03e4 & 0x40) == 0) {\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }\n  else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "((DAT_001d03e4 & 0x40) == 0)" (( "(") (binary_expression "(DAT_001d03e4 & 0x40) == 0" (parenthesized_expression "(DAT_001d03e4 & 0x40)" (( "(") (binary_expression "DAT_001d03e4 & 0x40" (identifier "DAT_001d03e4") (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    bVar16 = false;\nLAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (labeled_statement "LAB_00047b5c:\n    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }" (statement_identifier "LAB_00047b5c") (: ":") (if_statement "if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0))" (( "(") (binary_expression "((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)" (parenthesized_expression "((bVar14) && (iVar5 == 5))" (( "(") (binary_expression "(bVar14) && (iVar5 == 5)" (parenthesized_expression "(bVar14)" (( "(") (identifier "bVar14") () ")")) (&& "&&") (parenthesized_expression "(iVar5 == 5)" (( "(") (binary_expression "iVar5 == 5" (identifier "iVar5") (== "==") (number_literal "5")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar6 = param_1[5], (uVar6 & 1) != 0)" (( "(") (comma_expression "uVar6 = param_1[5], (uVar6 & 1) != 0" (assignment_expression "uVar6 = param_1[5]" (identifier "uVar6") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (, ",") (binary_expression "(uVar6 & 1) != 0" (parenthesized_expression "(uVar6 & 1)" (( "(") (binary_expression "uVar6 & 1" (identifier "uVar6") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\nLAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }\n    }" ({ "{") (labeled_statement "LAB_00047b7b:\n      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }" (statement_identifier "LAB_00047b7b") (: ":") (if_statement "if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }" (if "if") (parenthesized_expression "((*(byte *)(param_1[0x29] + 0xb) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(param_1[0x29] + 0xb) & 1) != 0" (parenthesized_expression "(*(byte *)(param_1[0x29] + 0xb) & 1)" (( "(") (binary_expression "*(byte *)(param_1[0x29] + 0xb) & 1" (pointer_expression "*(byte *)(param_1[0x29] + 0xb)" (* "*") (cast_expression "(byte *)(param_1[0x29] + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x29] + 0xb)" (( "(") (binary_expression "param_1[0x29] + 0xb" (subscript_expression "param_1[0x29]" (identifier "param_1") ([ "[") (number_literal "0x29") (] "]")) (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }\n        param_2 = ".mbind.bss";\n        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }\n      }" ({ "{") (if_statement "if (DAT_001d03a0 != (undefined *)0x0) {\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }" (if "if") (parenthesized_expression "(DAT_001d03a0 != (undefined *)0x0)" (( "(") (binary_expression "DAT_001d03a0 != (undefined *)0x0" (identifier "DAT_001d03a0") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          puVar2 = DAT_001d03a0;\n          do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);\n        }" ({ "{") (expression_statement "puVar2 = DAT_001d03a0;" (assignment_expression "puVar2 = DAT_001d03a0" (identifier "puVar2") (= "=") (identifier "DAT_001d03a0")) (; ";")) (do_statement "do {\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          } while (puVar2 != (undefined *)0x0);" (do "do") (compound_statement "{\n            puVar11 = *(undefined **)(puVar2 + 0x1c);\n            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;\n            puVar2 = *(undefined **)(puVar2 + 0x10);\n          }" ({ "{") (expression_statement "puVar11 = *(undefined **)(puVar2 + 0x1c);" (assignment_expression "puVar11 = *(undefined **)(puVar2 + 0x1c)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined **)(puVar2 + 0x1c)" (* "*") (cast_expression "(undefined **)(puVar2 + 0x1c)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + 0x1c)" (( "(") (binary_expression "puVar2 + 0x1c" (identifier "puVar2") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))) goto LAB_00047fcb;" (if "if") (parenthesized_expression "(((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       )))))" (( "(") (binary_expression "((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))" (parenthesized_expression "((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)\n                )" (( "(") (binary_expression "(puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)" (parenthesized_expression "(puVar11 != PTR__bfd_std_section_001cdfbc + 0x180)" (( "(") (binary_expression "puVar11 != PTR__bfd_std_section_001cdfbc + 0x180" (identifier "puVar11") (!= "!=") (binary_expression "PTR__bfd_std_section_001cdfbc + 0x180" (identifier "PTR__bfd_std_section_001cdfbc") (+ "+") (number_literal "0x180"))) () ")")) (&& "&&") (parenthesized_expression "(puVar11 != (undefined *)0x0)" (( "(") (binary_expression "puVar11 != (undefined *)0x0" (identifier "puVar11") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))))" (( "(") (parenthesized_expression "((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       )))" (( "(") (binary_expression "(*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&\n                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))" (binary_expression "(*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0" (parenthesized_expression "(*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1)" (( "(") (binary_expression "*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1" (pointer_expression "*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb)" (* "*") (cast_expression "(byte *)(*(int *)(puVar11 + 0xa4) + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0xa4) + 0xb)" (( "(") (binary_expression "*(int *)(puVar11 + 0xa4) + 0xb" (pointer_expression "*(int *)(puVar11 + 0xa4)" (* "*") (cast_expression "(int *)(puVar11 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0xa4)" (( "(") (binary_expression "puVar11 + 0xa4" (identifier "puVar11") (+ "+") (number_literal "0xa4")) () ")")))) (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       ))" (( "(") (parenthesized_expression "(((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))\n                       )" (( "(") (binary_expression "((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&\n                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))" (binary_expression "((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0" (parenthesized_expression "((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b)" (( "(") (binary_expression "(*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b" (parenthesized_expression "(*(uint *)(puVar11 + 0x14) ^ uVar6)" (( "(") (binary_expression "*(uint *)(puVar11 + 0x14) ^ uVar6" (pointer_expression "*(uint *)(puVar11 + 0x14)" (* "*") (cast_expression "(uint *)(puVar11 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0x14)" (( "(") (binary_expression "puVar11 + 0x14" (identifier "puVar11") (+ "+") (number_literal "0x14")) () ")")))) (^ "^") (identifier "uVar6")) () ")")) (& "&") (number_literal "0x11b")) () ")")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))" (( "(") (binary_expression "*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)" (pointer_expression "*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c)" (* "*") (cast_expression "(int *)(*(int *)(puVar11 + 0xa4) + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0xa4) + 0x2c)" (( "(") (binary_expression "*(int *)(puVar11 + 0xa4) + 0x2c" (pointer_expression "*(int *)(puVar11 + 0xa4)" (* "*") (cast_expression "(int *)(puVar11 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0xa4)" (( "(") (binary_expression "puVar11 + 0xa4" (identifier "puVar11") (+ "+") (number_literal "0xa4")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (== "==") (pointer_expression "*(int *)(param_1[0x29] + 0x2c)" (* "*") (cast_expression "(int *)(param_1[0x29] + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x29] + 0x2c)" (( "(") (binary_expression "param_1[0x29] + 0x2c" (subscript_expression "param_1[0x29]" (identifier "param_1") ([ "[") (number_literal "0x29") (] "]")) (+ "+") (number_literal "0x2c")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00047fcb;" (goto "goto") (statement_identifier "LAB_00047fcb") (; ";"))) (expression_statement "puVar2 = *(undefined **)(puVar2 + 0x10);" (assignment_expression "puVar2 = *(undefined **)(puVar2 + 0x10)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined **)(puVar2 + 0x10)" (* "*") (cast_expression "(undefined **)(puVar2 + 0x10)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + 0x10)" (( "(") (binary_expression "puVar2 + 0x10" (identifier "puVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar2 != (undefined *)0x0)" (( "(") (binary_expression "puVar2 != (undefined *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "param_2 = ".mbind.bss";" (assignment_expression "param_2 = ".mbind.bss"" (identifier "param_2") (= "=") (string_literal "".mbind.bss"" (" """) (string_content ".mbind.bss") (" """))) (; ";")) (if_statement "if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }" (if "if") (parenthesized_expression "(((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0))" (( "(") (binary_expression "((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)" (parenthesized_expression "((uVar6 & 0x102) != 0)" (( "(") (binary_expression "(uVar6 & 0x102) != 0" (parenthesized_expression "(uVar6 & 0x102)" (( "(") (binary_expression "uVar6 & 0x102" (identifier "uVar6") (& "&") (number_literal "0x102")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_2 = ".mbind.data", (uVar6 & 8) != 0)" (( "(") (comma_expression "param_2 = ".mbind.data", (uVar6 & 8) != 0" (assignment_expression "param_2 = ".mbind.data"" (identifier "param_2") (= "=") (string_literal "".mbind.data"" (" """) (string_content ".mbind.data") (" """))) (, ",") (binary_expression "(uVar6 & 8) != 0" (parenthesized_expression "(uVar6 & 8)" (( "(") (binary_expression "uVar6 & 8" (identifier "uVar6") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          param_2 = ".mbind.text";\n          if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }\n        }" ({ "{") (expression_statement "param_2 = ".mbind.text";" (assignment_expression "param_2 = ".mbind.text"" (identifier "param_2") (= "=") (string_literal "".mbind.text"" (" """) (string_content ".mbind.text") (" """))) (; ";")) (if_statement "if ((uVar6 & 0x10) == 0) {\n            param_2 = ".mbind.rodata";\n          }" (if "if") (parenthesized_expression "((uVar6 & 0x10) == 0)" (( "(") (binary_expression "(uVar6 & 0x10) == 0" (parenthesized_expression "(uVar6 & 0x10)" (( "(") (binary_expression "uVar6 & 0x10" (identifier "uVar6") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            param_2 = ".mbind.rodata";\n          }" ({ "{") (expression_statement "param_2 = ".mbind.rodata";" (assignment_expression "param_2 = ".mbind.rodata"" (identifier "param_2") (= "=") (string_literal "".mbind.rodata"" (" """) (string_content ".mbind.rodata") (" """))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }" (else "else") (compound_statement "{\n    uVar6 = param_1[5];\n    if ((uVar6 & 1) == 0) goto LAB_00047c3c;\n    bVar13 = uVar1 < 5;\n    bVar15 = uVar1 == 5;\n    if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "uVar6 = param_1[5];" (assignment_expression "uVar6 = param_1[5]" (identifier "uVar6") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if ((uVar6 & 1) == 0) goto LAB_00047c3c;" (if "if") (parenthesized_expression "((uVar6 & 1) == 0)" (( "(") (binary_expression "(uVar6 & 1) == 0" (parenthesized_expression "(uVar6 & 1)" (( "(") (binary_expression "uVar6 & 1" (identifier "uVar6") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00047c3c;" (goto "goto") (statement_identifier "LAB_00047c3c") (; ";"))) (expression_statement "bVar13 = uVar1 < 5;" (assignment_expression "bVar13 = uVar1 < 5" (identifier "bVar13") (= "=") (binary_expression "uVar1 < 5" (identifier "uVar1") (< "<") (number_literal "5"))) (; ";")) (expression_statement "bVar15 = uVar1 == 5;" (assignment_expression "bVar15 = uVar1 == 5" (identifier "bVar15") (= "=") (binary_expression "uVar1 == 5" (identifier "uVar1") (== "==") (number_literal "5"))) (; ";")) (if_statement "if (bVar15) {\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }\n    else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n      if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }\n      bVar16 = local_34 == (undefined *)0x9;\n      if (bVar16) {\n        param_2 = ".rel.dyn";\n      }\n      if (iVar5 == 5) goto LAB_00047b7b;\n    }" ({ "{") (if_statement "if (local_34 == (undefined *)0x4) {\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }" (if "if") (parenthesized_expression "(local_34 == (undefined *)0x4)" (( "(") (binary_expression "local_34 == (undefined *)0x4" (identifier "local_34") (== "==") (cast_expression "(undefined *)0x4" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (compound_statement "{\n        param_2 = ".rela.dyn";\n        bVar16 = true;\n        goto LAB_00047b5c;\n      }" ({ "{") (expression_statement "param_2 = ".rela.dyn";" (assignment_expression "param_2 = ".rela.dyn"" (identifier "param_2") (= "=") (string_literal "".rela.dyn"" (" """) (string_content ".rela.dyn") (" """))) (; ";")) (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" (identifier "bVar16") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_00047b5c;" (goto "goto") (statement_identifier "LAB_00047b5c") (; ";")) (} "}"))) (expression_statement "bVar16 = local_34 == (undefined *)0x9;" (assignment_expression "bVar16 = local_34 == (undefined *)0x9" (identifier "bVar16") (= "=") (binary_expression "local_34 == (undefined *)0x9" (identifier "local_34") (== "==") (cast_expression "(undefined *)0x9" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x9")))) (; ";")) (if_statement "if (bVar16) {\n        param_2 = ".rel.dyn";\n      }" (if "if") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (compound_statement "{\n        param_2 = ".rel.dyn";\n      }" ({ "{") (expression_statement "param_2 = ".rel.dyn";" (assignment_expression "param_2 = ".rel.dyn"" (identifier "param_2") (= "=") (string_literal "".rel.dyn"" (" """) (string_content ".rel.dyn") (" """))) (; ";")) (} "}"))) (if_statement "if (iVar5 == 5) goto LAB_00047b7b;" (if "if") (parenthesized_expression "(iVar5 == 5)" (( "(") (binary_expression "iVar5 == 5" (identifier "iVar5") (== "==") (number_literal "5")) () ")")) (goto_statement "goto LAB_00047b7b;" (goto "goto") (statement_identifier "LAB_00047b7b") (; ";"))) (} "}")) (else_clause "else {\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }" (else "else") (compound_statement "{\n      iVar4 = 4;\n      bVar16 = false;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = &DAT_000ae302;\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }\n    }" ({ "{") (expression_statement "iVar4 = 4;" (assignment_expression "iVar4 = 4" (identifier "iVar4") (= "=") (number_literal "4")) (; ";")) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" (identifier "bVar16") (= "=") (false "false")) (; ";")) (expression_statement "pbVar7 = (byte *)param_2;" (assignment_expression "pbVar7 = (byte *)param_2" (identifier "pbVar7") (= "=") (cast_expression "(byte *)param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (; ";")) (expression_statement "pbVar8 = &DAT_000ae302;" (assignment_expression "pbVar8 = &DAT_000ae302" (identifier "pbVar8") (= "=") (pointer_expression "&DAT_000ae302" (& "&") (identifier "DAT_000ae302"))) (; ";")) (do_statement "do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      } while (bVar15);" (do "do") (compound_statement "{\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar13 = *pbVar7 < *pbVar8;\n        bVar15 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + 1;\n        pbVar8 = pbVar8 + 1;\n      }" ({ "{") (if_statement "if (iVar4 == 0) break;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + -1" (identifier "iVar4") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar13 = *pbVar7 < *pbVar8;" (assignment_expression "bVar13 = *pbVar7 < *pbVar8" (identifier "bVar13") (= "=") (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (< "<") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")))) (; ";")) (expression_statement "bVar15 = *pbVar7 == *pbVar8;" (assignment_expression "bVar15 = *pbVar7 == *pbVar8" (identifier "bVar15") (= "=") (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (== "==") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")))) (; ";")) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + 1" (identifier "pbVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (if_statement "if ((!bVar13 && !bVar15) == bVar13) {\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }" (if "if") (parenthesized_expression "((!bVar13 && !bVar15) == bVar13)" (( "(") (binary_expression "(!bVar13 && !bVar15) == bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" (( "(") (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" (! "!") (identifier "bVar13")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar13")) () ")")) (compound_statement "{\n        bVar16 = true;\n        if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }\n      }" ({ "{") (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" (identifier "bVar16") (= "=") (true "true")) (; ";")) (if_statement "if (((byte *)param_2)[4] == 0x61) {\n          param_2 = ".rela.dyn";\n        }\n        else {\n          param_2 = ".rel.dyn";\n        }" (if "if") (parenthesized_expression "(((byte *)param_2)[4] == 0x61)" (( "(") (binary_expression "((byte *)param_2)[4] == 0x61" (subscript_expression "((byte *)param_2)[4]" (parenthesized_expression "((byte *)param_2)" (( "(") (cast_expression "(byte *)param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2")) () ")")) ([ "[") (number_literal "4") (] "]")) (== "==") (number_literal "0x61")) () ")")) (compound_statement "{\n          param_2 = ".rela.dyn";\n        }" ({ "{") (expression_statement "param_2 = ".rela.dyn";" (assignment_expression "param_2 = ".rela.dyn"" (identifier "param_2") (= "=") (string_literal "".rela.dyn"" (" """) (string_content ".rela.dyn") (" """))) (; ";")) (} "}")) (else_clause "else {\n          param_2 = ".rel.dyn";\n        }" (else "else") (compound_statement "{\n          param_2 = ".rel.dyn";\n        }" ({ "{") (expression_statement "param_2 = ".rel.dyn";" (assignment_expression "param_2 = ".rel.dyn"" (identifier "param_2") (= "=") (string_literal "".rel.dyn"" (" """) (string_content ".rel.dyn") (" """))) (; ";")) (} "}")))) (} "}"))) (} "}")))) (} "}")))))) (if_statement "if ((param_3 == 0) &&\n     (puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0)) {\n    puVar11 = (undefined *)0x0;\n    do {\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    } while (puVar2 != (undefined *)0x0);\n    param_3 = 0x17e;\n    if (puVar10 != (undefined *)0x0) {\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }\n  }" (if "if") (parenthesized_expression "((param_3 == 0) &&\n     (puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0))" (( "(") (binary_expression "(param_3 == 0) &&\n     (puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0)" (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0)" (( "(") (comma_expression "puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0" (assignment_expression "puVar2 = (undefined *)FUN_000256d0(param_2,0,0)" (identifier "puVar2") (= "=") (cast_expression "(undefined *)FUN_000256d0(param_2,0,0)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000256d0(param_2,0,0)" (identifier "FUN_000256d0") (argument_list "(param_2,0,0)" (( "(") (identifier "param_2") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (, ",") (binary_expression "puVar2 != (undefined *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n    puVar11 = (undefined *)0x0;\n    do {\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    } while (puVar2 != (undefined *)0x0);\n    param_3 = 0x17e;\n    if (puVar10 != (undefined *)0x0) {\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }\n  }" ({ "{") (expression_statement "puVar11 = (undefined *)0x0;" (assignment_expression "puVar11 = (undefined *)0x0" (identifier "puVar11") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    } while (puVar2 != (undefined *)0x0);" (do "do") (compound_statement "{\n      iVar4 = *(int *)(puVar2 + 0x1c);\n      puVar10 = puVar2;\n      if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }\n      puVar2 = (undefined *)FUN_00025b20(puVar2,0);\n      puVar11 = puVar10;\n    }" ({ "{") (expression_statement "iVar4 = *(int *)(puVar2 + 0x1c);" (assignment_expression "iVar4 = *(int *)(puVar2 + 0x1c)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(puVar2 + 0x1c)" (* "*") (cast_expression "(int *)(puVar2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x1c)" (( "(") (binary_expression "puVar2 + 0x1c" (identifier "puVar2") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "puVar10 = puVar2;" (assignment_expression "puVar10 = puVar2" (identifier "puVar10") (= "=") (identifier "puVar2")) (; ";")) (if_statement "if (iVar4 != 0) {\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;\n        puVar10 = puVar11;\n        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }\n      }" ({ "{") (if_statement "if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;" (if "if") (parenthesized_expression "(*(uint *)(iVar4 + 0x14) == 0)" (( "(") (binary_expression "*(uint *)(iVar4 + 0x14) == 0" (pointer_expression "*(uint *)(iVar4 + 0x14)" (* "*") (cast_expression "(uint *)(iVar4 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00047fcb;" (goto "goto") (statement_identifier "LAB_00047fcb") (; ";"))) (expression_statement "puVar10 = puVar11;" (assignment_expression "puVar10 = puVar11" (identifier "puVar10") (= "=") (identifier "puVar11")) (; ";")) (if_statement "if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0)" (( "(") (binary_expression "((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0" (parenthesized_expression "((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3)" (( "(") (binary_expression "(*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3" (parenthesized_expression "(*(uint *)(iVar4 + 0x14) ^ param_1[5])" (( "(") (binary_expression "*(uint *)(iVar4 + 0x14) ^ param_1[5]" (pointer_expression "*(uint *)(iVar4 + 0x14)" (* "*") (cast_expression "(uint *)(iVar4 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) (^ "^") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) () ")")) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;\n          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }\n        }" ({ "{") (if_statement "if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;" (if "if") (parenthesized_expression "((uVar1 != 5) || (iVar5 != 5))" (( "(") (binary_expression "(uVar1 != 5) || (iVar5 != 5)" (parenthesized_expression "(uVar1 != 5)" (( "(") (binary_expression "uVar1 != 5" (identifier "uVar1") (!= "!=") (number_literal "5")) () ")")) (|| "||") (parenthesized_expression "(iVar5 != 5)" (( "(") (binary_expression "iVar5 != 5" (identifier "iVar5") (!= "!=") (number_literal "5")) () ")"))) () ")")) (goto_statement "goto LAB_00047fcb;" (goto "goto") (statement_identifier "LAB_00047fcb") (; ";"))) (if_statement "if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))\n          {\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))" (( "(") (binary_expression "(*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&\n             (((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8)))))" (parenthesized_expression "(*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))" (( "(") (binary_expression "*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)" (pointer_expression "*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c)" (* "*") (cast_expression "(int *)(*(int *)(iVar4 + 0xa4) + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 0xa4) + 0x2c)" (( "(") (binary_expression "*(int *)(iVar4 + 0xa4) + 0x2c" (pointer_expression "*(int *)(iVar4 + 0xa4)" (* "*") (cast_expression "(int *)(iVar4 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xa4)" (( "(") (binary_expression "iVar4 + 0xa4" (identifier "iVar4") (+ "+") (number_literal "0xa4")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (== "==") (pointer_expression "*(int *)(param_1[0x29] + 0x2c)" (* "*") (cast_expression "(int *)(param_1[0x29] + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x29] + 0x2c)" (( "(") (binary_expression "param_1[0x29] + 0x2c" (subscript_expression "param_1[0x29]" (identifier "param_1") ([ "[") (number_literal "0x29") (] "]")) (+ "+") (number_literal "0x2c")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8)))))" (( "(") (parenthesized_expression "((DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))" (( "(") (binary_expression "(DAT_001d03e0 & 3) != 2 ||\n              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8)))" (binary_expression "(DAT_001d03e0 & 3) != 2" (parenthesized_expression "(DAT_001d03e0 & 3)" (( "(") (binary_expression "DAT_001d03e0 & 3" (identifier "DAT_001d03e0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "2")) (|| "||") (parenthesized_expression "(-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8)))" (( "(") (binary_expression "-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))" (number_literal "-1") (< "<") (cast_expression "(int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))" (( "(") (binary_expression "*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8)" (pointer_expression "*(uint *)(*(int *)(iVar4 + 0xa4) + 8)" (* "*") (cast_expression "(uint *)(*(int *)(iVar4 + 0xa4) + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 0xa4) + 8)" (( "(") (binary_expression "*(int *)(iVar4 + 0xa4) + 8" (pointer_expression "*(int *)(iVar4 + 0xa4)" (* "*") (cast_expression "(int *)(iVar4 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xa4)" (( "(") (binary_expression "iVar4 + 0xa4" (identifier "iVar4") (+ "+") (number_literal "0xa4")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (^ "^") (pointer_expression "*(uint *)(param_1[0x29] + 8)" (* "*") (cast_expression "(uint *)(param_1[0x29] + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0x29] + 8)" (( "(") (binary_expression "param_1[0x29] + 8" (subscript_expression "param_1[0x29]" (identifier "param_1") ([ "[") (number_literal "0x29") (] "]")) (+ "+") (number_literal "8")) () ")"))))) () ")")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);\n            if (iVar4 != 0) goto LAB_00047fcb;\n            if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }\n          }" ({ "{") (expression_statement "iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);" (assignment_expression "iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1)" (identifier "iVar4") (= "=") (call_expression "_bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1)" (identifier "_bfd_elf_match_sections_by_type") (argument_list "(DAT_001d0414,iVar4,param_1[0x2b],param_1)" (( "(") (identifier "DAT_001d0414") (, ",") (identifier "iVar4") (, ",") (subscript_expression "param_1[0x2b]" (identifier "param_1") ([ "[") (number_literal "0x2b") (] "]")) (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) goto LAB_00047fcb;" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00047fcb;" (goto "goto") (statement_identifier "LAB_00047fcb") (; ";"))) (if_statement "if (*(int *)(puVar2 + 0x1c) == 0) {\n              puVar10 = puVar2;\n            }" (if "if") (parenthesized_expression "(*(int *)(puVar2 + 0x1c) == 0)" (( "(") (binary_expression "*(int *)(puVar2 + 0x1c) == 0" (pointer_expression "*(int *)(puVar2 + 0x1c)" (* "*") (cast_expression "(int *)(puVar2 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x1c)" (( "(") (binary_expression "puVar2 + 0x1c" (identifier "puVar2") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              puVar10 = puVar2;\n            }" ({ "{") (expression_statement "puVar10 = puVar2;" (assignment_expression "puVar10 = puVar2" (identifier "puVar10") (= "=") (identifier "puVar2")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (expression_statement "puVar2 = (undefined *)FUN_00025b20(puVar2,0);" (assignment_expression "puVar2 = (undefined *)FUN_00025b20(puVar2,0)" (identifier "puVar2") (= "=") (cast_expression "(undefined *)FUN_00025b20(puVar2,0)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00025b20(puVar2,0)" (identifier "FUN_00025b20") (argument_list "(puVar2,0)" (( "(") (identifier "puVar2") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "puVar11 = puVar10;" (assignment_expression "puVar11 = puVar10" (identifier "puVar11") (= "=") (identifier "puVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar2 != (undefined *)0x0)" (( "(") (binary_expression "puVar2 != (undefined *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "param_3 = 0x17e;" (assignment_expression "param_3 = 0x17e" (identifier "param_3") (= "=") (number_literal "0x17e")) (; ";")) (if_statement "if (puVar10 != (undefined *)0x0) {\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }" (if "if") (parenthesized_expression "(puVar10 != (undefined *)0x0)" (( "(") (binary_expression "puVar10 != (undefined *)0x0" (identifier "puVar10") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_00026550(puVar10 + 8,param_1,0,puVar10);\n      return puVar10;\n    }" ({ "{") (expression_statement "FUN_00026550(puVar10 + 8,param_1,0,puVar10);" (call_expression "FUN_00026550(puVar10 + 8,param_1,0,puVar10)" (identifier "FUN_00026550") (argument_list "(puVar10 + 8,param_1,0,puVar10)" (( "(") (binary_expression "puVar10 + 8" (identifier "puVar10") (+ "+") (number_literal "8")) (, ",") (identifier "param_1") (, ",") (number_literal "0") (, ",") (identifier "puVar10") () ")"))) (; ";")) (return_statement "return puVar10;" (return "return") (identifier "puVar10") (; ";")) (} "}"))) (} "}"))) (if_statement "if (DAT_001cfba8 == 0) {\n    ppuVar9 = &PTR_s__text_001ce860;\n    do {\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    } while (ppuVar9 != (undefined **)&DAT_001ce938);\n    DAT_001cfba8 = 1;\n  }" (if "if") (parenthesized_expression "(DAT_001cfba8 == 0)" (( "(") (binary_expression "DAT_001cfba8 == 0" (identifier "DAT_001cfba8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    ppuVar9 = &PTR_s__text_001ce860;\n    do {\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    } while (ppuVar9 != (undefined **)&DAT_001ce938);\n    DAT_001cfba8 = 1;\n  }" ({ "{") (expression_statement "ppuVar9 = &PTR_s__text_001ce860;" (assignment_expression "ppuVar9 = &PTR_s__text_001ce860" (identifier "ppuVar9") (= "=") (pointer_expression "&PTR_s__text_001ce860" (& "&") (identifier "PTR_s__text_001ce860"))) (; ";")) (do_statement "do {\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    } while (ppuVar9 != (undefined **)&DAT_001ce938);" (do "do") (compound_statement "{\n      if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }\n      ppuVar9 = ppuVar9 + 6;\n    }" ({ "{") (if_statement "if (*ppuVar9 != (undefined *)0x0) {\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }" (if "if") (parenthesized_expression "(*ppuVar9 != (undefined *)0x0)" (( "(") (binary_expression "*ppuVar9 != (undefined *)0x0" (pointer_expression "*ppuVar9" (* "*") (identifier "ppuVar9")) (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);\n        ppuVar9[2] = puVar2;\n        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }\n      }" ({ "{") (expression_statement "puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);" (assignment_expression "puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0)" (identifier "puVar2") (= "=") (cast_expression "(undefined *)FUN_000256d0(*ppuVar9,0,0)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000256d0(*ppuVar9,0,0)" (identifier "FUN_000256d0") (argument_list "(*ppuVar9,0,0)" (( "(") (pointer_expression "*ppuVar9" (* "*") (identifier "ppuVar9")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "ppuVar9[2] = puVar2;" (assignment_expression "ppuVar9[2] = puVar2" (subscript_expression "ppuVar9[2]" (identifier "ppuVar9") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "puVar2")) (; ";")) (if_statement "if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }" (if "if") (parenthesized_expression "((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0))" (( "(") (binary_expression "(puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)" (parenthesized_expression "(puVar2 != (undefined *)0x0)" (( "(") (binary_expression "puVar2 != (undefined *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(puVar2 + 0x4c) == 0)" (( "(") (binary_expression "*(int *)(puVar2 + 0x4c) == 0" (pointer_expression "*(int *)(puVar2 + 0x4c)" (* "*") (cast_expression "(int *)(puVar2 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x4c)" (( "(") (binary_expression "puVar2 + 0x4c" (identifier "puVar2") (+ "+") (number_literal "0x4c")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];\n        }" ({ "{") (expression_statement "*(undefined **)(puVar2 + 0x4c) = ppuVar9[1];" (assignment_expression "*(undefined **)(puVar2 + 0x4c) = ppuVar9[1]" (pointer_expression "*(undefined **)(puVar2 + 0x4c)" (* "*") (cast_expression "(undefined **)(puVar2 + 0x4c)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + 0x4c)" (( "(") (binary_expression "puVar2 + 0x4c" (identifier "puVar2") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (subscript_expression "ppuVar9[1]" (identifier "ppuVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "ppuVar9 = ppuVar9 + 6;" (assignment_expression "ppuVar9 = ppuVar9 + 6" (identifier "ppuVar9") (= "=") (binary_expression "ppuVar9 + 6" (identifier "ppuVar9") (+ "+") (number_literal "6"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ppuVar9 != (undefined **)&DAT_001ce938)" (( "(") (binary_expression "ppuVar9 != (undefined **)&DAT_001ce938" (identifier "ppuVar9") (!= "!=") (cast_expression "(undefined **)&DAT_001ce938" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&DAT_001ce938" (& "&") (identifier "DAT_001ce938")))) () ")")) (; ";")) (expression_statement "DAT_001cfba8 = 1;" (assignment_expression "DAT_001cfba8 = 1" (identifier "DAT_001cfba8") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (expression_statement "bVar15 = (DAT_001d03e0 & 2) == 0;" (assignment_expression "bVar15 = (DAT_001d03e0 & 2) == 0" (identifier "bVar15") (= "=") (binary_expression "(DAT_001d03e0 & 2) == 0" (parenthesized_expression "(DAT_001d03e0 & 2)" (( "(") (binary_expression "DAT_001d03e0 & 2" (identifier "DAT_001d03e0") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar15) {\n    iVar5 = 0xd;\n    pbVar7 = (byte *)*param_1;\n    pbVar8 = (byte *)".gnu.warning.";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if (((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)) {\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }\n  }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n    iVar5 = 0xd;\n    pbVar7 = (byte *)*param_1;\n    pbVar8 = (byte *)".gnu.warning.";\n    do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);\n    if (((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)) {\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }\n  }" ({ "{") (expression_statement "iVar5 = 0xd;" (assignment_expression "iVar5 = 0xd" (identifier "iVar5") (= "=") (number_literal "0xd")) (; ";")) (expression_statement "pbVar7 = (byte *)*param_1;" (assignment_expression "pbVar7 = (byte *)*param_1" (identifier "pbVar7") (= "=") (cast_expression "(byte *)*param_1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "pbVar8 = (byte *)".gnu.warning.";" (assignment_expression "pbVar8 = (byte *)".gnu.warning."" (identifier "pbVar8") (= "=") (cast_expression "(byte *)".gnu.warning."" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".gnu.warning."" (" """) (string_content ".gnu.warning.") (" """)))) (; ";")) (do_statement "do {\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    } while (bVar15);" (do "do") (compound_statement "{\n      if (iVar5 == 0) break;\n      iVar5 = iVar5 + -1;\n      bVar13 = *pbVar7 < *pbVar8;\n      bVar15 = *pbVar7 == *pbVar8;\n      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar13 = *pbVar7 < *pbVar8;" (assignment_expression "bVar13 = *pbVar7 < *pbVar8" (identifier "bVar13") (= "=") (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (< "<") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")))) (; ";")) (expression_statement "bVar15 = *pbVar7 == *pbVar8;" (assignment_expression "bVar15 = *pbVar7 == *pbVar8" (identifier "bVar15") (= "=") (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (== "==") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")))) (; ";")) (expression_statement "pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar17 * -2" (identifier "pbVar7") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar17 * -2" (identifier "pbVar8") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (if_statement "if (((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)) {\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }" (if "if") (parenthesized_expression "(((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0))" (( "(") (binary_expression "((!bVar13 && !bVar15) == bVar13) &&\n       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)" (parenthesized_expression "((!bVar13 && !bVar15) == bVar13)" (( "(") (binary_expression "(!bVar13 && !bVar15) == bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" (( "(") (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" (! "!") (identifier "bVar13")) (&& "&&") (unary_expression "!bVar15" (! "!") (identifier "bVar15"))) () ")")) (== "==") (identifier "bVar13")) () ")")) (&& "&&") (parenthesized_expression "(puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)" (( "(") (comma_expression "puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0" (assignment_expression "puVar2 = DAT_001ce868" (identifier "puVar2") (= "=") (identifier "DAT_001ce868")) (, ",") (binary_expression "DAT_001ce868 != (undefined *)0x0" (identifier "DAT_001ce868") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\nLAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);\n      return puVar2;\n    }" ({ "{") (labeled_statement "LAB_00047fcb:\n      FUN_00026550(puVar2 + 8,param_1,0,puVar2);" (statement_identifier "LAB_00047fcb") (: ":") (expression_statement "FUN_00026550(puVar2 + 8,param_1,0,puVar2);" (call_expression "FUN_00026550(puVar2 + 8,param_1,0,puVar2)" (identifier "FUN_00026550") (argument_list "(puVar2 + 8,param_1,0,puVar2)" (( "(") (binary_expression "puVar2 + 8" (identifier "puVar2") (+ "+") (number_literal "8")) (, ",") (identifier "param_1") (, ",") (number_literal "0") (, ",") (identifier "puVar2") () ")"))) (; ";"))) (return_statement "return puVar2;" (return "return") (identifier "puVar2") (; ";")) (} "}"))) (} "}"))) (expression_statement "local_48 = param_1[5];" (assignment_expression "local_48 = param_1[5]" (identifier "local_48") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if ((DAT_001d03e0 & 3) != 2) {\n    iVar5 = param_1[0x2b];\n    piVar3 = param_1;\n    while (piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0) {\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }\n  }" (if "if") (parenthesized_expression "((DAT_001d03e0 & 3) != 2)" (( "(") (binary_expression "(DAT_001d03e0 & 3) != 2" (parenthesized_expression "(DAT_001d03e0 & 3)" (( "(") (binary_expression "DAT_001d03e0 & 3" (identifier "DAT_001d03e0") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n    iVar5 = param_1[0x2b];\n    piVar3 = param_1;\n    while (piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0) {\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }\n  }" ({ "{") (expression_statement "iVar5 = param_1[0x2b];" (assignment_expression "iVar5 = param_1[0x2b]" (identifier "iVar5") (= "=") (subscript_expression "param_1[0x2b]" (identifier "param_1") ([ "[") (number_literal "0x2b") (] "]"))) (; ";")) (expression_statement "piVar3 = param_1;" (assignment_expression "piVar3 = param_1" (identifier "piVar3") (= "=") (identifier "param_1")) (; ";")) (while_statement "while (piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0) {\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }" (while "while") (parenthesized_expression "(piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0)" (( "(") (comma_expression "piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0" (assignment_expression "piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3)" (identifier "piVar3") (= "=") (cast_expression "(int *)bfd_get_next_section_by_name(iVar5,piVar3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "bfd_get_next_section_by_name(iVar5,piVar3)" (identifier "bfd_get_next_section_by_name") (argument_list "(iVar5,piVar3)" (( "(") (identifier "iVar5") (, ",") (identifier "piVar3") () ")"))))) (, ",") (binary_expression "piVar3 != (int *)0x0" (identifier "piVar3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n      iVar5 = piVar3[0x2b];\n      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }\n    }" ({ "{") (expression_statement "iVar5 = piVar3[0x2b];" (assignment_expression "iVar5 = piVar3[0x2b]" (identifier "iVar5") (= "=") (subscript_expression "piVar3[0x2b]" (identifier "piVar3") ([ "[") (number_literal "0x2b") (] "]"))) (; ";")) (if_statement "if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         ) {\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }" (if "if") (parenthesized_expression "((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))\n         )" (( "(") (binary_expression "(((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&\n         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))" (parenthesized_expression "(((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0))" (( "(") (binary_expression "((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)" (parenthesized_expression "((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)\n           )" (( "(") (binary_expression "(piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)" (parenthesized_expression "(piVar3[0x15] == 0)" (( "(") (binary_expression "piVar3[0x15] == 0" (subscript_expression "piVar3[0x15]" (identifier "piVar3") ([ "[") (number_literal "0x15") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)" (( "(") (binary_expression "((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0" (binary_expression "((local_48 ^ piVar3[5]) & 3) == 0" (parenthesized_expression "((local_48 ^ piVar3[5]) & 3)" (( "(") (binary_expression "(local_48 ^ piVar3[5]) & 3" (parenthesized_expression "(local_48 ^ piVar3[5])" (( "(") (binary_expression "local_48 ^ piVar3[5]" (identifier "local_48") (^ "^") (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]"))) () ")")) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "(piVar3[5] & 0x8000U) == 0" (parenthesized_expression "(piVar3[5] & 0x8000U)" (( "(") (binary_expression "piVar3[5] & 0x8000U" (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]")) (& "&") (number_literal "0x8000U")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(iVar5 + 0x29) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(iVar5 + 0x29) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x29) & 8)" (( "(") (binary_expression "*(byte *)(iVar5 + 0x29) & 8" (pointer_expression "*(byte *)(iVar5 + 0x29)" (* "*") (cast_expression "(byte *)(iVar5 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x29)" (( "(") (binary_expression "iVar5 + 0x29" (identifier "iVar5") (+ "+") (number_literal "0x29")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))" (( "(") (parenthesized_expression "(*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0))" (( "(") (binary_expression "*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)" (binary_expression "*(int *)(iVar5 + 0xa4) != 0" (pointer_expression "*(int *)(iVar5 + 0xa4)" (* "*") (cast_expression "(int *)(iVar5 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xa4)" (( "(") (binary_expression "iVar5 + 0xa4" (identifier "iVar5") (+ "+") (number_literal "0xa4")) () ")")))) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10)" (( "(") (binary_expression "*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10" (pointer_expression "*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24)" (* "*") (cast_expression "(byte *)(*(int *)(iVar5 + 0xa4) + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 0xa4) + 0x24)" (( "(") (binary_expression "*(int *)(iVar5 + 0xa4) + 0x24" (pointer_expression "*(int *)(iVar5 + 0xa4)" (* "*") (cast_expression "(int *)(iVar5 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xa4)" (( "(") (binary_expression "iVar5 + 0xa4" (identifier "iVar5") (+ "+") (number_literal "0xa4")) () ")")))) (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);\n        if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }\n        iVar5 = piVar3[0x2b];\n      }" ({ "{") (expression_statement "iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);" (assignment_expression "iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1)" (identifier "iVar5") (= "=") (call_expression "_bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1)" (identifier "_bfd_elf_match_sections_by_type") (argument_list "(iVar5,piVar3,param_1[0x2b],param_1)" (( "(") (identifier "iVar5") (, ",") (identifier "piVar3") (, ",") (subscript_expression "param_1[0x2b]" (identifier "param_1") ([ "[") (number_literal "0x2b") (] "]")) (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;\n        }" ({ "{") (expression_statement "local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;" (assignment_expression "local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8" (identifier "local_48") (= "=") (binary_expression "(piVar3[5] ^ 8U | local_48 ^ 8) ^ 8" (parenthesized_expression "(piVar3[5] ^ 8U | local_48 ^ 8)" (( "(") (binary_expression "piVar3[5] ^ 8U | local_48 ^ 8" (binary_expression "piVar3[5] ^ 8U" (subscript_expression "piVar3[5]" (identifier "piVar3") ([ "[") (number_literal "5") (] "]")) (^ "^") (number_literal "8U")) (| "|") (binary_expression "local_48 ^ 8" (identifier "local_48") (^ "^") (number_literal "8"))) () ")")) (^ "^") (number_literal "8"))) (; ";")) (} "}"))) (expression_statement "iVar5 = piVar3[0x2b];" (assignment_expression "iVar5 = piVar3[0x2b]" (identifier "iVar5") (= "=") (subscript_expression "piVar3[0x2b]" (identifier "piVar3") ([ "[") (number_literal "0x2b") (] "]"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (if_statement "if ((local_48 & 0x2001) == 0) {\n    local_44 = &PTR_s__comment_001ce920;\n    goto LAB_00047da5;\n  }" (if "if") (parenthesized_expression "((local_48 & 0x2001) == 0)" (( "(") (binary_expression "(local_48 & 0x2001) == 0" (parenthesized_expression "(local_48 & 0x2001)" (( "(") (binary_expression "local_48 & 0x2001" (identifier "local_48") (& "&") (number_literal "0x2001")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_44 = &PTR_s__comment_001ce920;\n    goto LAB_00047da5;\n  }" ({ "{") (expression_statement "local_44 = &PTR_s__comment_001ce920;" (assignment_expression "local_44 = &PTR_s__comment_001ce920" (identifier "local_44") (= "=") (pointer_expression "&PTR_s__comment_001ce920" (& "&") (identifier "PTR_s__comment_001ce920"))) (; ";")) (goto_statement "goto LAB_00047da5;" (goto "goto") (statement_identifier "LAB_00047da5") (; ";")) (} "}"))) (if_statement "if ((local_48 & 1) == 0) {\n    local_44 = (undefined **)0x0;\n    local_40 = (undefined *)0x0;\n    goto LAB_00047db8;\n  }" (if "if") (parenthesized_expression "((local_48 & 1) == 0)" (( "(") (binary_expression "(local_48 & 1) == 0" (parenthesized_expression "(local_48 & 1)" (( "(") (binary_expression "local_48 & 1" (identifier "local_48") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_44 = (undefined **)0x0;\n    local_40 = (undefined *)0x0;\n    goto LAB_00047db8;\n  }" ({ "{") (expression_statement "local_44 = (undefined **)0x0;" (assignment_expression "local_44 = (undefined **)0x0" (identifier "local_44") (= "=") (cast_expression "(undefined **)0x0" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_40 = (undefined *)0x0;" (assignment_expression "local_40 = (undefined *)0x0" (identifier "local_40") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_00047db8;" (goto "goto") (statement_identifier "LAB_00047db8") (; ";")) (} "}"))) (if_statement "if ((local_48 & 2) == 0) {\nLAB_00047e40:\n    local_44 = &PTR_s__bss_001ce8c0;\n    if (((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)) {\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }\n  }\n  else if ((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)) {\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }" (if "if") (parenthesized_expression "((local_48 & 2) == 0)" (( "(") (binary_expression "(local_48 & 2) == 0" (parenthesized_expression "(local_48 & 2)" (( "(") (binary_expression "local_48 & 2" (identifier "local_48") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00047e40:\n    local_44 = &PTR_s__bss_001ce8c0;\n    if (((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)) {\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }\n  }" ({ "{") (labeled_statement "LAB_00047e40:\n    local_44 = &PTR_s__bss_001ce8c0;" (statement_identifier "LAB_00047e40") (: ":") (expression_statement "local_44 = &PTR_s__bss_001ce8c0;" (assignment_expression "local_44 = &PTR_s__bss_001ce8c0" (identifier "local_44") (= "=") (pointer_expression "&PTR_s__bss_001ce8c0" (& "&") (identifier "PTR_s__bss_001ce8c0"))) (; ";"))) (if_statement "if (((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)) {\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }" (if "if") (parenthesized_expression "(((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0))" (( "(") (binary_expression "((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&\n       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)" (parenthesized_expression "((((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0))" (( "(") (binary_expression "(((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&\n        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)" (parenthesized_expression "(((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0))" (( "(") (binary_expression "((local_48 & 0x502) != 0) &&\n         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)" (parenthesized_expression "((local_48 & 0x502) != 0)" (( "(") (binary_expression "(local_48 & 0x502) != 0" (parenthesized_expression "(local_48 & 0x502)" (( "(") (binary_expression "local_48 & 0x502" (identifier "local_48") (& "&") (number_literal "0x502")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)" (( "(") (comma_expression "local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0" (assignment_expression "local_44 = &PTR_s__sdata_001ce908" (identifier "local_44") (= "=") (pointer_expression "&PTR_s__sdata_001ce908" (& "&") (identifier "PTR_s__sdata_001ce908"))) (, ",") (binary_expression "(local_48 & 0x400000) == 0" (parenthesized_expression "(local_48 & 0x400000)" (( "(") (binary_expression "local_48 & 0x400000" (identifier "local_48") (& "&") (number_literal "0x400000")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)" (( "(") (comma_expression "local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0" (assignment_expression "local_44 = &PTR_s__tdata_001ce890" (identifier "local_44") (= "=") (pointer_expression "&PTR_s__tdata_001ce890" (& "&") (identifier "PTR_s__tdata_001ce890"))) (, ",") (binary_expression "(local_48 & 0x400) == 0" (parenthesized_expression "(local_48 & 0x400)" (( "(") (binary_expression "local_48 & 0x400" (identifier "local_48") (& "&") (number_literal "0x400")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)" (( "(") (comma_expression "local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0" (assignment_expression "local_44 = &PTR_s__data_001ce8a8" (identifier "local_44") (= "=") (pointer_expression "&PTR_s__data_001ce8a8" (& "&") (identifier "PTR_s__data_001ce8a8"))) (, ",") (binary_expression "(local_48 & 8) != 0" (parenthesized_expression "(local_48 & 8)" (( "(") (binary_expression "local_48 & 8" (identifier "local_48") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      bVar14 = uVar1 < 5;\n      bVar13 = uVar1 == 5;\n      if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }\n      local_44 = &PTR_s__text_001ce860;\n      if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }\n    }" ({ "{") (expression_statement "bVar14 = uVar1 < 5;" (assignment_expression "bVar14 = uVar1 < 5" (identifier "bVar14") (= "=") (binary_expression "uVar1 < 5" (identifier "uVar1") (< "<") (number_literal "5"))) (; ";")) (expression_statement "bVar13 = uVar1 == 5;" (assignment_expression "bVar13 = uVar1 == 5" (identifier "bVar13") (= "=") (binary_expression "uVar1 == 5" (identifier "uVar1") (== "==") (number_literal "5"))) (; ";")) (if_statement "if (bVar13) {\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }\n      else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }" (if "if") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (compound_statement "{\n        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;\n      }" ({ "{") (if_statement "if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;" (if "if") (parenthesized_expression "((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9))" (( "(") (binary_expression "(local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)" (parenthesized_expression "(local_34 == (undefined *)0x4)" (( "(") (binary_expression "local_34 == (undefined *)0x4" (identifier "local_34") (== "==") (cast_expression "(undefined *)0x4" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) () ")")) (|| "||") (parenthesized_expression "(local_34 == (undefined *)0x9)" (( "(") (binary_expression "local_34 == (undefined *)0x9" (identifier "local_34") (== "==") (cast_expression "(undefined *)0x9" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x9"))) () ")"))) () ")")) (goto_statement "goto LAB_00047ebf;" (goto "goto") (statement_identifier "LAB_00047ebf") (; ";"))) (} "}")) (else_clause "else {\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }" (else "else") (compound_statement "{\n        iVar5 = 4;\n        pbVar7 = (byte *)param_2;\n        pbVar8 = &DAT_000ae302;\n        do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }\n      }" ({ "{") (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" (identifier "iVar5") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar7 = (byte *)param_2;" (assignment_expression "pbVar7 = (byte *)param_2" (identifier "pbVar7") (= "=") (cast_expression "(byte *)param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (; ";")) (expression_statement "pbVar8 = &DAT_000ae302;" (assignment_expression "pbVar8 = &DAT_000ae302" (identifier "pbVar8") (= "=") (pointer_expression "&DAT_000ae302" (& "&") (identifier "DAT_000ae302"))) (; ";")) (do_statement "do {\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        } while (bVar13);" (do "do") (compound_statement "{\n          if (iVar5 == 0) break;\n          iVar5 = iVar5 + -1;\n          bVar14 = *pbVar7 < *pbVar8;\n          bVar13 = *pbVar7 == *pbVar8;\n          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar14 = *pbVar7 < *pbVar8;" (assignment_expression "bVar14 = *pbVar7 < *pbVar8" (identifier "bVar14") (= "=") (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (< "<") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")))) (; ";")) (expression_statement "bVar13 = *pbVar7 == *pbVar8;" (assignment_expression "bVar13 = *pbVar7 == *pbVar8" (identifier "bVar13") (= "=") (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (== "==") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")))) (; ";")) (expression_statement "pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar17 * -2" (identifier "pbVar7") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar17 * -2" (identifier "pbVar8") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (; ";")) (if_statement "if ((!bVar14 && !bVar13) == bVar14) {\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }" (if "if") (parenthesized_expression "((!bVar14 && !bVar13) == bVar14)" (( "(") (binary_expression "(!bVar14 && !bVar13) == bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" (( "(") (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" (! "!") (identifier "bVar14")) (&& "&&") (unary_expression "!bVar13" (! "!") (identifier "bVar13"))) () ")")) (== "==") (identifier "bVar14")) () ")")) (compound_statement "{\nLAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;\n          if ((local_48 & 2) != 0) goto LAB_00047da5;\n        }" ({ "{") (labeled_statement "LAB_00047ebf:\n          local_44 = (undefined **)&DAT_001ce8d8;" (statement_identifier "LAB_00047ebf") (: ":") (expression_statement "local_44 = (undefined **)&DAT_001ce8d8;" (assignment_expression "local_44 = (undefined **)&DAT_001ce8d8" (identifier "local_44") (= "=") (cast_expression "(undefined **)&DAT_001ce8d8" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&DAT_001ce8d8" (& "&") (identifier "DAT_001ce8d8")))) (; ";"))) (if_statement "if ((local_48 & 2) != 0) goto LAB_00047da5;" (if "if") (parenthesized_expression "((local_48 & 2) != 0)" (( "(") (binary_expression "(local_48 & 2) != 0" (parenthesized_expression "(local_48 & 2)" (( "(") (binary_expression "local_48 & 2" (identifier "local_48") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00047da5;" (goto "goto") (statement_identifier "LAB_00047da5") (; ";"))) (} "}"))) (} "}")))) (expression_statement "local_44 = &PTR_s__text_001ce860;" (assignment_expression "local_44 = &PTR_s__text_001ce860" (identifier "local_44") (= "=") (pointer_expression "&PTR_s__text_001ce860" (& "&") (identifier "PTR_s__text_001ce860"))) (; ";")) (if_statement "if ((local_48 & 0x10) == 0) {\n        local_44 = (undefined **)&DAT_001ce878;\n      }" (if "if") (parenthesized_expression "((local_48 & 0x10) == 0)" (( "(") (binary_expression "(local_48 & 0x10) == 0" (parenthesized_expression "(local_48 & 0x10)" (( "(") (binary_expression "local_48 & 0x10" (identifier "local_48") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_44 = (undefined **)&DAT_001ce878;\n      }" ({ "{") (expression_statement "local_44 = (undefined **)&DAT_001ce878;" (assignment_expression "local_44 = (undefined **)&DAT_001ce878" (identifier "local_44") (= "=") (cast_expression "(undefined **)&DAT_001ce878" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&DAT_001ce878" (& "&") (identifier "DAT_001ce878")))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else if ((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)) {\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }" (else "else") (if_statement "if ((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)) {\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }" (if "if") (parenthesized_expression "((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14))" (( "(") (binary_expression "(local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)" (parenthesized_expression "(local_34 != (undefined *)0x7)" (( "(") (binary_expression "local_34 != (undefined *)0x7" (identifier "local_34") (!= "!=") (cast_expression "(undefined *)0x7" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7"))) () ")")) (|| "||") (parenthesized_expression "(local_44 = &PTR_s__interp_001ce8f0, !bVar14)" (( "(") (comma_expression "local_44 = &PTR_s__interp_001ce8f0, !bVar14" (assignment_expression "local_44 = &PTR_s__interp_001ce8f0" (identifier "local_44") (= "=") (pointer_expression "&PTR_s__interp_001ce8f0" (& "&") (identifier "PTR_s__interp_001ce8f0"))) (, ",") (unary_expression "!bVar14" (! "!") (identifier "bVar14"))) () ")"))) () ")")) (compound_statement "{\n    bVar14 = uVar1 < 5;\n    bVar13 = uVar1 == 5;\n    if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }\n    goto LAB_00047e40;\n  }" ({ "{") (expression_statement "bVar14 = uVar1 < 5;" (assignment_expression "bVar14 = uVar1 < 5" (identifier "bVar14") (= "=") (binary_expression "uVar1 < 5" (identifier "uVar1") (< "<") (number_literal "5"))) (; ";")) (expression_statement "bVar13 = uVar1 == 5;" (assignment_expression "bVar13 = uVar1 == 5" (identifier "bVar13") (= "=") (binary_expression "uVar1 == 5" (identifier "uVar1") (== "==") (number_literal "5"))) (; ";")) (if_statement "if (!bVar13) {\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }" (if "if") (parenthesized_expression "(!bVar13)" (( "(") (unary_expression "!bVar13" (! "!") (identifier "bVar13")) () ")")) (compound_statement "{\n      iVar5 = 5;\n      pbVar7 = (byte *)param_2;\n      pbVar8 = (byte *)".note";\n      do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);\n      local_44 = &PTR_s__interp_001ce8f0;\n      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;\n    }" ({ "{") (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" (identifier "iVar5") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar7 = (byte *)param_2;" (assignment_expression "pbVar7 = (byte *)param_2" (identifier "pbVar7") (= "=") (cast_expression "(byte *)param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (; ";")) (expression_statement "pbVar8 = (byte *)".note";" (assignment_expression "pbVar8 = (byte *)".note"" (identifier "pbVar8") (= "=") (cast_expression "(byte *)".note"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".note"" (" """) (string_content ".note") (" """)))) (; ";")) (do_statement "do {\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      } while (bVar13);" (do "do") (compound_statement "{\n        if (iVar5 == 0) break;\n        iVar5 = iVar5 + -1;\n        bVar14 = *pbVar7 < *pbVar8;\n        bVar13 = *pbVar7 == *pbVar8;\n        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;\n        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar14 = *pbVar7 < *pbVar8;" (assignment_expression "bVar14 = *pbVar7 < *pbVar8" (identifier "bVar14") (= "=") (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (< "<") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")))) (; ";")) (expression_statement "bVar13 = *pbVar7 == *pbVar8;" (assignment_expression "bVar13 = *pbVar7 == *pbVar8" (identifier "bVar13") (= "=") (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (== "==") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")))) (; ";")) (expression_statement "pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar17 * -2" (identifier "pbVar7") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar17 * -2" (identifier "pbVar8") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (; ";")) (expression_statement "local_44 = &PTR_s__interp_001ce8f0;" (assignment_expression "local_44 = &PTR_s__interp_001ce8f0" (identifier "local_44") (= "=") (pointer_expression "&PTR_s__interp_001ce8f0" (& "&") (identifier "PTR_s__interp_001ce8f0"))) (; ";")) (if_statement "if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;" (if "if") (parenthesized_expression "((!bVar14 && !bVar13) == bVar14)" (( "(") (binary_expression "(!bVar14 && !bVar13) == bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" (( "(") (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" (! "!") (identifier "bVar14")) (&& "&&") (unary_expression "!bVar13" (! "!") (identifier "bVar13"))) () ")")) (== "==") (identifier "bVar14")) () ")")) (goto_statement "goto LAB_00047da5;" (goto "goto") (statement_identifier "LAB_00047da5") (; ";"))) (} "}"))) (goto_statement "goto LAB_00047e40;" (goto "goto") (statement_identifier "LAB_00047e40") (; ";")) (} "}"))))) (labeled_statement "LAB_00047da5:\n  local_40 = local_44[2];" (statement_identifier "LAB_00047da5") (: ":") (expression_statement "local_40 = local_44[2];" (assignment_expression "local_40 = local_44[2]" (identifier "local_40") (= "=") (subscript_expression "local_44[2]" (identifier "local_44") ([ "[") (number_literal "2") (] "]"))) (; ";"))) (if_statement "if (local_40 != (undefined *)0x0) goto LAB_00047db8;" (if "if") (parenthesized_expression "(local_40 != (undefined *)0x0)" (( "(") (binary_expression "local_40 != (undefined *)0x0" (identifier "local_40") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00047db8;" (goto "goto") (statement_identifier "LAB_00047db8") (; ";"))) (if_statement "if (*local_44 == (undefined *)0x0) {\n    if (DAT_001d03a0 != (undefined *)0x0) {\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }\n  }\n  else {\n    local_40 = (undefined *)FUN_000256d0(*local_44,0,0);\n    local_44[2] = local_40;\nLAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  }" (if "if") (parenthesized_expression "(*local_44 == (undefined *)0x0)" (( "(") (binary_expression "*local_44 == (undefined *)0x0" (pointer_expression "*local_44" (* "*") (identifier "local_44")) (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (DAT_001d03a0 != (undefined *)0x0) {\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }\n  }" ({ "{") (if_statement "if (DAT_001d03a0 != (undefined *)0x0) {\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }" (if "if") (parenthesized_expression "(DAT_001d03a0 != (undefined *)0x0)" (( "(") (binary_expression "DAT_001d03a0 != (undefined *)0x0" (identifier "DAT_001d03a0") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      local_38 = (undefined *)0x0;\n      local_28 = (undefined *)0x0;\n      local_40 = (undefined *)0x0;\n      local_34 = (undefined *)0x0;\n      puVar11 = DAT_001d03a0;\n      puVar2 = (undefined *)0x0;\n      do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);\n      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }\n      local_44[2] = local_40;\n      goto LAB_00048089;\n    }" ({ "{") (expression_statement "local_38 = (undefined *)0x0;" (assignment_expression "local_38 = (undefined *)0x0" (identifier "local_38") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_28 = (undefined *)0x0;" (assignment_expression "local_28 = (undefined *)0x0" (identifier "local_28") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_40 = (undefined *)0x0;" (assignment_expression "local_40 = (undefined *)0x0" (identifier "local_40") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_34 = (undefined *)0x0;" (assignment_expression "local_34 = (undefined *)0x0" (identifier "local_34") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar11 = DAT_001d03a0;" (assignment_expression "puVar11 = DAT_001d03a0" (identifier "puVar11") (= "=") (identifier "DAT_001d03a0")) (; ";")) (expression_statement "puVar2 = (undefined *)0x0;" (assignment_expression "puVar2 = (undefined *)0x0" (identifier "puVar2") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);" (do "do") (compound_statement "{\n        puVar10 = puVar11;\n        bVar14 = false;\n        bVar13 = *(int *)(puVar10 + 0x48) == 0;\n        if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }\n        puVar2 = puVar10;\n        puVar11 = *(undefined **)(puVar10 + 0x10);\n      }" ({ "{") (expression_statement "puVar10 = puVar11;" (assignment_expression "puVar10 = puVar11" (identifier "puVar10") (= "=") (identifier "puVar11")) (; ";")) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" (identifier "bVar14") (= "=") (false "false")) (; ";")) (expression_statement "bVar13 = *(int *)(puVar10 + 0x48) == 0;" (assignment_expression "bVar13 = *(int *)(puVar10 + 0x48) == 0" (identifier "bVar13") (= "=") (binary_expression "*(int *)(puVar10 + 0x48) == 0" (pointer_expression "*(int *)(puVar10 + 0x48)" (* "*") (cast_expression "(int *)(puVar10 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x48)" (( "(") (binary_expression "puVar10 + 0x48" (identifier "puVar10") (+ "+") (number_literal "0x48")) () ")")))) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (*(int *)(puVar10 + 0x48) < 0) {\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }\n        else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }" (if "if") (parenthesized_expression "(*(int *)(puVar10 + 0x48) < 0)" (( "(") (binary_expression "*(int *)(puVar10 + 0x48) < 0" (pointer_expression "*(int *)(puVar10 + 0x48)" (* "*") (cast_expression "(int *)(puVar10 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x48)" (( "(") (binary_expression "puVar10 + 0x48" (identifier "puVar10") (+ "+") (number_literal "0x48")) () ")")))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);\nLAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }\n        }" ({ "{") (labeled_statement "LAB_00048272:\n          iVar5 = *(int *)(puVar10 + 0x1c);" (statement_identifier "LAB_00048272") (: ":") (expression_statement "iVar5 = *(int *)(puVar10 + 0x1c);" (assignment_expression "iVar5 = *(int *)(puVar10 + 0x1c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar10 + 0x1c)" (* "*") (cast_expression "(int *)(puVar10 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x1c)" (( "(") (binary_expression "puVar10 + 0x1c" (identifier "puVar10") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";"))) (labeled_statement "LAB_00048240:\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }" (statement_identifier "LAB_00048240") (: ":") (if_statement "if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = local_40;\njoined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }\n          }" ({ "{") (expression_statement "uVar1 = *(uint *)(iVar5 + 0x14);" (assignment_expression "uVar1 = *(uint *)(iVar5 + 0x14)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(iVar5 + 0x14)" (* "*") (cast_expression "(uint *)(iVar5 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "puVar2 = local_40;" (assignment_expression "puVar2 = local_40" (identifier "puVar2") (= "=") (identifier "local_40")) (; ";")) (labeled_statement "joined_r0x00048289:\n            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }" (statement_identifier "joined_r0x00048289") (: ":") (if_statement "if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {\n              local_38 = puVar10;\n            }" (if "if") (parenthesized_expression "(((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0))" (( "(") (binary_expression "((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)" (parenthesized_expression "((uVar1 & 1) != 0)" (( "(") (binary_expression "(uVar1 & 1) != 0" (parenthesized_expression "(uVar1 & 1)" (( "(") (binary_expression "uVar1 & 1" (identifier "uVar1") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)" (( "(") (comma_expression "local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0" (assignment_expression "local_40 = puVar2" (identifier "local_40") (= "=") (identifier "puVar2")) (, ",") (comma_expression "local_28 = puVar10, (uVar1 & 8) != 0" (assignment_expression "local_28 = puVar10" (identifier "local_28") (= "=") (identifier "puVar10")) (, ",") (binary_expression "(uVar1 & 8) != 0" (parenthesized_expression "(uVar1 & 8)" (( "(") (binary_expression "uVar1 & 8" (identifier "uVar1") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n              local_38 = puVar10;\n            }" ({ "{") (expression_statement "local_38 = puVar10;" (assignment_expression "local_38 = puVar10" (identifier "local_38") (= "=") (identifier "puVar10")) (; ";")) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }" (else "else") (compound_statement "{\n          pbVar7 = *(byte **)(puVar10 + 0x18);\n          iVar5 = 4;\n          pbVar8 = pbVar7;\n          pbVar12 = &DAT_000ae302;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);\n          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;\n          bVar13 = false;\n          bVar14 = !bVar16;\n          if (!bVar14) break;\n          iVar5 = 5;\n          pbVar8 = &DAT_000ae31b;\n          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;\n          do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);\n          if ((!bVar13 && !bVar14) == bVar13) break;\n          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);\n          if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }\n          iVar5 = *(int *)(puVar10 + 0x1c);\n          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;\n          if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }\n        }" ({ "{") (expression_statement "pbVar7 = *(byte **)(puVar10 + 0x18);" (assignment_expression "pbVar7 = *(byte **)(puVar10 + 0x18)" (identifier "pbVar7") (= "=") (pointer_expression "*(byte **)(puVar10 + 0x18)" (* "*") (cast_expression "(byte **)(puVar10 + 0x18)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x18)" (( "(") (binary_expression "puVar10 + 0x18" (identifier "puVar10") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "iVar5 = 4;" (assignment_expression "iVar5 = 4" (identifier "iVar5") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar8 = pbVar7;" (assignment_expression "pbVar8 = pbVar7" (identifier "pbVar8") (= "=") (identifier "pbVar7")) (; ";")) (expression_statement "pbVar12 = &DAT_000ae302;" (assignment_expression "pbVar12 = &DAT_000ae302" (identifier "pbVar12") (= "=") (pointer_expression "&DAT_000ae302" (& "&") (identifier "DAT_000ae302"))) (; ";")) (do_statement "do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar13);" (do "do") (compound_statement "{\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar14 = *pbVar8 < *pbVar12;\n            bVar13 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar14 = *pbVar8 < *pbVar12;" (assignment_expression "bVar14 = *pbVar8 < *pbVar12" (identifier "bVar14") (= "=") (binary_expression "*pbVar8 < *pbVar12" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar13 = *pbVar8 == *pbVar12;" (assignment_expression "bVar13 = *pbVar8 == *pbVar12" (identifier "bVar13") (= "=") (binary_expression "*pbVar8 == *pbVar12" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar17 * -2" (identifier "pbVar8") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar17 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (; ";")) (if_statement "if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;" (if "if") (parenthesized_expression "((!bVar14 && !bVar13) != bVar14)" (( "(") (binary_expression "(!bVar14 && !bVar13) != bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" (( "(") (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" (! "!") (identifier "bVar14")) (&& "&&") (unary_expression "!bVar13" (! "!") (identifier "bVar13"))) () ")")) (!= "!=") (identifier "bVar14")) () ")")) (goto_statement "goto LAB_00048272;" (goto "goto") (statement_identifier "LAB_00048272") (; ";"))) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (expression_statement "bVar14 = !bVar16;" (assignment_expression "bVar14 = !bVar16" (identifier "bVar14") (= "=") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) (; ";")) (if_statement "if (!bVar14) break;" (if "if") (parenthesized_expression "(!bVar14)" (( "(") (unary_expression "!bVar14" (! "!") (identifier "bVar14")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" (identifier "iVar5") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar8 = &DAT_000ae31b;" (assignment_expression "pbVar8 = &DAT_000ae31b" (identifier "pbVar8") (= "=") (pointer_expression "&DAT_000ae31b" (& "&") (identifier "DAT_000ae31b"))) (; ";")) (expression_statement "pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;" (assignment_expression "pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4" (identifier "pbVar12") (= "=") (binary_expression "pbVar7 + (pbVar7[4] == 0x61) + 4" (binary_expression "pbVar7 + (pbVar7[4] == 0x61)" (identifier "pbVar7") (+ "+") (parenthesized_expression "(pbVar7[4] == 0x61)" (( "(") (binary_expression "pbVar7[4] == 0x61" (subscript_expression "pbVar7[4]" (identifier "pbVar7") ([ "[") (number_literal "4") (] "]")) (== "==") (number_literal "0x61")) () ")"))) (+ "+") (number_literal "4"))) (; ";")) (do_statement "do {\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          } while (bVar14);" (do "do") (compound_statement "{\n            if (iVar5 == 0) break;\n            iVar5 = iVar5 + -1;\n            bVar13 = *pbVar8 < *pbVar12;\n            bVar14 = *pbVar8 == *pbVar12;\n            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;\n            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar13 = *pbVar8 < *pbVar12;" (assignment_expression "bVar13 = *pbVar8 < *pbVar12" (identifier "bVar13") (= "=") (binary_expression "*pbVar8 < *pbVar12" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar14 = *pbVar8 == *pbVar12;" (assignment_expression "bVar14 = *pbVar8 == *pbVar12" (identifier "bVar14") (= "=") (binary_expression "*pbVar8 == *pbVar12" (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar17 * -2" (identifier "pbVar8") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar17 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar14)" (( "(") (identifier "bVar14") () ")")) (; ";")) (if_statement "if ((!bVar13 && !bVar14) == bVar13) break;" (if "if") (parenthesized_expression "((!bVar13 && !bVar14) == bVar13)" (( "(") (binary_expression "(!bVar13 && !bVar14) == bVar13" (parenthesized_expression "(!bVar13 && !bVar14)" (( "(") (binary_expression "!bVar13 && !bVar14" (unary_expression "!bVar13" (! "!") (identifier "bVar13")) (&& "&&") (unary_expression "!bVar14" (! "!") (identifier "bVar14"))) () ")")) (== "==") (identifier "bVar13")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);" (assignment_expression "bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61)" (identifier "bVar14") (= "=") (binary_expression "(*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61)" (parenthesized_expression "(*(char *)(*param_1 + 4) == 'a')" (( "(") (binary_expression "*(char *)(*param_1 + 4) == 'a'" (pointer_expression "*(char *)(*param_1 + 4)" (* "*") (cast_expression "(char *)(*param_1 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 4)" (( "(") (binary_expression "*param_1 + 4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "4")) () ")")))) (== "==") (char_literal "'a'" (' "'") (character "a") (' "'"))) () ")")) (== "==") (parenthesized_expression "(pbVar7[4] == 0x61)" (( "(") (binary_expression "pbVar7[4] == 0x61" (subscript_expression "pbVar7[4]" (identifier "pbVar7") ([ "[") (number_literal "4") (] "]")) (== "==") (number_literal "0x61")) () ")")))) (; ";")) (if_statement "if ((local_34 == (undefined *)0x0) || (bVar14)) {\n            local_34 = puVar10;\n          }" (if "if") (parenthesized_expression "((local_34 == (undefined *)0x0) || (bVar14))" (( "(") (binary_expression "(local_34 == (undefined *)0x0) || (bVar14)" (parenthesized_expression "(local_34 == (undefined *)0x0)" (( "(") (binary_expression "local_34 == (undefined *)0x0" (identifier "local_34") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(bVar14)" (( "(") (identifier "bVar14") () ")"))) () ")")) (compound_statement "{\n            local_34 = puVar10;\n          }" ({ "{") (expression_statement "local_34 = puVar10;" (assignment_expression "local_34 = puVar10" (identifier "local_34") (= "=") (identifier "puVar10")) (; ";")) (} "}"))) (expression_statement "iVar5 = *(int *)(puVar10 + 0x1c);" (assignment_expression "iVar5 = *(int *)(puVar10 + 0x1c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(puVar10 + 0x1c)" (* "*") (cast_expression "(int *)(puVar10 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x1c)" (( "(") (binary_expression "puVar10 + 0x1c" (identifier "puVar10") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;" (if "if") (parenthesized_expression "((local_40 != (undefined *)0x0) && (!bVar14))" (( "(") (binary_expression "(local_40 != (undefined *)0x0) && (!bVar14)" (parenthesized_expression "(local_40 != (undefined *)0x0)" (( "(") (binary_expression "local_40 != (undefined *)0x0" (identifier "local_40") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(!bVar14)" (( "(") (unary_expression "!bVar14" (! "!") (identifier "bVar14")) () ")"))) () ")")) (goto_statement "goto LAB_00048240;" (goto "goto") (statement_identifier "LAB_00048240") (; ";"))) (if_statement "if (iVar5 != 0) {\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar1 = *(uint *)(iVar5 + 0x14);\n            puVar2 = puVar10;\n            goto joined_r0x00048289;\n          }" ({ "{") (expression_statement "uVar1 = *(uint *)(iVar5 + 0x14);" (assignment_expression "uVar1 = *(uint *)(iVar5 + 0x14)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(iVar5 + 0x14)" (* "*") (cast_expression "(uint *)(iVar5 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "puVar2 = puVar10;" (assignment_expression "puVar2 = puVar10" (identifier "puVar2") (= "=") (identifier "puVar10")) (; ";")) (goto_statement "goto joined_r0x00048289;" (goto "goto") (statement_identifier "joined_r0x00048289") (; ";")) (} "}"))) (} "}")))) (expression_statement "puVar2 = puVar10;" (assignment_expression "puVar2 = puVar10" (identifier "puVar2") (= "=") (identifier "puVar10")) (; ";")) (expression_statement "puVar11 = *(undefined **)(puVar10 + 0x10);" (assignment_expression "puVar11 = *(undefined **)(puVar10 + 0x10)" (identifier "puVar11") (= "=") (pointer_expression "*(undefined **)(puVar10 + 0x10)" (* "*") (cast_expression "(undefined **)(puVar10 + 0x10)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x10)" (( "(") (binary_expression "puVar10 + 0x10" (identifier "puVar10") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(undefined **)(puVar10 + 0x10) != (undefined *)0x0)" (( "(") (binary_expression "*(undefined **)(puVar10 + 0x10) != (undefined *)0x0" (pointer_expression "*(undefined **)(puVar10 + 0x10)" (* "*") (cast_expression "(undefined **)(puVar10 + 0x10)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x10)" (( "(") (binary_expression "puVar10 + 0x10" (identifier "puVar10") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (if_statement "if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)) {\n        local_40 = local_28;\n      }" (if "if") (parenthesized_expression "((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0))" (( "(") (binary_expression "(((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&\n         (local_40 = puVar2, local_28 != (undefined *)0x0)" (parenthesized_expression "(((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0))" (( "(") (binary_expression "((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))\n          && (local_40 = local_38, local_38 == (undefined *)0x0)" (parenthesized_expression "((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))" (( "(") (binary_expression "(local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0)" (parenthesized_expression "(local_40 == (undefined *)0x0)" (( "(") (binary_expression "local_40 == (undefined *)0x0" (identifier "local_40") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_40 = local_34, local_34 == (undefined *)0x0)" (( "(") (comma_expression "local_40 = local_34, local_34 == (undefined *)0x0" (assignment_expression "local_40 = local_34" (identifier "local_40") (= "=") (identifier "local_34")) (, ",") (binary_expression "local_34 == (undefined *)0x0" (identifier "local_34") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_40 = local_38, local_38 == (undefined *)0x0)" (( "(") (comma_expression "local_40 = local_38, local_38 == (undefined *)0x0" (assignment_expression "local_40 = local_38" (identifier "local_40") (= "=") (identifier "local_38")) (, ",") (binary_expression "local_38 == (undefined *)0x0" (identifier "local_38") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_40 = puVar2, local_28 != (undefined *)0x0)" (( "(") (comma_expression "local_40 = puVar2, local_28 != (undefined *)0x0" (assignment_expression "local_40 = puVar2" (identifier "local_40") (= "=") (identifier "puVar2")) (, ",") (binary_expression "local_28 != (undefined *)0x0" (identifier "local_28") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n        local_40 = local_28;\n      }" ({ "{") (expression_statement "local_40 = local_28;" (assignment_expression "local_40 = local_28" (identifier "local_40") (= "=") (identifier "local_28")) (; ";")) (} "}"))) (expression_statement "local_44[2] = local_40;" (assignment_expression "local_44[2] = local_40" (subscript_expression "local_44[2]" (identifier "local_44") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_40")) (; ";")) (goto_statement "goto LAB_00048089;" (goto "goto") (statement_identifier "LAB_00048089") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    local_40 = (undefined *)FUN_000256d0(*local_44,0,0);\n    local_44[2] = local_40;\nLAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  }" (else "else") (compound_statement "{\n    local_40 = (undefined *)FUN_000256d0(*local_44,0,0);\n    local_44[2] = local_40;\nLAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;\n  }" ({ "{") (expression_statement "local_40 = (undefined *)FUN_000256d0(*local_44,0,0);" (assignment_expression "local_40 = (undefined *)FUN_000256d0(*local_44,0,0)" (identifier "local_40") (= "=") (cast_expression "(undefined *)FUN_000256d0(*local_44,0,0)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000256d0(*local_44,0,0)" (identifier "FUN_000256d0") (argument_list "(*local_44,0,0)" (( "(") (pointer_expression "*local_44" (* "*") (identifier "local_44")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "local_44[2] = local_40;" (assignment_expression "local_44[2] = local_40" (subscript_expression "local_44[2]" (identifier "local_44") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_40")) (; ";")) (labeled_statement "LAB_00048089:\n    if (local_40 != (undefined *)0x0) goto LAB_00047db8;" (statement_identifier "LAB_00048089") (: ":") (if_statement "if (local_40 != (undefined *)0x0) goto LAB_00047db8;" (if "if") (parenthesized_expression "(local_40 != (undefined *)0x0)" (( "(") (binary_expression "local_40 != (undefined *)0x0" (identifier "local_40") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00047db8;" (goto "goto") (statement_identifier "LAB_00047db8") (; ";")))) (} "}")))) (expression_statement "local_40 = (undefined *)\n             FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         );" (assignment_expression "local_40 = (undefined *)\n             FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         )" (identifier "local_40") (= "=") (cast_expression "(undefined *)\n             FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         )" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         )" (identifier "FUN_00025ba0") (argument_list "(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0\n                         )" (( "(") (identifier "param_1") (, ",") (identifier "local_48") (, ",") (binary_expression "local_44 + 2" (identifier "local_44") (+ "+") (number_literal "2")) (, ",") (identifier "PTR__bfd_elf_match_sections_by_type_001cdfe0") () ")"))))) (; ";")) (if_statement "if (local_40 == (undefined *)0x0) {\n    local_40 = DAT_001d03a0;\n  }" (if "if") (parenthesized_expression "(local_40 == (undefined *)0x0)" (( "(") (binary_expression "local_40 == (undefined *)0x0" (identifier "local_40") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_40 = DAT_001d03a0;\n  }" ({ "{") (expression_statement "local_40 = DAT_001d03a0;" (assignment_expression "local_40 = DAT_001d03a0" (identifier "local_40") (= "=") (identifier "DAT_001d03a0")) (; ";")) (} "}"))) (labeled_statement "LAB_00047db8:\n  puVar2 = (undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0);" (statement_identifier "LAB_00047db8") (: ":") (expression_statement "puVar2 = (undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0);" (assignment_expression "puVar2 = (undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0)" (identifier "puVar2") (= "=") (cast_expression "(undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0)" (identifier "FUN_00029730") (argument_list "(param_1,param_2,param_3,local_40,local_44,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "local_40") (, ",") (identifier "local_44") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";"))) (return_statement "return puVar2;" (return "return") (identifier "puVar2") (; ";")) (} "}")))

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

type_1 *
function_1(type_2 *s,char *secname,int var_13)

{
  type_3 var_1;
  type_3 var_3;
  type_4 var_25;
  type_1 *var_19;
  type_5 *pbVar5;
  type_2 *var_5;
  type_6 *var_7;
  int var_9;
  type_7 var_4;
  type_2 *paVar10;
  type_8 *var_10;
  type_9 *var_20;
  type_6 *var_17;
  type_6 *plVar14;
  type_8 *var_11;
  bool var_12;
  bool var_23;
  bool var_26;
  bool bVar19;
  type_8 bVar20;
  type_7 var_22;
  type_9 *local_44;
  type_6 *var_24;
  type_6 *var_27;
  type_6 *var_8;
  type_6 *var_28;
  
  bVar20 = 0;
  var_8 = (type_6 *)0x0;
  var_1 = s->owner->xvec->flavour;
  var_23 = var_1 == var_2;
  var_3 = (link_info.output_bfd)->xvec->flavour;
  if (var_23) {
    var_8 = *(type_6 **)((int)s->used_by_bfd + 4);
  }
  if ((link_info._0_1_ & 3) == 2) {
LAB_00047c3c:
    bVar19 = false;
  }
  else if ((link_info._4_1_ & 0x40) == 0) {
    bVar19 = false;
LAB_00047b5c:
    if (((var_23) && (var_3 == var_2)) && (var_4 = s->flags, (var_4 & 1) != 0)) {
LAB_00047b7b:
      if ((*(type_8 *)((int)s->used_by_bfd + 0xb) & 1) != 0) {
        if (lang_output_section_statement.head != (type_6 *)0x0) {
          var_7 = lang_output_section_statement.head;
          do {
            var_5 = (var_7->output_section_statement).type_11;
            if (((var_5 != (type_2 *)(var_6 + 0x180)) &&
                (var_5 != (type_2 *)0x0)) &&
               (((*(type_8 *)((int)var_5->used_by_bfd + 0xb) & 1) != 0 &&
                ((((var_5->flags ^ var_4) & 0x11b) == 0 &&
                 (*(int *)((int)var_5->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c))
                 ))))) goto LAB_00047fcb;
            var_7 = (type_6 *)(var_7->wild_statement).section_list;
          } while (var_7 != (type_6 *)0x0);
        }
        secname = ".mbind.bss";
        if (((var_4 & 0x102) != 0) && (secname = ".mbind.data", (var_4 & 8) != 0)) {
          secname = ".mbind.text";
          if ((var_4 & 0x10) == 0) {
            secname = ".mbind.rodata";
          }
        }
      }
    }
  }
  else {
    var_4 = s->flags;
    if ((var_4 & 1) == 0) goto LAB_00047c3c;
    var_12 = var_1 < var_2;
    var_26 = var_1 == var_2;
    if (var_26) {
      if (var_8 == (type_6 *)0x4) {
        secname = ".rela.dyn";
        bVar19 = true;
        goto LAB_00047b5c;
      }
      bVar19 = var_8 == (type_6 *)0x9;
      if (bVar19) {
        secname = ".rel.dyn";
      }
      if (var_3 == var_2) goto LAB_00047b7b;
    }
    else {
      var_9 = 4;
      bVar19 = false;
      var_10 = (type_8 *)secname;
      var_11 = &DAT_000ae302;
      do {
        if (var_9 == 0) break;
        var_9 = var_9 + -1;
        var_12 = *var_10 < *var_11;
        var_26 = *var_10 == *var_11;
        var_10 = var_10 + 1;
        var_11 = var_11 + 1;
      } while (var_26);
      if ((!var_12 && !var_26) == var_12) {
        bVar19 = true;
        if (secname[4] == 'a') {
          secname = ".rela.dyn";
        }
        else {
          secname = ".rel.dyn";
        }
      }
    }
  }
  if ((var_13 == 0) &&
     (var_7 = (type_6 *)var_14(secname,0,0),
     var_7 != (type_6 *)0x0)) {
    plVar14 = (type_6 *)0x0;
    do {
      var_5 = (var_7->output_section_statement).type_11;
      var_17 = var_7;
      if (var_5 != (type_2 *)0x0) {
        if (var_5->flags == 0) goto LAB_00047fcb;
        var_17 = plVar14;
        if (((var_5->flags ^ s->flags) & 3) == 0) {
          if ((var_1 != var_2) || (var_3 != var_2))
          goto LAB_00047fcb;
          if ((*(int *)((int)var_5->used_by_bfd + 0x2c) == *(int *)((int)s->used_by_bfd + 0x2c)) &&
             (((link_info._0_1_ & 3) != 2 ||
              (-1 < (int)(*(type_7 *)((int)var_5->used_by_bfd + 8) ^
                         *(type_7 *)((int)s->used_by_bfd + 8)))))) {
            var_9 = var_15(link_info.output_bfd,var_5,s->owner,s);
            if (var_9 != 0) goto LAB_00047fcb;
            if ((var_7->wild_statement).children.tail == (type_6 **)0x0) {
              var_17 = var_7;
            }
          }
        }
      }
      var_7 = (type_6 *)
               var_16(&var_7->output_section_statement,0);
      plVar14 = var_17;
    } while (var_7 != (type_6 *)0x0);
    var_13 = 0x17e;
    if (var_17 != (type_6 *)0x0) {
      var_18(&(var_17->output_section_statement).children,s,(type_10 *)0x0,
                       &var_17->output_section_statement);
      return (type_1 *)var_17;
    }
  }
  if (function_1::orphan_init_done == 0) {
    var_20 = function_1::hold;
    do {
      if (var_20->name != (char *)0x0) {
        var_19 = var_14(var_20->name,0,0);
        var_20->os = var_19;
        if ((var_19 != (type_1 *)0x0) && (var_19->flags == 0)) {
          var_19->flags = var_20->flags;
        }
      }
      var_20 = var_20 + 1;
    } while (var_20 != (type_9 *)&DAT_001ce938);
    gldelf_iamcu_place_orphan::orphan_init_done = 1;
  }
  var_12 = false;
  var_26 = (link_info._0_1_ & 2) == 0;
  if (var_26) {
    var_9 = 0xd;
    var_10 = (type_8 *)s->name;
    var_11 = (type_8 *)".gnu.warning.";
    do {
      if (var_9 == 0) break;
      var_9 = var_9 + -1;
      var_12 = *var_10 < *var_11;
      var_26 = *var_10 == *var_11;
      var_10 = var_10 + (type_7)bVar20 * -2 + 1;
      var_11 = var_11 + (type_7)bVar20 * -2 + 1;
    } while (var_26);
    if (((!var_12 && !var_26) == var_12) &&
       (var_7 = (type_6 *)function_1::hold[0].os,
       function_1::hold[0].os != (type_1 *)0x0)) {
LAB_00047fcb:
      var_18(&(var_7->output_section_statement).children,s,(type_10 *)0x0,
                       &var_7->output_section_statement);
      return (type_1 *)var_7;
    }
  }
  var_22 = s->flags;
  if ((link_info._0_1_ & 3) != 2) {
    pbVar5 = s->owner;
    var_5 = s;
    while (var_5 = (type_2 *)var_21(pbVar5,var_5),
          var_5 != (type_2 *)0x0) {
      pbVar5 = var_5->owner;
      if ((((var_5->output_section == (type_11 *)0x0) &&
           (((var_22 ^ var_5->flags) & 3) == 0 && (var_5->flags & 0x8000) == 0)) &&
          ((pbVar5->field_0x29 & 8) == 0)) &&
         ((pbVar5->usrdata != (void *)0x0 && ((*(type_8 *)((int)pbVar5->usrdata + 0x24) & 0x10) == 0))
         )) {
        var_9 = var_15(pbVar5,var_5,s->owner,s);
        if (var_9 != 0) {
          var_22 = (var_5->flags ^ 8 | var_22 ^ 8) ^ 8;
        }
        pbVar5 = var_5->owner;
      }
    }
  }
  if ((var_22 & 0x2001) == 0) {
    local_44 = function_1::hold + 8;
    goto LAB_00047da5;
  }
  if ((var_22 & 1) == 0) {
    local_44 = (type_9 *)0x0;
    var_24 = (type_6 *)0x0;
    goto LAB_00047db8;
  }
  if ((var_22 & 2) == 0) {
LAB_00047e40:
    local_44 = function_1::hold + 4;
    if (((((var_22 & 0x502) != 0) &&
         (local_44 = function_1::hold + 7, (var_22 & 0x400000) == 0)) &&
        (local_44 = function_1::hold + 2, (var_22 & 0x400) == 0)) &&
       (local_44 = function_1::hold + 3, (var_22 & 8) != 0)) {
      var_23 = var_1 < var_2;
      var_12 = var_1 == var_2;
      if (var_12) {
        if ((var_8 == (type_6 *)0x4) || (var_8 == (type_6 *)0x9))
        goto LAB_00047ebf;
      }
      else {
        var_9 = 4;
        var_10 = (type_8 *)secname;
        var_11 = &DAT_000ae302;
        do {
          if (var_9 == 0) break;
          var_9 = var_9 + -1;
          var_23 = *var_10 < *var_11;
          var_12 = *var_10 == *var_11;
          var_10 = var_10 + (type_7)bVar20 * -2 + 1;
          var_11 = var_11 + (type_7)bVar20 * -2 + 1;
        } while (var_12);
        if ((!var_23 && !var_12) == var_23) {
LAB_00047ebf:
          local_44 = function_1::hold + 5;
          if ((var_22 & 2) != 0) goto LAB_00047da5;
        }
      }
      local_44 = function_1::hold;
      if ((var_22 & 0x10) == 0) {
        local_44 = function_1::hold + 1;
      }
    }
  }
  else if ((var_8 != (type_6 *)0x7) ||
          (local_44 = function_1::hold + 6, !var_23)) {
    var_23 = var_1 < var_2;
    var_12 = var_1 == var_2;
    if (!var_12) {
      var_9 = 5;
      var_10 = (type_8 *)secname;
      var_11 = (type_8 *)".note";
      do {
        if (var_9 == 0) break;
        var_9 = var_9 + -1;
        var_23 = *var_10 < *var_11;
        var_12 = *var_10 == *var_11;
        var_10 = var_10 + (type_7)bVar20 * -2 + 1;
        var_11 = var_11 + (type_7)bVar20 * -2 + 1;
      } while (var_12);
      local_44 = function_1::hold + 6;
      if ((!var_23 && !var_12) == var_23) goto LAB_00047da5;
    }
    goto LAB_00047e40;
  }
LAB_00047da5:
  var_24 = (type_6 *)local_44->os;
  if (var_24 != (type_6 *)0x0) goto LAB_00047db8;
  if (local_44->name == (char *)0x0) {
    if (lang_output_section_statement.head != (type_6 *)0x0) {
      var_27 = (type_6 *)0x0;
      var_28 = (type_6 *)0x0;
      var_24 = (type_6 *)0x0;
      var_8 = (type_6 *)0x0;
      plVar14 = lang_output_section_statement.head;
      var_7 = (type_6 *)0x0;
      do {
        var_17 = plVar14;
        var_23 = false;
        var_12 = (var_17->output_section_statement).var_13 == 0;
        if ((var_17->output_section_statement).var_13 < 0) {
LAB_00048272:
          var_5 = (var_17->output_section_statement).type_11;
LAB_00048240:
          if (var_5 != (type_2 *)0x0) {
            var_25 = var_5->flags;
            var_7 = var_24;
joined_r0x00048289:
            if (((var_25 & 1) != 0) && (var_24 = var_7, var_28 = var_17, (var_25 & 8) != 0)) {
              var_27 = var_17;
            }
          }
        }
        else {
          var_5 = (var_17->data_statement).output_section;
          var_9 = 4;
          paVar10 = var_5;
          var_10 = &DAT_000ae302;
          do {
            if (var_9 == 0) break;
            var_9 = var_9 + -1;
            var_23 = *(type_8 *)&paVar10->name < *var_10;
            var_12 = *(type_8 *)&paVar10->name == *var_10;
            paVar10 = (type_2 *)((int)paVar10 + (type_7)bVar20 * -2 + 1);
            var_10 = var_10 + (type_7)bVar20 * -2 + 1;
          } while (var_12);
          if ((!var_23 && !var_12) != var_23) goto LAB_00048272;
          var_26 = (char)var_5->id == 'a';
          var_12 = false;
          var_23 = !bVar19;
          if (!var_23) break;
          var_9 = 5;
          var_10 = &DAT_000ae31b;
          var_11 = (type_8 *)((int)&var_5->id + (type_7)var_26);
          do {
            if (var_9 == 0) break;
            var_9 = var_9 + -1;
            var_12 = *var_10 < *var_11;
            var_23 = *var_10 == *var_11;
            var_10 = var_10 + (type_7)bVar20 * -2 + 1;
            var_11 = var_11 + (type_7)bVar20 * -2 + 1;
          } while (var_23);
          if ((!var_12 && !var_23) == var_12) break;
          var_23 = (s->name[4] == 'a') == var_26;
          if ((var_8 == (type_6 *)0x0) || (var_23)) {
            var_8 = var_17;
          }
          var_5 = (var_17->output_section_statement).type_11;
          if ((var_24 != (type_6 *)0x0) && (!var_23)) goto LAB_00048240;
          if (var_5 != (type_2 *)0x0) {
            var_25 = var_5->flags;
            var_7 = var_17;
            goto joined_r0x00048289;
          }
        }
        var_7 = var_17;
        plVar14 = (type_6 *)(var_17->wild_statement).section_list;
      } while ((type_6 *)(var_17->wild_statement).section_list !=
               (type_6 *)0x0);
      if ((((var_24 == (type_6 *)0x0) &&
           (var_24 = var_8, var_8 == (type_6 *)0x0)) &&
          (var_24 = var_27, var_27 == (type_6 *)0x0)) &&
         (var_24 = var_7, var_28 != (type_6 *)0x0)) {
        var_24 = var_28;
      }
      local_44->os = (type_1 *)var_24;
      goto LAB_00048089;
    }
  }
  else {
    var_24 = (type_6 *)var_14(local_44->name,0,0);
    local_44->os = (type_1 *)var_24;
LAB_00048089:
    if (var_24 != (type_6 *)0x0) goto LAB_00047db8;
  }
  var_24 = (type_6 *)
             var_29
                       (s,var_22,&local_44->os,
                        (type_12)PTR__bfd_elf_match_sections_by_type_001cdfe0);
  if (var_24 == (type_6 *)0x0) {
    var_24 = lang_output_section_statement.head;
  }
LAB_00047db8:
  var_19 = var_30(s,secname,var_13,&var_24->output_section_statement,local_44,
                              (type_13 *)0x0,(type_14 *)0x0);
  return var_19;
}


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

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

undefined * MASKED(int *param_1,char *param_2,int param_3)

{
  uint uVar1;
  undefined *puVar2;
  int *piVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  byte *pbVar7;
  byte *pbVar8;
  undefined **ppuVar9;
  undefined *puVar10;
  undefined *puVar11;
  byte *pbVar12;
  bool bVar13;
  bool bVar14;
  bool bVar15;
  bool bVar16;
  byte bVar17;
  uint local_48;
  undefined **local_44;
  undefined *local_40;
  undefined *local_38;
  undefined *local_34;
  undefined *local_28;
  
  bVar17 = 0;
  local_34 = (undefined *)0x0;
  uVar1 = *(uint *)(*(int *)(param_1[0x2b] + 4) + 4);
  bVar14 = uVar1 == 5;
  iVar5 = *(int *)(*(int *)(DAT_001d0414 + 4) + 4);
  if (bVar14) {
    local_34 = *(undefined **)(param_1[0x29] + 4);
  }
  if ((DAT_001d03e0 & 3) == 2) {
LAB_00047c3c:
    bVar16 = false;
  }
  else if ((DAT_001d03e4 & 0x40) == 0) {
    bVar16 = false;
LAB_00047b5c:
    if (((bVar14) && (iVar5 == 5)) && (uVar6 = param_1[5], (uVar6 & 1) != 0)) {
LAB_00047b7b:
      if ((*(byte *)(param_1[0x29] + 0xb) & 1) != 0) {
        if (DAT_001d03a0 != (undefined *)0x0) {
          puVar2 = DAT_001d03a0;
          do {
            puVar11 = *(undefined **)(puVar2 + 0x1c);
            if (((puVar11 != PTR__bfd_std_section_001cdfbc + 0x180) && (puVar11 != (undefined *)0x0)
                ) && (((*(byte *)(*(int *)(puVar11 + 0xa4) + 0xb) & 1) != 0 &&
                      ((((*(uint *)(puVar11 + 0x14) ^ uVar6) & 0x11b) == 0 &&
                       (*(int *)(*(int *)(puVar11 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c))
                       ))))) goto LAB_00047fcb;
            puVar2 = *(undefined **)(puVar2 + 0x10);
          } while (puVar2 != (undefined *)0x0);
        }
        param_2 = ".mbind.bss";
        if (((uVar6 & 0x102) != 0) && (param_2 = ".mbind.data", (uVar6 & 8) != 0)) {
          param_2 = ".mbind.text";
          if ((uVar6 & 0x10) == 0) {
            param_2 = ".mbind.rodata";
          }
        }
      }
    }
  }
  else {
    uVar6 = param_1[5];
    if ((uVar6 & 1) == 0) goto LAB_00047c3c;
    bVar13 = uVar1 < 5;
    bVar15 = uVar1 == 5;
    if (bVar15) {
      if (local_34 == (undefined *)0x4) {
        param_2 = ".rela.dyn";
        bVar16 = true;
        goto LAB_00047b5c;
      }
      bVar16 = local_34 == (undefined *)0x9;
      if (bVar16) {
        param_2 = ".rel.dyn";
      }
      if (iVar5 == 5) goto LAB_00047b7b;
    }
    else {
      iVar4 = 4;
      bVar16 = false;
      pbVar7 = (byte *)param_2;
      pbVar8 = &DAT_000ae302;
      do {
        if (iVar4 == 0) break;
        iVar4 = iVar4 + -1;
        bVar13 = *pbVar7 < *pbVar8;
        bVar15 = *pbVar7 == *pbVar8;
        pbVar7 = pbVar7 + 1;
        pbVar8 = pbVar8 + 1;
      } while (bVar15);
      if ((!bVar13 && !bVar15) == bVar13) {
        bVar16 = true;
        if (((byte *)param_2)[4] == 0x61) {
          param_2 = ".rela.dyn";
        }
        else {
          param_2 = ".rel.dyn";
        }
      }
    }
  }
  if ((param_3 == 0) &&
     (puVar2 = (undefined *)FUN_000256d0(param_2,0,0), puVar2 != (undefined *)0x0)) {
    puVar11 = (undefined *)0x0;
    do {
      iVar4 = *(int *)(puVar2 + 0x1c);
      puVar10 = puVar2;
      if (iVar4 != 0) {
        if (*(uint *)(iVar4 + 0x14) == 0) goto LAB_00047fcb;
        puVar10 = puVar11;
        if (((*(uint *)(iVar4 + 0x14) ^ param_1[5]) & 3) == 0) {
          if ((uVar1 != 5) || (iVar5 != 5)) goto LAB_00047fcb;
          if ((*(int *)(*(int *)(iVar4 + 0xa4) + 0x2c) == *(int *)(param_1[0x29] + 0x2c)) &&
             (((DAT_001d03e0 & 3) != 2 ||
              (-1 < (int)(*(uint *)(*(int *)(iVar4 + 0xa4) + 8) ^ *(uint *)(param_1[0x29] + 8))))))
          {
            iVar4 = _bfd_elf_match_sections_by_type(DAT_001d0414,iVar4,param_1[0x2b],param_1);
            if (iVar4 != 0) goto LAB_00047fcb;
            if (*(int *)(puVar2 + 0x1c) == 0) {
              puVar10 = puVar2;
            }
          }
        }
      }
      puVar2 = (undefined *)FUN_00025b20(puVar2,0);
      puVar11 = puVar10;
    } while (puVar2 != (undefined *)0x0);
    param_3 = 0x17e;
    if (puVar10 != (undefined *)0x0) {
      FUN_00026550(puVar10 + 8,param_1,0,puVar10);
      return puVar10;
    }
  }
  if (DAT_001cfba8 == 0) {
    ppuVar9 = &PTR_s__text_001ce860;
    do {
      if (*ppuVar9 != (undefined *)0x0) {
        puVar2 = (undefined *)FUN_000256d0(*ppuVar9,0,0);
        ppuVar9[2] = puVar2;
        if ((puVar2 != (undefined *)0x0) && (*(int *)(puVar2 + 0x4c) == 0)) {
          *(undefined **)(puVar2 + 0x4c) = ppuVar9[1];
        }
      }
      ppuVar9 = ppuVar9 + 6;
    } while (ppuVar9 != (undefined **)&DAT_001ce938);
    DAT_001cfba8 = 1;
  }
  bVar13 = false;
  bVar15 = (DAT_001d03e0 & 2) == 0;
  if (bVar15) {
    iVar5 = 0xd;
    pbVar7 = (byte *)*param_1;
    pbVar8 = (byte *)".gnu.warning.";
    do {
      if (iVar5 == 0) break;
      iVar5 = iVar5 + -1;
      bVar13 = *pbVar7 < *pbVar8;
      bVar15 = *pbVar7 == *pbVar8;
      pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;
      pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;
    } while (bVar15);
    if (((!bVar13 && !bVar15) == bVar13) &&
       (puVar2 = DAT_001ce868, DAT_001ce868 != (undefined *)0x0)) {
LAB_00047fcb:
      FUN_00026550(puVar2 + 8,param_1,0,puVar2);
      return puVar2;
    }
  }
  local_48 = param_1[5];
  if ((DAT_001d03e0 & 3) != 2) {
    iVar5 = param_1[0x2b];
    piVar3 = param_1;
    while (piVar3 = (int *)bfd_get_next_section_by_name(iVar5,piVar3), piVar3 != (int *)0x0) {
      iVar5 = piVar3[0x2b];
      if ((((piVar3[0x15] == 0) && (((local_48 ^ piVar3[5]) & 3) == 0 && (piVar3[5] & 0x8000U) == 0)
           ) && ((*(byte *)(iVar5 + 0x29) & 8) == 0)) &&
         ((*(int *)(iVar5 + 0xa4) != 0 && ((*(byte *)(*(int *)(iVar5 + 0xa4) + 0x24) & 0x10) == 0)))
         ) {
        iVar5 = _bfd_elf_match_sections_by_type(iVar5,piVar3,param_1[0x2b],param_1);
        if (iVar5 != 0) {
          local_48 = (piVar3[5] ^ 8U | local_48 ^ 8) ^ 8;
        }
        iVar5 = piVar3[0x2b];
      }
    }
  }
  if ((local_48 & 0x2001) == 0) {
    local_44 = &PTR_s__comment_001ce920;
    goto LAB_00047da5;
  }
  if ((local_48 & 1) == 0) {
    local_44 = (undefined **)0x0;
    local_40 = (undefined *)0x0;
    goto LAB_00047db8;
  }
  if ((local_48 & 2) == 0) {
LAB_00047e40:
    local_44 = &PTR_s__bss_001ce8c0;
    if (((((local_48 & 0x502) != 0) &&
         (local_44 = &PTR_s__sdata_001ce908, (local_48 & 0x400000) == 0)) &&
        (local_44 = &PTR_s__tdata_001ce890, (local_48 & 0x400) == 0)) &&
       (local_44 = &PTR_s__data_001ce8a8, (local_48 & 8) != 0)) {
      bVar14 = uVar1 < 5;
      bVar13 = uVar1 == 5;
      if (bVar13) {
        if ((local_34 == (undefined *)0x4) || (local_34 == (undefined *)0x9)) goto LAB_00047ebf;
      }
      else {
        iVar5 = 4;
        pbVar7 = (byte *)param_2;
        pbVar8 = &DAT_000ae302;
        do {
          if (iVar5 == 0) break;
          iVar5 = iVar5 + -1;
          bVar14 = *pbVar7 < *pbVar8;
          bVar13 = *pbVar7 == *pbVar8;
          pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;
          pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;
        } while (bVar13);
        if ((!bVar14 && !bVar13) == bVar14) {
LAB_00047ebf:
          local_44 = (undefined **)&DAT_001ce8d8;
          if ((local_48 & 2) != 0) goto LAB_00047da5;
        }
      }
      local_44 = &PTR_s__text_001ce860;
      if ((local_48 & 0x10) == 0) {
        local_44 = (undefined **)&DAT_001ce878;
      }
    }
  }
  else if ((local_34 != (undefined *)0x7) || (local_44 = &PTR_s__interp_001ce8f0, !bVar14)) {
    bVar14 = uVar1 < 5;
    bVar13 = uVar1 == 5;
    if (!bVar13) {
      iVar5 = 5;
      pbVar7 = (byte *)param_2;
      pbVar8 = (byte *)".note";
      do {
        if (iVar5 == 0) break;
        iVar5 = iVar5 + -1;
        bVar14 = *pbVar7 < *pbVar8;
        bVar13 = *pbVar7 == *pbVar8;
        pbVar7 = pbVar7 + (uint)bVar17 * -2 + 1;
        pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;
      } while (bVar13);
      local_44 = &PTR_s__interp_001ce8f0;
      if ((!bVar14 && !bVar13) == bVar14) goto LAB_00047da5;
    }
    goto LAB_00047e40;
  }
LAB_00047da5:
  local_40 = local_44[2];
  if (local_40 != (undefined *)0x0) goto LAB_00047db8;
  if (*local_44 == (undefined *)0x0) {
    if (DAT_001d03a0 != (undefined *)0x0) {
      local_38 = (undefined *)0x0;
      local_28 = (undefined *)0x0;
      local_40 = (undefined *)0x0;
      local_34 = (undefined *)0x0;
      puVar11 = DAT_001d03a0;
      puVar2 = (undefined *)0x0;
      do {
        puVar10 = puVar11;
        bVar14 = false;
        bVar13 = *(int *)(puVar10 + 0x48) == 0;
        if (*(int *)(puVar10 + 0x48) < 0) {
LAB_00048272:
          iVar5 = *(int *)(puVar10 + 0x1c);
LAB_00048240:
          if (iVar5 != 0) {
            uVar1 = *(uint *)(iVar5 + 0x14);
            puVar2 = local_40;
joined_r0x00048289:
            if (((uVar1 & 1) != 0) && (local_40 = puVar2, local_28 = puVar10, (uVar1 & 8) != 0)) {
              local_38 = puVar10;
            }
          }
        }
        else {
          pbVar7 = *(byte **)(puVar10 + 0x18);
          iVar5 = 4;
          pbVar8 = pbVar7;
          pbVar12 = &DAT_000ae302;
          do {
            if (iVar5 == 0) break;
            iVar5 = iVar5 + -1;
            bVar14 = *pbVar8 < *pbVar12;
            bVar13 = *pbVar8 == *pbVar12;
            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;
            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;
          } while (bVar13);
          if ((!bVar14 && !bVar13) != bVar14) goto LAB_00048272;
          bVar13 = false;
          bVar14 = !bVar16;
          if (!bVar14) break;
          iVar5 = 5;
          pbVar8 = &DAT_000ae31b;
          pbVar12 = pbVar7 + (pbVar7[4] == 0x61) + 4;
          do {
            if (iVar5 == 0) break;
            iVar5 = iVar5 + -1;
            bVar13 = *pbVar8 < *pbVar12;
            bVar14 = *pbVar8 == *pbVar12;
            pbVar8 = pbVar8 + (uint)bVar17 * -2 + 1;
            pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;
          } while (bVar14);
          if ((!bVar13 && !bVar14) == bVar13) break;
          bVar14 = (*(char *)(*param_1 + 4) == 'a') == (pbVar7[4] == 0x61);
          if ((local_34 == (undefined *)0x0) || (bVar14)) {
            local_34 = puVar10;
          }
          iVar5 = *(int *)(puVar10 + 0x1c);
          if ((local_40 != (undefined *)0x0) && (!bVar14)) goto LAB_00048240;
          if (iVar5 != 0) {
            uVar1 = *(uint *)(iVar5 + 0x14);
            puVar2 = puVar10;
            goto joined_r0x00048289;
          }
        }
        puVar2 = puVar10;
        puVar11 = *(undefined **)(puVar10 + 0x10);
      } while (*(undefined **)(puVar10 + 0x10) != (undefined *)0x0);
      if ((((local_40 == (undefined *)0x0) && (local_40 = local_34, local_34 == (undefined *)0x0))
          && (local_40 = local_38, local_38 == (undefined *)0x0)) &&
         (local_40 = puVar2, local_28 != (undefined *)0x0)) {
        local_40 = local_28;
      }
      local_44[2] = local_40;
      goto LAB_00048089;
    }
  }
  else {
    local_40 = (undefined *)FUN_000256d0(*local_44,0,0);
    local_44[2] = local_40;
LAB_00048089:
    if (local_40 != (undefined *)0x0) goto LAB_00047db8;
  }
  local_40 = (undefined *)
             FUN_00025ba0(param_1,local_48,local_44 + 2,PTR__bfd_elf_match_sections_by_type_001cdfe0
                         );
  if (local_40 == (undefined *)0x0) {
    local_40 = DAT_001d03a0;
  }
LAB_00047db8:
  puVar2 = (undefined *)FUN_00029730(param_1,param_2,param_3,local_40,local_44,0,0);
  return puVar2;
}

