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

void obj_elf_change_section
               (char *name,uint type,uint info,bfd_vma attr,int entsize,char *group_name,
               int linkonce,int push)

{
  void *pvVar1;
  section_stack *psVar2;
  segT paVar3;
  byte *pbVar4;
  char *pcVar5;
  uint uVar6;
  section_stack *psVar7;
  symbolS *psVar8;
  uint uVar9;
  int iVar10;
  subsegT sVar11;
  uint uVar12;
  byte *pbVar13;
  byte *pbVar14;
  bool bVar15;
  bool bVar16;
  bool bVar17;
  byte bVar18;
  uint local_3c;
  segT local_34;
  section_match match;
  
  bVar18 = 0;
  local_3c = type;
  paVar3 = now_seg;
  sVar11 = now_subseg;
  if (push != 0) {
    psVar7 = (section_stack *)xmalloc(0x14);
    psVar2 = psVar7;
    psVar7->next = section_stack;
    section_stack = psVar2;
    psVar7->prev_subseg = previous_subsection;
    paVar3 = now_seg;
    psVar7->prev_seg = previous_section;
    psVar7->seg = paVar3;
    sVar11 = now_subseg;
    psVar7->subseg = now_subseg;
  }
  match.group_name = group_name;
  match.info = info;
  previous_subsection = sVar11;
  previous_section = paVar3;
  paVar3 = (segT)bfd_get_section_by_name_if(stdoutput,name,get_section,&match);
  if (paVar3 == (segT)0x0) {
    local_34 = subseg_force_new(name,0);
  }
  else {
    subseg_set(paVar3,0);
    local_34 = paVar3;
  }
  pbVar4 = (byte *)(**(code **)((int)stdoutput->xvec->backend_data + 0x58))(stdoutput,local_34);
  if (pbVar4 == (byte *)0x0) {
LAB_00046b14:
    if ((attr & 0x1000002) == 0x1000000) {
      pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar4);
                    /* WARNING: Subroutine does not return */
      as_fatal(pcVar5,name);
    }
    uVar9 = attr >> 1 & 1;
    uVar6 = attr << 0x13 & 0x1000000 |
            attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |
            (int)attr >> 0x10 & 0x8000U;
    uVar9 = uVar9 & local_3c != 8;
LAB_00046b74:
    uVar12 = 4;
    if ((attr & 1) == 0) goto LAB_00046d00;
  }
  else {
    uVar9 = *(uint *)(pbVar4 + 0xc);
    if ((type == 0) || (type == uVar9)) {
LAB_00046b08:
      local_3c = uVar9;
      if (paVar3 != (segT)0x0) goto LAB_00046b14;
    }
    else {
      if ((uVar9 - 0xe < 3) || (paVar3 != (segT)0x0)) {
        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);
        as_warn(pcVar5,name);
        uVar9 = *(uint *)(pbVar4 + 0xc);
        goto LAB_00046b08;
      }
      if ((uVar9 == 7) || (0x6fffffff < type)) {
      }
      else {
        pcVar5 = (char *)dcgettext(0,"setting incorrect section type for %s",5);
        as_warn(pcVar5,name);
      }
    }
    uVar9 = ~*(uint *)(pbVar4 + 0x10) & attr;
    if ((uVar9 & 0xfffff) == 0) {
LAB_00046ce0:
      attr = attr | *(uint *)(pbVar4 + 0x10);
      goto LAB_00046b14;
    }
    if (*(int *)(pbVar4 + 0xc) == 7) {
      if ((attr - 2 & 0xfffffffd) != 0) {
        if (*(int *)(pbVar4 + 8) == -2) goto LAB_00046cc6;
LAB_00046c82:
        pbVar4 = (byte *)group_name;
        if (group_name == (char *)0x0) {
LAB_00046c8e:
          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);
          as_warn(pcVar5,name);
        }
        goto LAB_00046b14;
      }
      goto LAB_00046ce0;
    }
    if (*(int *)(pbVar4 + 8) == -2) {
LAB_00046cc6:
      if ((name[*(int *)(pbVar4 + 4)] == '.') && ((uVar9 & 0xffffffcf) == 0)) goto LAB_00046ce0;
    }
    bVar15 = attr < 2;
    bVar17 = attr == 2;
    if (!bVar17) {
      bVar15 = attr < 4;
      bVar17 = attr == 4;
      if (!bVar17) goto LAB_00046c82;
      iVar10 = 0x10;
      pbVar13 = (byte *)name;
      pbVar14 = (byte *)".note.GNU-stack";
      do {
        pbVar4 = pbVar13;
        if (iVar10 == 0) break;
        iVar10 = iVar10 + -1;
        pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;
        bVar15 = *pbVar13 < *pbVar14;
        bVar17 = *pbVar13 == *pbVar14;
        pbVar13 = pbVar4;
        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;
      } while (bVar17);
      if ((!bVar15 && !bVar17) == bVar15) {
        uVar6 = 0x10;
        uVar12 = 0xc;
        uVar9 = 0;
        goto LAB_00046b86;
      }
LAB_00046f32:
      if (group_name == (char *)0x0) goto LAB_00046c8e;
      uVar9 = attr >> 1 & 1;
      uVar6 = attr << 0x13 & 0x1000000 |
              attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |
              (int)attr >> 0x10 & 0x8000U;
      uVar9 = local_3c != 8 & uVar9;
      goto LAB_00046b74;
    }
    iVar10 = 8;
    pbVar4 = (byte *)name;
    pbVar13 = (byte *)".interp";
    do {
      if (iVar10 == 0) break;
      iVar10 = iVar10 + -1;
      bVar15 = *pbVar4 < *pbVar13;
      bVar17 = *pbVar4 == *pbVar13;
      pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;
      pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;
    } while (bVar17);
    bVar16 = false;
    bVar15 = (!bVar15 && !bVar17) == bVar15;
    if (!bVar15) {
      iVar10 = 8;
      pbVar4 = (byte *)name;
      pbVar13 = (byte *)".strtab";
      do {
        if (iVar10 == 0) break;
        iVar10 = iVar10 + -1;
        bVar16 = *pbVar4 < *pbVar13;
        bVar15 = *pbVar4 == *pbVar13;
        pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;
        pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;
      } while (bVar15);
      bVar17 = false;
      bVar15 = (!bVar16 && !bVar15) == bVar16;
      if (!bVar15) {
        iVar10 = 8;
        pbVar13 = (byte *)name;
        pbVar14 = (byte *)".symtab";
        do {
          pbVar4 = pbVar13;
          if (iVar10 == 0) break;
          iVar10 = iVar10 + -1;
          pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;
          bVar17 = *pbVar13 < *pbVar14;
          bVar15 = *pbVar13 == *pbVar14;
          pbVar13 = pbVar4;
          pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;
        } while (bVar15);
        if ((!bVar17 && !bVar15) != bVar17) goto LAB_00046f32;
      }
    }
    uVar6 = 1;
    uVar9 = (uint)(local_3c != 8);
LAB_00046d00:
    uVar12 = 0xc;
  }
  uVar9 = uVar9 * 2;
LAB_00046b86:
  uVar9 = ppc_section_flags(uVar9 | uVar6 | uVar12,attr,local_3c);
  if (linkonce != 0) {
    uVar9 = uVar9 | 0x20000;
  }
  if (paVar3 == (segT)0x0) {
    if (local_3c == 0) {
      local_3c = bfd_elf_get_default_section_type(uVar9);
    }
    pvVar1 = local_34->used_by_bfd;
    *(uint *)((int)pvVar1 + 4) = local_3c;
    *(bfd_vma *)((int)pvVar1 + 8) = attr;
    *(uint *)((int)pvVar1 + 0x20) = info;
    if (local_3c == 8) {
      pbVar4 = (byte *)((int)local_34->userdata + 4);
      *pbVar4 = *pbVar4 | 2;
    }
    bfd_set_section_flags(stdoutput,local_34,uVar9);
    if ((uVar9 & 0x800000) != 0) {
      local_34->entsize = entsize;
    }
    *(char **)((int)local_34->used_by_bfd + 0x70) = group_name;
    psVar8 = symbol_find(name);
    if (psVar8 != (symbolS *)0x0) {
      symbol_set_bfdsym(psVar8,local_34->symbol);
      return;
    }
    psVar8 = section_symbol(local_34);
    symbol_table_insert(psVar8);
  }
  else {
    if ((local_3c != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_3c)) {
      pcVar5 = (char *)dcgettext(0,"ignoring changed section type for %s",5);
      as_warn(pcVar5,name);
    }
    if (attr != 0) {
      if (((paVar3->flags ^ uVar9) & 0x183841b) == 0) {
        *(bfd_vma *)((int)local_34->used_by_bfd + 8) = attr;
      }
      else {
        pcVar5 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);
        as_warn(pcVar5,name);
      }
      if (((uVar9 & 0x800000) != 0) && (paVar3->entsize != entsize)) {
        pcVar5 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);
        as_warn(pcVar5,name);
      }
    }
  }
  return;
}



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

void FUN_00046a00(byte *param_1,uint param_2,undefined4 param_3,uint param_4,int param_5,
                 byte *param_6,int param_7,int param_8)

{
  undefined4 *puVar1;
  int iVar2;
  byte *pbVar3;
  undefined4 uVar4;
  uint uVar5;
  undefined4 *puVar6;
  uint uVar7;
  int iVar8;
  undefined4 uVar9;
  uint uVar10;
  byte *pbVar11;
  byte *pbVar12;
  bool bVar13;
  bool bVar14;
  bool bVar15;
  byte bVar16;
  uint local_3c;
  int local_34;
  byte *local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  bVar16 = 0;
  uStack_14 = 0x46a09;
  local_3c = param_2;
  uVar4 = DAT_00072cdc;
  uVar9 = DAT_00072dcc;
  if (param_8 != 0) {
    puVar6 = (undefined4 *)xmalloc(0x14);
    puVar1 = puVar6;
    *puVar6 = DAT_00072bd4;
    DAT_00072bd4 = puVar1;
    puVar6[4] = DAT_00072bd8;
    uVar4 = DAT_00072cdc;
    puVar6[2] = DAT_00072bdc;
    puVar6[1] = uVar4;
    uVar9 = DAT_00072dcc;
    puVar6[3] = DAT_00072dcc;
  }
  local_24 = param_6;
  local_20 = param_3;
  DAT_00072bd8 = uVar9;
  DAT_00072bdc = uVar4;
  iVar2 = bfd_get_section_by_name_if(DAT_00072e64,param_1,FUN_000448d0,&local_24);
  if (iVar2 == 0) {
    local_34 = FUN_00034870(param_1,0);
  }
  else {
    FUN_000348a0(iVar2,0);
    local_34 = iVar2;
  }
  pbVar3 = (byte *)(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))
                             (DAT_00072e64,local_34);
  if (pbVar3 == (byte *)0x0) {
LAB_00046b14:
    if ((param_4 & 0x1000002) == 0x1000000) {
      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);
                    /* WARNING: Subroutine does not return */
      FUN_0002a7e0(uVar4,param_1);
    }
    uVar7 = param_4 >> 1 & 1;
    uVar5 = param_4 << 0x13 & 0x1000000 |
            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |
            (int)param_4 >> 0x10 & 0x8000U;
    uVar7 = uVar7 & local_3c != 8;
LAB_00046b74:
    uVar10 = 4;
    if ((param_4 & 1) == 0) goto LAB_00046d00;
  }
  else {
    uVar7 = *(uint *)(pbVar3 + 0xc);
    if ((param_2 == 0) || (param_2 == uVar7)) {
LAB_00046b08:
      local_3c = uVar7;
      if (iVar2 != 0) goto LAB_00046b14;
    }
    else {
      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {
        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);
        FUN_0002a660(uVar4,param_1);
        uVar7 = *(uint *)(pbVar3 + 0xc);
        goto LAB_00046b08;
      }
      if ((uVar7 == 7) || (0x6fffffff < param_2)) {
      }
      else {
        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);
        FUN_0002a660(uVar4,param_1);
      }
    }
    uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;
    if ((uVar7 & 0xfffff) == 0) {
LAB_00046ce0:
      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);
      goto LAB_00046b14;
    }
    if (*(int *)(pbVar3 + 0xc) == 7) {
      if ((param_4 - 2 & 0xfffffffd) != 0) {
        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;
LAB_00046c82:
        pbVar3 = param_6;
        if (param_6 == (byte *)0x0) {
LAB_00046c8e:
          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);
          FUN_0002a660(uVar4,param_1);
        }
        goto LAB_00046b14;
      }
      goto LAB_00046ce0;
    }
    if (*(int *)(pbVar3 + 8) == -2) {
LAB_00046cc6:
      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;
    }
    bVar13 = param_4 < 2;
    bVar15 = param_4 == 2;
    if (!bVar15) {
      bVar13 = param_4 < 4;
      bVar15 = param_4 == 4;
      if (!bVar15) goto LAB_00046c82;
      iVar8 = 0x10;
      pbVar11 = param_1;
      pbVar12 = (byte *)".note.GNU-stack";
      do {
        pbVar3 = pbVar11;
        if (iVar8 == 0) break;
        iVar8 = iVar8 + -1;
        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;
        bVar13 = *pbVar11 < *pbVar12;
        bVar15 = *pbVar11 == *pbVar12;
        pbVar11 = pbVar3;
        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;
      } while (bVar15);
      if ((!bVar13 && !bVar15) == bVar13) {
        uVar5 = 0x10;
        uVar10 = 0xc;
        uVar7 = 0;
        goto LAB_00046b86;
      }
LAB_00046f32:
      if (param_6 == (byte *)0x0) goto LAB_00046c8e;
      uVar7 = param_4 >> 1 & 1;
      uVar5 = param_4 << 0x13 & 0x1000000 |
              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |
              (int)param_4 >> 0x10 & 0x8000U;
      uVar7 = local_3c != 8 & uVar7;
      goto LAB_00046b74;
    }
    iVar8 = 8;
    pbVar3 = param_1;
    pbVar11 = (byte *)".interp";
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      bVar13 = *pbVar3 < *pbVar11;
      bVar15 = *pbVar3 == *pbVar11;
      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;
    } while (bVar15);
    bVar14 = false;
    bVar13 = (!bVar13 && !bVar15) == bVar13;
    if (!bVar13) {
      iVar8 = 8;
      pbVar3 = param_1;
      pbVar11 = (byte *)".strtab";
      do {
        if (iVar8 == 0) break;
        iVar8 = iVar8 + -1;
        bVar14 = *pbVar3 < *pbVar11;
        bVar13 = *pbVar3 == *pbVar11;
        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;
        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;
      } while (bVar13);
      bVar15 = false;
      bVar13 = (!bVar14 && !bVar13) == bVar14;
      if (!bVar13) {
        iVar8 = 8;
        pbVar11 = param_1;
        pbVar12 = (byte *)".symtab";
        do {
          pbVar3 = pbVar11;
          if (iVar8 == 0) break;
          iVar8 = iVar8 + -1;
          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;
          bVar15 = *pbVar11 < *pbVar12;
          bVar13 = *pbVar11 == *pbVar12;
          pbVar11 = pbVar3;
          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;
        } while (bVar13);
        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;
      }
    }
    uVar5 = 1;
    uVar7 = (uint)(local_3c != 8);
LAB_00046d00:
    uVar10 = 0xc;
  }
  uVar7 = uVar7 * 2;
LAB_00046b86:
  uVar7 = FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c);
  if (param_7 != 0) {
    uVar7 = uVar7 | 0x20000;
  }
  if (iVar2 == 0) {
    if (local_3c == 0) {
      local_3c = bfd_elf_get_default_section_type(uVar7);
    }
    iVar2 = *(int *)(local_34 + 0x8c);
    *(uint *)(iVar2 + 4) = local_3c;
    *(uint *)(iVar2 + 8) = param_4;
    *(undefined4 *)(iVar2 + 0x20) = param_3;
    if (local_3c == 8) {
      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);
      *pbVar3 = *pbVar3 | 2;
    }
    bfd_set_section_flags(DAT_00072e64,local_34,uVar7);
    if ((uVar7 & 0x800000) != 0) {
      *(int *)(local_34 + 0x78) = param_5;
    }
    *(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6;
    iVar2 = FUN_000383f0(param_1);
    if (iVar2 != 0) {
      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));
      return;
    }
    uVar4 = FUN_000348f0(local_34);
    FUN_00035090(uVar4);
  }
  else {
    if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {
      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);
      FUN_0002a660(uVar4,param_1);
    }
    if (param_4 != 0) {
      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {
        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;
      }
      else {
        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);
        FUN_0002a660(uVar4,param_1);
      }
      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {
        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);
        FUN_0002a660(uVar4,param_1);
      }
    }
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000160b0
ADD EBX,0x235f7
SUB ESP,0x2c
MOV EAX,dword ptr [ESP + 0x5c]
MOV EDI,dword ptr [ESP + 0x44]
MOV EBP,dword ptr [ESP + 0x4c]
TEST EAX,EAX
JNZ 0x00046d10
LEA EAX,[EBX + 0x8cdc]
MOV ECX,dword ptr [EAX]
LEA EAX,[EBX + 0x8dcc]
MOV EDX,dword ptr [EAX]
MOV EAX,dword ptr [ESP + 0x54]
MOV dword ptr [EBX + 0x8bdc],ECX
MOV dword ptr [EBX + 0x8bd8],EDX
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x48]
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[ESP + 0x18]
PUSH EAX
LEA EAX,[EBX + 0xfffda8d0]
PUSH EAX
LEA EAX,[EBX + 0x8e64]
PUSH dword ptr [ESP + 0x48]
MOV dword ptr [ESP + 0x18],EAX
PUSH dword ptr [EAX]
CALL 0x00014050
MOV dword ptr [ESP + 0x14],EAX
MOV ESI,EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00046d60
SUB ESP,0x8
PUSH 0x0
PUSH EAX
CALL 0x000348a0
ADD ESP,0x10
MOV dword ptr [ESP + 0x8],ESI
MOV EAX,dword ptr [ESP + 0xc]
SUB ESP,0x8
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EAX + 0x4]
MOV EDX,dword ptr [EDX + 0x1c0]
PUSH dword ptr [ESP + 0x10]
PUSH EAX
CALL dword ptr [EDX + 0x58]
MOV ESI,EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00046d80
MOV EAX,dword ptr [EAX + 0xc]
MOV dword ptr [ESP],EAX
TEST EDI,EDI
JZ 0x00046b08
CMP EDI,EAX
JZ 0x00046b08
SUB EAX,0xe
CMP EAX,0x2
JBE 0x00046adf
MOV EAX,dword ptr [ESP + 0x4]
TEST EAX,EAX
JZ 0x00046c38
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe9590]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141c0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x48]
PUSH EAX
CALL 0x0002a660
MOV EAX,dword ptr [ESI + 0xc]
MOV dword ptr [ESP + 0x10],EAX
ADD ESP,0x10
MOV EDI,dword ptr [ESP + 0x4]
TEST EDI,EDI
JZ 0x00046c50
MOV EAX,EBP
AND EAX,0x1000002
CMP EAX,0x1000000
JZ 0x00046ff3
MOV ECX,EBP
LEA EDX,[EBP*0x4 + 0x0]
MOV EAX,EBP
MOV ESI,EBP
SHR ECX,0x1
AND EDX,0x10
SHL EAX,0x13
AND ESI,0x400
AND ECX,0x1
MOV EDI,EBP
OR EDX,ECX
AND EDI,0x1
OR EDX,ESI
MOV ESI,EAX
AND EAX,0x1000000
AND ESI,0x800000
OR EDX,ESI
OR EAX,EDX
MOV EDX,EBP
SAR EDX,0x10
AND EDX,0x8000
OR EAX,EDX
CMP dword ptr [ESP],0x8
SETNZ DL
AND ECX,EDX
MOV EDX,0x4
TEST EDI,EDI
JZ 0x00046d00
AND ECX,0x1
ADD ECX,ECX
OR EAX,EDX
SUB ESP,0x4
OR ECX,EAX
PUSH dword ptr [ESP + 0x4]
PUSH EBP
PUSH ECX
CALL 0x00041280
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x58]
MOV ECX,dword ptr [ESP + 0x4]
MOV ESI,EAX
OR EAX,0x20000
TEST EDX,EDX
CMOVNZ ESI,EAX
TEST ECX,ECX
JZ 0x00046d90
MOV EDI,dword ptr [ESP]
TEST EDI,EDI
JZ 0x00046bd1
MOV EAX,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [EAX + 0x8c]
CMP dword ptr [EAX + 0x4],EDI
JNZ 0x00046e20
TEST EBP,EBP
JZ 0x00046c2d
MOV EDI,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [EDI + 0x14]
XOR EAX,ESI
TEST EAX,0x183841b
JNZ 0x00046e70
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x8c]
MOV dword ptr [EAX + 0x8],EBP
AND ESI,0x800000
JZ 0x00046c2d
MOV EAX,dword ptr [ESP + 0x4]
MOV EDI,dword ptr [ESP + 0x50]
CMP dword ptr [EAX + 0x78],EDI
JZ 0x00046c2d
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe9668]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141c0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x48]
PUSH EAX
CALL 0x0002a660
ADD ESP,0x10
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP dword ptr [ESP],0x7
JZ 0x00046c4a
CMP EDI,0x6fffffff
JBE 0x00046fc9
MOV dword ptr [ESP],EDI
LEA ESI,[ESI]
MOV EDX,dword ptr [ESI + 0x10]
MOV EAX,EDX
NOT EAX
AND EAX,EBP
TEST EAX,0xfffff
JZ 0x00046ce0
CMP dword ptr [ESI + 0xc],0x7
JZ 0x00046cb8
CMP dword ptr [ESI + 0x8],-0x2
JZ 0x00046cc6
CMP EBP,0x2
JZ 0x00046ed8
CMP EBP,0x4
JZ 0x00046f98
MOV ESI,dword ptr [ESP + 0x54]
TEST ESI,ESI
JNZ 0x00046b14
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe95b8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141c0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x48]
PUSH EAX
CALL 0x0002a660
ADD ESP,0x10
JMP 0x00046b14
LEA ECX,[EBP + -0x2]
AND ECX,0xfffffffd
JZ 0x00046ce0
CMP dword ptr [ESI + 0x8],-0x2
JNZ 0x00046c82
MOV ECX,dword ptr [ESI + 0x4]
MOV EDI,dword ptr [ESP + 0x40]
CMP byte ptr [EDI + ECX*0x1],0x2e
JNZ 0x00046c70
AND EAX,0xffffffcf
JNZ 0x00046c70
LEA ESI,[ESI]
NOP
OR EBP,EDX
JMP 0x00046b14
CMP dword ptr [ESP],0x8
MOV EAX,0x1
SETNZ CL
LEA ESI,[ESI]
MOV EDX,0xc
JMP 0x00046b81
SUB ESP,0xc
PUSH 0x14
CALL 0x00014820
MOV EDX,dword ptr [EBX + 0x8bd4]
MOV ESI,dword ptr [EBX + 0x8bd8]
ADD ESP,0x10
MOV dword ptr [EBX + 0x8bd4],EAX
MOV dword ptr [EAX],EDX
LEA EDX,[EBX + 0x8cdc]
MOV dword ptr [EAX + 0x10],ESI
MOV ECX,dword ptr [EDX]
MOV EDX,dword ptr [EBX + 0x8bdc]
MOV dword ptr [EAX + 0x8],EDX
LEA EDX,[EBX + 0x8dcc]
MOV dword ptr [EAX + 0x4],ECX
MOV EDX,dword ptr [EDX]
MOV dword ptr [EAX + 0xc],EDX
JMP 0x00046a36
SUB ESP,0x8
PUSH 0x0
PUSH dword ptr [ESP + 0x4c]
CALL 0x00034870
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
JMP 0x00046a96
MOV dword ptr [ESP],EDI
JMP 0x00046b14
MOV EDI,dword ptr [ESP]
TEST EDI,EDI
JZ 0x00046ea0
MOV EAX,dword ptr [ESP + 0x8]
MOV EDI,dword ptr [ESP]
MOV ECX,dword ptr [ESP + 0x48]
MOV EAX,dword ptr [EAX + 0x8c]
MOV dword ptr [EAX + 0x4],EDI
MOV dword ptr [EAX + 0x8],EBP
MOV dword ptr [EAX + 0x20],ECX
CMP EDI,0x8
JZ 0x00046e60
SUB ESP,0x4
PUSH ESI
MOV EDI,dword ptr [ESP + 0x10]
PUSH EDI
MOV EAX,dword ptr [ESP + 0x18]
PUSH dword ptr [EAX]
CALL 0x00014780
ADD ESP,0x10
AND ESI,0x800000
JNZ 0x00046e50
MOV EDI,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0x54]
SUB ESP,0xc
MOV EAX,dword ptr [EDI + 0x8c]
MOV dword ptr [EAX + 0x70],ECX
PUSH dword ptr [ESP + 0x4c]
CALL 0x000383f0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00046eb8
SUB ESP,0x8
PUSH dword ptr [EDI + 0x98]
PUSH EAX
CALL 0x00039840
ADD ESP,0x10
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe9614]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141c0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x48]
PUSH EAX
CALL 0x0002a660
ADD ESP,0x10
TEST EBP,EBP
JZ 0x00046c2d
JMP 0x00046bd5
MOV EAX,dword ptr [ESP + 0x50]
MOV dword ptr [EDI + 0x78],EAX
JMP 0x00046ddd
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x68]
OR byte ptr [EAX + 0x4],0x2
JMP 0x00046dbe
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe963c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141c0
POP EDI
POP EBP
PUSH dword ptr [ESP + 0x48]
PUSH EAX
CALL 0x0002a660
ADD ESP,0x10
JMP 0x00046bf6
SUB ESP,0xc
PUSH ESI
CALL 0x000143c0
MOV dword ptr [ESP + 0x10],EAX
ADD ESP,0x10
JMP 0x00046d9b
SUB ESP,0xc
PUSH dword ptr [ESP + 0x14]
CALL 0x000348f0
MOV dword ptr [ESP],EAX
CALL 0x00035090
ADD ESP,0x10
JMP 0x00046c2d
MOV ESI,dword ptr [ESP + 0x40]
MOV ECX,0x8
LEA EDI,[EBX + 0xfffe90aa]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00046cf0
MOV ESI,dword ptr [ESP + 0x40]
MOV ECX,0x8
LEA EDI,[EBX + 0xfffe90b2]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00046cf0
MOV ESI,dword ptr [ESP + 0x40]
MOV ECX,0x8
LEA EDI,[EBX + 0xfffe90ba]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00046cf0
MOV EAX,dword ptr [ESP + 0x54]
TEST EAX,EAX
JZ 0x00046c8e
MOV ECX,EBP
LEA EDX,[EBP*0x4 + 0x0]
MOV EAX,EBP
MOV EDI,EBP
SHR ECX,0x1
AND EDX,0x10
SHL EAX,0x13
AND EDI,0x1
AND ECX,0x1
OR EDX,ECX
MOV ESI,ECX
MOV ECX,EBP
AND ECX,0x400
OR EDX,ECX
MOV ECX,EAX
AND EAX,0x1000000
AND ECX,0x800000
OR EDX,ECX
OR EAX,EDX
MOV EDX,EBP
SAR EDX,0x10
AND EDX,0x8000
OR EAX,EDX
CMP dword ptr [ESP],0x8
SETNZ CL
AND ECX,ESI
JMP 0x00046b74
MOV ESI,dword ptr [ESP + 0x40]
MOV ECX,0x10
LEA EDI,[EBX + 0xfffe03ed]
CMPSB.REPE ES:EDI,ESI
SETA CL
SBB CL,0x0
MOVSX ECX,CL
TEST ECX,ECX
JNZ 0x00046f32
MOV EAX,0x10
MOV EDX,0xc
JMP 0x00046b86
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe9568]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141c0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x48]
PUSH EAX
CALL 0x0002a660
ADD ESP,0x10
MOV dword ptr [ESP],EDI
JMP 0x00046c50
LEA EAX,[EBX + 0xfffe95e4]
PUSH ESI
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141c0
POP EDI
POP EBP
PUSH dword ptr [ESP + 0x48]
PUSH EAX
CALL 0x0002a7e0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00046a00(byte *param_1,uint param_2,undefined4 param_3,uint param_4,int param_5,\n                 byte *param_6,int param_7,int param_8)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  byte *pbVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  byte bVar16;\n  uint local_3c;\n  int local_34;\n  byte *local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar16 = 0;\n  uStack_14 = 0x46a09;\n  local_3c = param_2;\n  uVar4 = DAT_00072cdc;\n  uVar9 = DAT_00072dcc;\n  if (param_8 != 0) {\n    puVar6 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar6;\n    *puVar6 = DAT_00072bd4;\n    DAT_00072bd4 = puVar1;\n    puVar6[4] = DAT_00072bd8;\n    uVar4 = DAT_00072cdc;\n    puVar6[2] = DAT_00072bdc;\n    puVar6[1] = uVar4;\n    uVar9 = DAT_00072dcc;\n    puVar6[3] = DAT_00072dcc;\n  }\n  local_24 = param_6;\n  local_20 = param_3;\n  DAT_00072bd8 = uVar9;\n  DAT_00072bdc = uVar4;\n  iVar2 = bfd_get_section_by_name_if(DAT_00072e64,param_1,FUN_000448d0,&local_24);\n  if (iVar2 == 0) {\n    local_34 = FUN_00034870(param_1,0);\n  }\n  else {\n    FUN_000348a0(iVar2,0);\n    local_34 = iVar2;\n  }\n  pbVar3 = (byte *)(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34);\n  if (pbVar3 == (byte *)0x0) {\nLAB_00046b14:\n    if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a7e0(uVar4,param_1);\n    }\n    uVar7 = param_4 >> 1 & 1;\n    uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U;\n    uVar7 = uVar7 & local_3c != 8;\nLAB_00046b74:\n    uVar10 = 4;\n    if ((param_4 & 1) == 0) goto LAB_00046d00;\n  }\n  else {\n    uVar7 = *(uint *)(pbVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n    uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar13 = param_4 < 2;\n    bVar15 = param_4 == 2;\n    if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }\n    iVar8 = 8;\n    pbVar3 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);\n    bVar14 = false;\n    bVar13 = (!bVar13 && !bVar15) == bVar13;\n    if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }\n    uVar5 = 1;\n    uVar7 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar10 = 0xc;\n  }\n  uVar7 = uVar7 * 2;\nLAB_00046b86:\n  uVar7 = FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c);\n  if (param_7 != 0) {\n    uVar7 = uVar7 | 0x20000;\n  }\n  if (iVar2 == 0) {\n    if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }\n    iVar2 = *(int *)(local_34 + 0x8c);\n    *(uint *)(iVar2 + 4) = local_3c;\n    *(uint *)(iVar2 + 8) = param_4;\n    *(undefined4 *)(iVar2 + 0x20) = param_3;\n    if (local_3c == 8) {\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    bfd_set_section_flags(DAT_00072e64,local_34,uVar7);\n    if ((uVar7 & 0x800000) != 0) {\n      *(int *)(local_34 + 0x78) = param_5;\n    }\n    *(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6;\n    iVar2 = FUN_000383f0(param_1);\n    if (iVar2 != 0) {\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }\n    uVar4 = FUN_000348f0(local_34);\n    FUN_00035090(uVar4);\n  }\n  else {\n    if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_00046a00(byte *param_1,uint param_2,undefined4 param_3,uint param_4,int param_5,\n                 byte *param_6,int param_7,int param_8)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  byte *pbVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  byte bVar16;\n  uint local_3c;\n  int local_34;\n  byte *local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar16 = 0;\n  uStack_14 = 0x46a09;\n  local_3c = param_2;\n  uVar4 = DAT_00072cdc;\n  uVar9 = DAT_00072dcc;\n  if (param_8 != 0) {\n    puVar6 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar6;\n    *puVar6 = DAT_00072bd4;\n    DAT_00072bd4 = puVar1;\n    puVar6[4] = DAT_00072bd8;\n    uVar4 = DAT_00072cdc;\n    puVar6[2] = DAT_00072bdc;\n    puVar6[1] = uVar4;\n    uVar9 = DAT_00072dcc;\n    puVar6[3] = DAT_00072dcc;\n  }\n  local_24 = param_6;\n  local_20 = param_3;\n  DAT_00072bd8 = uVar9;\n  DAT_00072bdc = uVar4;\n  iVar2 = bfd_get_section_by_name_if(DAT_00072e64,param_1,FUN_000448d0,&local_24);\n  if (iVar2 == 0) {\n    local_34 = FUN_00034870(param_1,0);\n  }\n  else {\n    FUN_000348a0(iVar2,0);\n    local_34 = iVar2;\n  }\n  pbVar3 = (byte *)(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34);\n  if (pbVar3 == (byte *)0x0) {\nLAB_00046b14:\n    if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a7e0(uVar4,param_1);\n    }\n    uVar7 = param_4 >> 1 & 1;\n    uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U;\n    uVar7 = uVar7 & local_3c != 8;\nLAB_00046b74:\n    uVar10 = 4;\n    if ((param_4 & 1) == 0) goto LAB_00046d00;\n  }\n  else {\n    uVar7 = *(uint *)(pbVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n    uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar13 = param_4 < 2;\n    bVar15 = param_4 == 2;\n    if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }\n    iVar8 = 8;\n    pbVar3 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);\n    bVar14 = false;\n    bVar13 = (!bVar13 && !bVar15) == bVar13;\n    if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }\n    uVar5 = 1;\n    uVar7 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar10 = 0xc;\n  }\n  uVar7 = uVar7 * 2;\nLAB_00046b86:\n  uVar7 = FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c);\n  if (param_7 != 0) {\n    uVar7 = uVar7 | 0x20000;\n  }\n  if (iVar2 == 0) {\n    if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }\n    iVar2 = *(int *)(local_34 + 0x8c);\n    *(uint *)(iVar2 + 4) = local_3c;\n    *(uint *)(iVar2 + 8) = param_4;\n    *(undefined4 *)(iVar2 + 0x20) = param_3;\n    if (local_3c == 8) {\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    bfd_set_section_flags(DAT_00072e64,local_34,uVar7);\n    if ((uVar7 & 0x800000) != 0) {\n      *(int *)(local_34 + 0x78) = param_5;\n    }\n    *(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6;\n    iVar2 = FUN_000383f0(param_1);\n    if (iVar2 != 0) {\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }\n    uVar4 = FUN_000348f0(local_34);\n    FUN_00035090(uVar4);\n  }\n  else {\n    if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00046a00(byte *param_1,uint param_2,undefined4 param_3,uint param_4,int param_5,\n                 byte *param_6,int param_7,int param_8)" identifier (parameter_list "(byte *param_1,uint param_2,undefined4 param_3,uint param_4,int param_5,\n                 byte *param_6,int param_7,int param_8)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "byte *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "int param_8" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  byte *pbVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  byte bVar16;\n  uint local_3c;\n  int local_34;\n  byte *local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar16 = 0;\n  uStack_14 = 0x46a09;\n  local_3c = param_2;\n  uVar4 = DAT_00072cdc;\n  uVar9 = DAT_00072dcc;\n  if (param_8 != 0) {\n    puVar6 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar6;\n    *puVar6 = DAT_00072bd4;\n    DAT_00072bd4 = puVar1;\n    puVar6[4] = DAT_00072bd8;\n    uVar4 = DAT_00072cdc;\n    puVar6[2] = DAT_00072bdc;\n    puVar6[1] = uVar4;\n    uVar9 = DAT_00072dcc;\n    puVar6[3] = DAT_00072dcc;\n  }\n  local_24 = param_6;\n  local_20 = param_3;\n  DAT_00072bd8 = uVar9;\n  DAT_00072bdc = uVar4;\n  iVar2 = bfd_get_section_by_name_if(DAT_00072e64,param_1,FUN_000448d0,&local_24);\n  if (iVar2 == 0) {\n    local_34 = FUN_00034870(param_1,0);\n  }\n  else {\n    FUN_000348a0(iVar2,0);\n    local_34 = iVar2;\n  }\n  pbVar3 = (byte *)(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34);\n  if (pbVar3 == (byte *)0x0) {\nLAB_00046b14:\n    if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a7e0(uVar4,param_1);\n    }\n    uVar7 = param_4 >> 1 & 1;\n    uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U;\n    uVar7 = uVar7 & local_3c != 8;\nLAB_00046b74:\n    uVar10 = 4;\n    if ((param_4 & 1) == 0) goto LAB_00046d00;\n  }\n  else {\n    uVar7 = *(uint *)(pbVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n    uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar13 = param_4 < 2;\n    bVar15 = param_4 == 2;\n    if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }\n    iVar8 = 8;\n    pbVar3 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);\n    bVar14 = false;\n    bVar13 = (!bVar13 && !bVar15) == bVar13;\n    if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }\n    uVar5 = 1;\n    uVar7 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar10 = 0xc;\n  }\n  uVar7 = uVar7 * 2;\nLAB_00046b86:\n  uVar7 = FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c);\n  if (param_7 != 0) {\n    uVar7 = uVar7 | 0x20000;\n  }\n  if (iVar2 == 0) {\n    if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }\n    iVar2 = *(int *)(local_34 + 0x8c);\n    *(uint *)(iVar2 + 4) = local_3c;\n    *(uint *)(iVar2 + 8) = param_4;\n    *(undefined4 *)(iVar2 + 0x20) = param_3;\n    if (local_3c == 8) {\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    bfd_set_section_flags(DAT_00072e64,local_34,uVar7);\n    if ((uVar7 & 0x800000) != 0) {\n      *(int *)(local_34 + 0x78) = param_5;\n    }\n    *(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6;\n    iVar2 = FUN_000383f0(param_1);\n    if (iVar2 != 0) {\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }\n    uVar4 = FUN_000348f0(local_34);\n    FUN_00035090(uVar4);\n  }\n  else {\n    if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n  }\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * 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 "byte bVar16;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "byte *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar16 = 0;" (assignment_expression "bVar16 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x46a09;" (assignment_expression "uStack_14 = 0x46a09" identifier = number_literal) ;) (expression_statement "local_3c = param_2;" (assignment_expression "local_3c = param_2" identifier = identifier) ;) (expression_statement "uVar4 = DAT_00072cdc;" (assignment_expression "uVar4 = DAT_00072cdc" identifier = identifier) ;) (expression_statement "uVar9 = DAT_00072dcc;" (assignment_expression "uVar9 = DAT_00072dcc" identifier = identifier) ;) (if_statement "if (param_8 != 0) {\n    puVar6 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar6;\n    *puVar6 = DAT_00072bd4;\n    DAT_00072bd4 = puVar1;\n    puVar6[4] = DAT_00072bd8;\n    uVar4 = DAT_00072cdc;\n    puVar6[2] = DAT_00072bdc;\n    puVar6[1] = uVar4;\n    uVar9 = DAT_00072dcc;\n    puVar6[3] = DAT_00072dcc;\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar6 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar6;\n    *puVar6 = DAT_00072bd4;\n    DAT_00072bd4 = puVar1;\n    puVar6[4] = DAT_00072bd8;\n    uVar4 = DAT_00072cdc;\n    puVar6[2] = DAT_00072bdc;\n    puVar6[1] = uVar4;\n    uVar9 = DAT_00072dcc;\n    puVar6[3] = DAT_00072dcc;\n  }" { (expression_statement "puVar6 = (undefined4 *)xmalloc(0x14);" (assignment_expression "puVar6 = (undefined4 *)xmalloc(0x14)" identifier = (cast_expression "(undefined4 *)xmalloc(0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x14)" identifier (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "puVar1 = puVar6;" (assignment_expression "puVar1 = puVar6" identifier = identifier) ;) (expression_statement "*puVar6 = DAT_00072bd4;" (assignment_expression "*puVar6 = DAT_00072bd4" (pointer_expression "*puVar6" * identifier) = identifier) ;) (expression_statement "DAT_00072bd4 = puVar1;" (assignment_expression "DAT_00072bd4 = puVar1" identifier = identifier) ;) (expression_statement "puVar6[4] = DAT_00072bd8;" (assignment_expression "puVar6[4] = DAT_00072bd8" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = DAT_00072cdc;" (assignment_expression "uVar4 = DAT_00072cdc" identifier = identifier) ;) (expression_statement "puVar6[2] = DAT_00072bdc;" (assignment_expression "puVar6[2] = DAT_00072bdc" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[1] = uVar4;" (assignment_expression "puVar6[1] = uVar4" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar9 = DAT_00072dcc;" (assignment_expression "uVar9 = DAT_00072dcc" identifier = identifier) ;) (expression_statement "puVar6[3] = DAT_00072dcc;" (assignment_expression "puVar6[3] = DAT_00072dcc" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "local_24 = param_6;" (assignment_expression "local_24 = param_6" identifier = identifier) ;) (expression_statement "local_20 = param_3;" (assignment_expression "local_20 = param_3" identifier = identifier) ;) (expression_statement "DAT_00072bd8 = uVar9;" (assignment_expression "DAT_00072bd8 = uVar9" identifier = identifier) ;) (expression_statement "DAT_00072bdc = uVar4;" (assignment_expression "DAT_00072bdc = uVar4" identifier = identifier) ;) (expression_statement "iVar2 = bfd_get_section_by_name_if(DAT_00072e64,param_1,FUN_000448d0,&local_24);" (assignment_expression "iVar2 = bfd_get_section_by_name_if(DAT_00072e64,param_1,FUN_000448d0,&local_24)" identifier = (call_expression "bfd_get_section_by_name_if(DAT_00072e64,param_1,FUN_000448d0,&local_24)" identifier (argument_list "(DAT_00072e64,param_1,FUN_000448d0,&local_24)" ( identifier , identifier , identifier , (pointer_expression "&local_24" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n    local_34 = FUN_00034870(param_1,0);\n  }\n  else {\n    FUN_000348a0(iVar2,0);\n    local_34 = iVar2;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    local_34 = FUN_00034870(param_1,0);\n  }" { (expression_statement "local_34 = FUN_00034870(param_1,0);" (assignment_expression "local_34 = FUN_00034870(param_1,0)" identifier = (call_expression "FUN_00034870(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n    FUN_000348a0(iVar2,0);\n    local_34 = iVar2;\n  }" else (compound_statement "{\n    FUN_000348a0(iVar2,0);\n    local_34 = iVar2;\n  }" { (expression_statement "FUN_000348a0(iVar2,0);" (call_expression "FUN_000348a0(iVar2,0)" identifier (argument_list "(iVar2,0)" ( identifier , number_literal ))) ;) (expression_statement "local_34 = iVar2;" (assignment_expression "local_34 = iVar2" identifier = identifier) ;) }))) (expression_statement "pbVar3 = (byte *)(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34);" (assignment_expression "pbVar3 = (byte *)(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34)" identifier = (cast_expression "(byte *)(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34)" (parenthesized_expression "(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))" ( (pointer_expression "**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58)" * (pointer_expression "*(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58)" * (cast_expression "(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58)" ( (binary_expression "*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58" (pointer_expression "*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0)" * (cast_expression "(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00072e64 + 4) + 0x1c0)" ( (binary_expression "*(int *)(DAT_00072e64 + 4) + 0x1c0" (pointer_expression "*(int *)(DAT_00072e64 + 4)" * (cast_expression "(int *)(DAT_00072e64 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00072e64 + 4)" ( (binary_expression "DAT_00072e64 + 4" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_00072e64,local_34)" ( identifier , identifier ))))) ;) (if_statement "if (pbVar3 == (byte *)0x0) {\nLAB_00046b14:\n    if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a7e0(uVar4,param_1);\n    }\n    uVar7 = param_4 >> 1 & 1;\n    uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U;\n    uVar7 = uVar7 & local_3c != 8;\nLAB_00046b74:\n    uVar10 = 4;\n    if ((param_4 & 1) == 0) goto LAB_00046d00;\n  }\n  else {\n    uVar7 = *(uint *)(pbVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n    uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar13 = param_4 < 2;\n    bVar15 = param_4 == 2;\n    if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }\n    iVar8 = 8;\n    pbVar3 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);\n    bVar14 = false;\n    bVar13 = (!bVar13 && !bVar15) == bVar13;\n    if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }\n    uVar5 = 1;\n    uVar7 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar10 = 0xc;\n  }" if (parenthesized_expression "(pbVar3 == (byte *)0x0)" ( (binary_expression "pbVar3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00046b14:\n    if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a7e0(uVar4,param_1);\n    }\n    uVar7 = param_4 >> 1 & 1;\n    uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U;\n    uVar7 = uVar7 & local_3c != 8;\nLAB_00046b74:\n    uVar10 = 4;\n    if ((param_4 & 1) == 0) goto LAB_00046d00;\n  }" { (labeled_statement "LAB_00046b14:\n    if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a7e0(uVar4,param_1);\n    }" statement_identifier : (if_statement "if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a7e0(uVar4,param_1);\n    }" if (parenthesized_expression "((param_4 & 0x1000002) == 0x1000000)" ( (binary_expression "(param_4 & 0x1000002) == 0x1000000" (parenthesized_expression "(param_4 & 0x1000002)" ( (binary_expression "param_4 & 0x1000002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a7e0(uVar4,param_1);\n    }" { (expression_statement "uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);" (assignment_expression "uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3)" identifier = (call_expression "dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3)" identifier (argument_list "(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3)" ( number_literal , (string_literal ""SHF_ALLOC isn\'t set for GNU_MBIND section: %s"" " string_content escape_sequence string_content ") , number_literal , identifier )))) ;) comment (expression_statement "FUN_0002a7e0(uVar4,param_1);" (call_expression "FUN_0002a7e0(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) }))) (expression_statement "uVar7 = param_4 >> 1 & 1;" (assignment_expression "uVar7 = param_4 >> 1 & 1" identifier = (binary_expression "param_4 >> 1 & 1" (binary_expression "param_4 >> 1" identifier >> number_literal) & number_literal)) ;) (expression_statement "uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U;" (assignment_expression "uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U" identifier = (binary_expression "param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U" (binary_expression "param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000" (binary_expression "param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400" (binary_expression "param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7" (binary_expression "param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10" (binary_expression "param_4 << 0x13 & 0x1000000" (binary_expression "param_4 << 0x13" identifier << number_literal) & number_literal) | (binary_expression "param_4 * 4 & 0x10" (binary_expression "param_4 * 4" identifier * number_literal) & number_literal)) | identifier) | (binary_expression "param_4 & 0x400" identifier & number_literal)) | (binary_expression "param_4 << 0x13 & 0x800000" (binary_expression "param_4 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "(int)param_4 >> 0x10 & 0x8000U" (binary_expression "(int)param_4 >> 0x10" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) & number_literal))) ;) (expression_statement "uVar7 = uVar7 & local_3c != 8;" (assignment_expression "uVar7 = uVar7 & local_3c != 8" identifier = (binary_expression "uVar7 & local_3c != 8" identifier & (binary_expression "local_3c != 8" identifier != number_literal))) ;) (labeled_statement "LAB_00046b74:\n    uVar10 = 4;" statement_identifier : (expression_statement "uVar10 = 4;" (assignment_expression "uVar10 = 4" identifier = number_literal) ;)) (if_statement "if ((param_4 & 1) == 0) goto LAB_00046d00;" if (parenthesized_expression "((param_4 & 1) == 0)" ( (binary_expression "(param_4 & 1) == 0" (parenthesized_expression "(param_4 & 1)" ( (binary_expression "param_4 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00046d00;" goto statement_identifier ;)) }) (else_clause "else {\n    uVar7 = *(uint *)(pbVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n    uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar13 = param_4 < 2;\n    bVar15 = param_4 == 2;\n    if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }\n    iVar8 = 8;\n    pbVar3 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);\n    bVar14 = false;\n    bVar13 = (!bVar13 && !bVar15) == bVar13;\n    if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }\n    uVar5 = 1;\n    uVar7 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar10 = 0xc;\n  }" else (compound_statement "{\n    uVar7 = *(uint *)(pbVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n    uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar13 = param_4 < 2;\n    bVar15 = param_4 == 2;\n    if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }\n    iVar8 = 8;\n    pbVar3 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);\n    bVar14 = false;\n    bVar13 = (!bVar13 && !bVar15) == bVar13;\n    if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }\n    uVar5 = 1;\n    uVar7 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar10 = 0xc;\n  }" { (expression_statement "uVar7 = *(uint *)(pbVar3 + 0xc);" (assignment_expression "uVar7 = *(uint *)(pbVar3 + 0xc)" identifier = (pointer_expression "*(uint *)(pbVar3 + 0xc)" * (cast_expression "(uint *)(pbVar3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }" if (parenthesized_expression "((param_2 == 0) || (param_2 == uVar7))" ( (binary_expression "(param_2 == 0) || (param_2 == uVar7)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_2 == uVar7)" ( (binary_expression "param_2 == uVar7" identifier == identifier) ))) )) (compound_statement "{\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }" { (labeled_statement "LAB_00046b08:\n      local_3c = uVar7;" statement_identifier : (expression_statement "local_3c = uVar7;" (assignment_expression "local_3c = uVar7" identifier = identifier) ;)) (if_statement "if (iVar2 != 0) goto LAB_00046b14;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00046b14;" goto statement_identifier ;)) }) (else_clause "else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }" else (compound_statement "{\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }" { (if_statement "if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }" if (parenthesized_expression "((uVar7 - 0xe < 3) || (iVar2 != 0))" ( (binary_expression "(uVar7 - 0xe < 3) || (iVar2 != 0)" (parenthesized_expression "(uVar7 - 0xe < 3)" ( (binary_expression "uVar7 - 0xe < 3" (binary_expression "uVar7 - 0xe" identifier - number_literal) < number_literal) )) || (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) ))) )) (compound_statement "{\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }" { (expression_statement "uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);" (assignment_expression "uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5)" identifier = (call_expression "dcgettext(0,"ignoring incorrect section type for %s",5)" identifier (argument_list "(0,"ignoring incorrect section type for %s",5)" ( number_literal , (string_literal ""ignoring incorrect section type for %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a660(uVar4,param_1);" (call_expression "FUN_0002a660(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) (expression_statement "uVar7 = *(uint *)(pbVar3 + 0xc);" (assignment_expression "uVar7 = *(uint *)(pbVar3 + 0xc)" identifier = (pointer_expression "*(uint *)(pbVar3 + 0xc)" * (cast_expression "(uint *)(pbVar3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00046b08;" goto statement_identifier ;) })) (if_statement "if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" if (parenthesized_expression "((uVar7 == 7) || (0x6fffffff < param_2))" ( (binary_expression "(uVar7 == 7) || (0x6fffffff < param_2)" (parenthesized_expression "(uVar7 == 7)" ( (binary_expression "uVar7 == 7" identifier == number_literal) )) || (parenthesized_expression "(0x6fffffff < param_2)" ( (binary_expression "0x6fffffff < param_2" number_literal < identifier) ))) )) (compound_statement "{\n      }" { }) (else_clause "else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" else (compound_statement "{\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" { (expression_statement "uVar4 = dcgettext(0,"setting incorrect section type for %s",5);" (assignment_expression "uVar4 = dcgettext(0,"setting incorrect section type for %s",5)" identifier = (call_expression "dcgettext(0,"setting incorrect section type for %s",5)" identifier (argument_list "(0,"setting incorrect section type for %s",5)" ( number_literal , (string_literal ""setting incorrect section type for %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a660(uVar4,param_1);" (call_expression "FUN_0002a660(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) }))) }))) (expression_statement "uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;" (assignment_expression "uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4" identifier = (binary_expression "~*(uint *)(pbVar3 + 0x10) & param_4" (unary_expression "~*(uint *)(pbVar3 + 0x10)" ~ (pointer_expression "*(uint *)(pbVar3 + 0x10)" * (cast_expression "(uint *)(pbVar3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0x10)" ( (binary_expression "pbVar3 + 0x10" identifier + number_literal) ))))) & identifier)) ;) (if_statement "if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }" if (parenthesized_expression "((uVar7 & 0xfffff) == 0)" ( (binary_expression "(uVar7 & 0xfffff) == 0" (parenthesized_expression "(uVar7 & 0xfffff)" ( (binary_expression "uVar7 & 0xfffff" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }" { (labeled_statement "LAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);" statement_identifier : (expression_statement "param_4 = param_4 | *(uint *)(pbVar3 + 0x10);" (assignment_expression "param_4 = param_4 | *(uint *)(pbVar3 + 0x10)" identifier = (binary_expression "param_4 | *(uint *)(pbVar3 + 0x10)" identifier | (pointer_expression "*(uint *)(pbVar3 + 0x10)" * (cast_expression "(uint *)(pbVar3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0x10)" ( (binary_expression "pbVar3 + 0x10" identifier + number_literal) )))))) ;)) (goto_statement "goto LAB_00046b14;" goto statement_identifier ;) })) (if_statement "if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }" if (parenthesized_expression "(*(int *)(pbVar3 + 0xc) == 7)" ( (binary_expression "*(int *)(pbVar3 + 0xc) == 7" (pointer_expression "*(int *)(pbVar3 + 0xc)" * (cast_expression "(int *)(pbVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }" { (if_statement "if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }" if (parenthesized_expression "((param_4 - 2 & 0xfffffffd) != 0)" ( (binary_expression "(param_4 - 2 & 0xfffffffd) != 0" (parenthesized_expression "(param_4 - 2 & 0xfffffffd)" ( (binary_expression "param_4 - 2 & 0xfffffffd" (binary_expression "param_4 - 2" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }" { (if_statement "if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;" if (parenthesized_expression "(*(int *)(pbVar3 + 8) == -2)" ( (binary_expression "*(int *)(pbVar3 + 8) == -2" (pointer_expression "*(int *)(pbVar3 + 8)" * (cast_expression "(int *)(pbVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 8)" ( (binary_expression "pbVar3 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00046cc6;" goto statement_identifier ;)) (labeled_statement "LAB_00046c82:\n        pbVar3 = param_6;" statement_identifier : (expression_statement "pbVar3 = param_6;" (assignment_expression "pbVar3 = param_6" identifier = identifier) ;)) (if_statement "if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }" if (parenthesized_expression "(param_6 == (byte *)0x0)" ( (binary_expression "param_6 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }" { (labeled_statement "LAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);" statement_identifier : (expression_statement "uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);" (assignment_expression "uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5)" identifier = (call_expression "dcgettext(0,"setting incorrect section attributes for %s",5)" identifier (argument_list "(0,"setting incorrect section attributes for %s",5)" ( number_literal , (string_literal ""setting incorrect section attributes for %s"" " string_content ") , number_literal )))) ;)) (expression_statement "FUN_0002a660(uVar4,param_1);" (call_expression "FUN_0002a660(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) })) (goto_statement "goto LAB_00046b14;" goto statement_identifier ;) })) (goto_statement "goto LAB_00046ce0;" goto statement_identifier ;) })) (if_statement "if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }" if (parenthesized_expression "(*(int *)(pbVar3 + 8) == -2)" ( (binary_expression "*(int *)(pbVar3 + 8) == -2" (pointer_expression "*(int *)(pbVar3 + 8)" * (cast_expression "(int *)(pbVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 8)" ( (binary_expression "pbVar3 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }" { (labeled_statement "LAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;" statement_identifier : (if_statement "if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;" if (parenthesized_expression "((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0))" ( (binary_expression "(param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)" (parenthesized_expression "(param_1[*(int *)(pbVar3 + 4)] == 0x2e)" ( (binary_expression "param_1[*(int *)(pbVar3 + 4)] == 0x2e" (subscript_expression "param_1[*(int *)(pbVar3 + 4)]" identifier [ (pointer_expression "*(int *)(pbVar3 + 4)" * (cast_expression "(int *)(pbVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 4)" ( (binary_expression "pbVar3 + 4" identifier + number_literal) )))) ]) == number_literal) )) && (parenthesized_expression "((uVar7 & 0xffffffcf) == 0)" ( (binary_expression "(uVar7 & 0xffffffcf) == 0" (parenthesized_expression "(uVar7 & 0xffffffcf)" ( (binary_expression "uVar7 & 0xffffffcf" identifier & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00046ce0;" goto statement_identifier ;))) })) (expression_statement "bVar13 = param_4 < 2;" (assignment_expression "bVar13 = param_4 < 2" identifier = (binary_expression "param_4 < 2" identifier < number_literal)) ;) (expression_statement "bVar15 = param_4 == 2;" (assignment_expression "bVar15 = param_4 == 2" identifier = (binary_expression "param_4 == 2" identifier == number_literal)) ;) (if_statement "if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (compound_statement "{\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }" { (expression_statement "bVar13 = param_4 < 4;" (assignment_expression "bVar13 = param_4 < 4" identifier = (binary_expression "param_4 < 4" identifier < number_literal)) ;) (expression_statement "bVar15 = param_4 == 4;" (assignment_expression "bVar15 = param_4 == 4" identifier = (binary_expression "param_4 == 4" identifier == number_literal)) ;) (if_statement "if (!bVar15) goto LAB_00046c82;" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (goto_statement "goto LAB_00046c82;" goto statement_identifier ;)) (expression_statement "iVar8 = 0x10;" (assignment_expression "iVar8 = 0x10" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)".note.GNU-stack";" (assignment_expression "pbVar12 = (byte *)".note.GNU-stack"" identifier = (cast_expression "(byte *)".note.GNU-stack"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".note.GNU-stack"" " string_content "))) ;) (do_statement "do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);" do (compound_statement "{\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      }" { (expression_statement "pbVar3 = pbVar11;" (assignment_expression "pbVar3 = pbVar11" identifier = identifier) ;) (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 "pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "bVar13 = *pbVar11 < *pbVar12;" (assignment_expression "bVar13 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar3;" (assignment_expression "pbVar11 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\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        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }" { (expression_statement "uVar5 = 0x10;" (assignment_expression "uVar5 = 0x10" identifier = number_literal) ;) (expression_statement "uVar10 = 0xc;" (assignment_expression "uVar10 = 0xc" identifier = number_literal) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00046b86;" goto statement_identifier ;) })) (labeled_statement "LAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;" statement_identifier : (if_statement "if (param_6 == (byte *)0x0) goto LAB_00046c8e;" if (parenthesized_expression "(param_6 == (byte *)0x0)" ( (binary_expression "param_6 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00046c8e;" goto statement_identifier ;))) (expression_statement "uVar7 = param_4 >> 1 & 1;" (assignment_expression "uVar7 = param_4 >> 1 & 1" identifier = (binary_expression "param_4 >> 1 & 1" (binary_expression "param_4 >> 1" identifier >> number_literal) & number_literal)) ;) (expression_statement "uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;" (assignment_expression "uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U" identifier = (binary_expression "param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U" (binary_expression "param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000" (binary_expression "param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400" (binary_expression "param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7" (binary_expression "param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10" (binary_expression "param_4 << 0x13 & 0x1000000" (binary_expression "param_4 << 0x13" identifier << number_literal) & number_literal) | (binary_expression "param_4 * 4 & 0x10" (binary_expression "param_4 * 4" identifier * number_literal) & number_literal)) | identifier) | (binary_expression "param_4 & 0x400" identifier & number_literal)) | (binary_expression "param_4 << 0x13 & 0x800000" (binary_expression "param_4 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "(int)param_4 >> 0x10 & 0x8000U" (binary_expression "(int)param_4 >> 0x10" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) & number_literal))) ;) (expression_statement "uVar7 = local_3c != 8 & uVar7;" (assignment_expression "uVar7 = local_3c != 8 & uVar7" identifier = (binary_expression "local_3c != 8 & uVar7" (binary_expression "local_3c != 8" identifier != number_literal) & identifier)) ;) (goto_statement "goto LAB_00046b74;" goto statement_identifier ;) })) (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" identifier = number_literal) ;) (expression_statement "pbVar3 = param_1;" (assignment_expression "pbVar3 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)".interp";" (assignment_expression "pbVar11 = (byte *)".interp"" identifier = (cast_expression "(byte *)".interp"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".interp"" " string_content "))) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -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 "bVar13 = *pbVar3 < *pbVar11;" (assignment_expression "bVar13 = *pbVar3 < *pbVar11" identifier = (binary_expression "*pbVar3 < *pbVar11" (pointer_expression "*pbVar3" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar3 == *pbVar11;" (assignment_expression "bVar15 = *pbVar3 == *pbVar11" identifier = (binary_expression "*pbVar3 == *pbVar11" (pointer_expression "*pbVar3" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar3 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar3 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar13 = (!bVar13 && !bVar15) == bVar13;" (assignment_expression "bVar13 = (!bVar13 && !bVar15) == bVar13" identifier = (binary_expression "(!bVar13 && !bVar15) == bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" ( (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (compound_statement "{\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }" { (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" identifier = number_literal) ;) (expression_statement "pbVar3 = param_1;" (assignment_expression "pbVar3 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)".strtab";" (assignment_expression "pbVar11 = (byte *)".strtab"" identifier = (cast_expression "(byte *)".strtab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".strtab"" " string_content "))) ;) (do_statement "do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);" do (compound_statement "{\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -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 "bVar14 = *pbVar3 < *pbVar11;" (assignment_expression "bVar14 = *pbVar3 < *pbVar11" identifier = (binary_expression "*pbVar3 < *pbVar11" (pointer_expression "*pbVar3" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar13 = *pbVar3 == *pbVar11;" (assignment_expression "bVar13 = *pbVar3 == *pbVar11" identifier = (binary_expression "*pbVar3 == *pbVar11" (pointer_expression "*pbVar3" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar3 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar3 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar13 = (!bVar14 && !bVar13) == bVar14;" (assignment_expression "bVar13 = (!bVar14 && !bVar13) == bVar14" identifier = (binary_expression "(!bVar14 && !bVar13) == bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" ( (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (compound_statement "{\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }" { (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)".symtab";" (assignment_expression "pbVar12 = (byte *)".symtab"" identifier = (cast_expression "(byte *)".symtab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".symtab"" " string_content "))) ;) (do_statement "do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);" do (compound_statement "{\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        }" { (expression_statement "pbVar3 = pbVar11;" (assignment_expression "pbVar3 = pbVar11" identifier = identifier) ;) (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 "pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "bVar15 = *pbVar11 < *pbVar12;" (assignment_expression "bVar15 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar3;" (assignment_expression "pbVar11 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;" if (parenthesized_expression "((!bVar15 && !bVar13) != bVar15)" ( (binary_expression "(!bVar15 && !bVar13) != bVar15" (parenthesized_expression "(!bVar15 && !bVar13)" ( (binary_expression "!bVar15 && !bVar13" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00046f32;" goto statement_identifier ;)) })) })) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (expression_statement "uVar7 = (uint)(local_3c != 8);" (assignment_expression "uVar7 = (uint)(local_3c != 8)" identifier = (call_expression "(uint)(local_3c != 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_3c != 8)" ( (binary_expression "local_3c != 8" identifier != number_literal) )))) ;) (labeled_statement "LAB_00046d00:\n    uVar10 = 0xc;" statement_identifier : (expression_statement "uVar10 = 0xc;" (assignment_expression "uVar10 = 0xc" identifier = number_literal) ;)) }))) (expression_statement "uVar7 = uVar7 * 2;" (assignment_expression "uVar7 = uVar7 * 2" identifier = (binary_expression "uVar7 * 2" identifier * number_literal)) ;) (labeled_statement "LAB_00046b86:\n  uVar7 = FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c);" statement_identifier : (expression_statement "uVar7 = FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c);" (assignment_expression "uVar7 = FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c)" identifier = (call_expression "FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c)" identifier (argument_list "(uVar7 | uVar5 | uVar10,param_4,local_3c)" ( (binary_expression "uVar7 | uVar5 | uVar10" (binary_expression "uVar7 | uVar5" identifier | identifier) | identifier) , identifier , identifier )))) ;)) (if_statement "if (param_7 != 0) {\n    uVar7 = uVar7 | 0x20000;\n  }" if (parenthesized_expression "(param_7 != 0)" ( (binary_expression "param_7 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar7 = uVar7 | 0x20000;\n  }" { (expression_statement "uVar7 = uVar7 | 0x20000;" (assignment_expression "uVar7 = uVar7 | 0x20000" identifier = (binary_expression "uVar7 | 0x20000" identifier | number_literal)) ;) })) (if_statement "if (iVar2 == 0) {\n    if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }\n    iVar2 = *(int *)(local_34 + 0x8c);\n    *(uint *)(iVar2 + 4) = local_3c;\n    *(uint *)(iVar2 + 8) = param_4;\n    *(undefined4 *)(iVar2 + 0x20) = param_3;\n    if (local_3c == 8) {\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    bfd_set_section_flags(DAT_00072e64,local_34,uVar7);\n    if ((uVar7 & 0x800000) != 0) {\n      *(int *)(local_34 + 0x78) = param_5;\n    }\n    *(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6;\n    iVar2 = FUN_000383f0(param_1);\n    if (iVar2 != 0) {\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }\n    uVar4 = FUN_000348f0(local_34);\n    FUN_00035090(uVar4);\n  }\n  else {\n    if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }\n    iVar2 = *(int *)(local_34 + 0x8c);\n    *(uint *)(iVar2 + 4) = local_3c;\n    *(uint *)(iVar2 + 8) = param_4;\n    *(undefined4 *)(iVar2 + 0x20) = param_3;\n    if (local_3c == 8) {\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    bfd_set_section_flags(DAT_00072e64,local_34,uVar7);\n    if ((uVar7 & 0x800000) != 0) {\n      *(int *)(local_34 + 0x78) = param_5;\n    }\n    *(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6;\n    iVar2 = FUN_000383f0(param_1);\n    if (iVar2 != 0) {\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }\n    uVar4 = FUN_000348f0(local_34);\n    FUN_00035090(uVar4);\n  }" { (if_statement "if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }" if (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) )) (compound_statement "{\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }" { (expression_statement "local_3c = bfd_elf_get_default_section_type(uVar7);" (assignment_expression "local_3c = bfd_elf_get_default_section_type(uVar7)" identifier = (call_expression "bfd_elf_get_default_section_type(uVar7)" identifier (argument_list "(uVar7)" ( identifier )))) ;) })) (expression_statement "iVar2 = *(int *)(local_34 + 0x8c);" (assignment_expression "iVar2 = *(int *)(local_34 + 0x8c)" identifier = (pointer_expression "*(int *)(local_34 + 0x8c)" * (cast_expression "(int *)(local_34 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 0x8c)" ( (binary_expression "local_34 + 0x8c" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar2 + 4) = local_3c;" (assignment_expression "*(uint *)(iVar2 + 4) = local_3c" (pointer_expression "*(uint *)(iVar2 + 4)" * (cast_expression "(uint *)(iVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar2 + 8) = param_4;" (assignment_expression "*(uint *)(iVar2 + 8) = param_4" (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x20) = param_3;" (assignment_expression "*(undefined4 *)(iVar2 + 0x20) = param_3" (pointer_expression "*(undefined4 *)(iVar2 + 0x20)" * (cast_expression "(undefined4 *)(iVar2 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) = identifier) ;) (if_statement "if (local_3c == 8) {\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }" if (parenthesized_expression "(local_3c == 8)" ( (binary_expression "local_3c == 8" identifier == number_literal) )) (compound_statement "{\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }" { (expression_statement "pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);" (assignment_expression "pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4)" identifier = (cast_expression "(byte *)(*(int *)(local_34 + 0x68) + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_34 + 0x68) + 4)" ( (binary_expression "*(int *)(local_34 + 0x68) + 4" (pointer_expression "*(int *)(local_34 + 0x68)" * (cast_expression "(int *)(local_34 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 0x68)" ( (binary_expression "local_34 + 0x68" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar3 = *pbVar3 | 2;" (assignment_expression "*pbVar3 = *pbVar3 | 2" (pointer_expression "*pbVar3" * identifier) = (binary_expression "*pbVar3 | 2" (pointer_expression "*pbVar3" * identifier) | number_literal)) ;) })) (expression_statement "bfd_set_section_flags(DAT_00072e64,local_34,uVar7);" (call_expression "bfd_set_section_flags(DAT_00072e64,local_34,uVar7)" identifier (argument_list "(DAT_00072e64,local_34,uVar7)" ( identifier , identifier , identifier ))) ;) (if_statement "if ((uVar7 & 0x800000) != 0) {\n      *(int *)(local_34 + 0x78) = param_5;\n    }" if (parenthesized_expression "((uVar7 & 0x800000) != 0)" ( (binary_expression "(uVar7 & 0x800000) != 0" (parenthesized_expression "(uVar7 & 0x800000)" ( (binary_expression "uVar7 & 0x800000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      *(int *)(local_34 + 0x78) = param_5;\n    }" { (expression_statement "*(int *)(local_34 + 0x78) = param_5;" (assignment_expression "*(int *)(local_34 + 0x78) = param_5" (pointer_expression "*(int *)(local_34 + 0x78)" * (cast_expression "(int *)(local_34 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 0x78)" ( (binary_expression "local_34 + 0x78" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6;" (assignment_expression "*(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6" (pointer_expression "*(byte **)(*(int *)(local_34 + 0x8c) + 0x70)" * (cast_expression "(byte **)(*(int *)(local_34 + 0x8c) + 0x70)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(local_34 + 0x8c) + 0x70)" ( (binary_expression "*(int *)(local_34 + 0x8c) + 0x70" (pointer_expression "*(int *)(local_34 + 0x8c)" * (cast_expression "(int *)(local_34 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 0x8c)" ( (binary_expression "local_34 + 0x8c" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "iVar2 = FUN_000383f0(param_1);" (assignment_expression "iVar2 = FUN_000383f0(param_1)" identifier = (call_expression "FUN_000383f0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }" { (expression_statement "FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));" (call_expression "FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98))" identifier (argument_list "(iVar2,*(undefined4 *)(local_34 + 0x98))" ( identifier , (pointer_expression "*(undefined4 *)(local_34 + 0x98)" * (cast_expression "(undefined4 *)(local_34 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 0x98)" ( (binary_expression "local_34 + 0x98" identifier + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar4 = FUN_000348f0(local_34);" (assignment_expression "uVar4 = FUN_000348f0(local_34)" identifier = (call_expression "FUN_000348f0(local_34)" identifier (argument_list "(local_34)" ( identifier )))) ;) (expression_statement "FUN_00035090(uVar4);" (call_expression "FUN_00035090(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) }) (else_clause "else {\n    if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n  }" else (compound_statement "{\n    if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n  }" { (if_statement "if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }" if (parenthesized_expression "((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c))" ( (binary_expression "(local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)" (parenthesized_expression "(local_3c != 0)" ( (binary_expression "local_3c != 0" identifier != number_literal) )) && (parenthesized_expression "(*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)" ( (binary_expression "*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c" (pointer_expression "*(uint *)(*(int *)(iVar2 + 0x8c) + 4)" * (cast_expression "(uint *)(*(int *)(iVar2 + 0x8c) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 0x8c) + 4)" ( (binary_expression "*(int *)(iVar2 + 0x8c) + 4" (pointer_expression "*(int *)(iVar2 + 0x8c)" * (cast_expression "(int *)(iVar2 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x8c)" ( (binary_expression "iVar2 + 0x8c" identifier + number_literal) )))) + number_literal) )))) != identifier) ))) )) (compound_statement "{\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }" { (expression_statement "uVar4 = dcgettext(0,"ignoring changed section type for %s",5);" (assignment_expression "uVar4 = dcgettext(0,"ignoring changed section type for %s",5)" identifier = (call_expression "dcgettext(0,"ignoring changed section type for %s",5)" identifier (argument_list "(0,"ignoring changed section type for %s",5)" ( number_literal , (string_literal ""ignoring changed section type for %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a660(uVar4,param_1);" (call_expression "FUN_0002a660(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) })) (if_statement "if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }" { (if_statement "if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" if (parenthesized_expression "(((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0)" ( (binary_expression "((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0" (parenthesized_expression "((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b)" ( (binary_expression "(*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b" (parenthesized_expression "(*(uint *)(iVar2 + 0x14) ^ uVar7)" ( (binary_expression "*(uint *)(iVar2 + 0x14) ^ uVar7" (pointer_expression "*(uint *)(iVar2 + 0x14)" * (cast_expression "(uint *)(iVar2 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) ^ identifier) )) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }" { (expression_statement "*(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;" (assignment_expression "*(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4" (pointer_expression "*(uint *)(*(int *)(local_34 + 0x8c) + 8)" * (cast_expression "(uint *)(*(int *)(local_34 + 0x8c) + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_34 + 0x8c) + 8)" ( (binary_expression "*(int *)(local_34 + 0x8c) + 8" (pointer_expression "*(int *)(local_34 + 0x8c)" * (cast_expression "(int *)(local_34 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 0x8c)" ( (binary_expression "local_34 + 0x8c" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" else (compound_statement "{\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" { (expression_statement "uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);" (assignment_expression "uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5)" identifier = (call_expression "dcgettext(0,"ignoring changed section attributes for %s",5)" identifier (argument_list "(0,"ignoring changed section attributes for %s",5)" ( number_literal , (string_literal ""ignoring changed section attributes for %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a660(uVar4,param_1);" (call_expression "FUN_0002a660(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) }))) (if_statement "if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" if (parenthesized_expression "(((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5))" ( (binary_expression "((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)" (parenthesized_expression "((uVar7 & 0x800000) != 0)" ( (binary_expression "(uVar7 & 0x800000) != 0" (parenthesized_expression "(uVar7 & 0x800000)" ( (binary_expression "uVar7 & 0x800000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar2 + 0x78) != param_5)" ( (binary_expression "*(int *)(iVar2 + 0x78) != param_5" (pointer_expression "*(int *)(iVar2 + 0x78)" * (cast_expression "(int *)(iVar2 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x78)" ( (binary_expression "iVar2 + 0x78" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" { (expression_statement "uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);" (assignment_expression "uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5)" identifier = (call_expression "dcgettext(0,"ignoring changed section entity size for %s",5)" identifier (argument_list "(0,"ignoring changed section entity size for %s",5)" ( number_literal , (string_literal ""ignoring changed section entity size for %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a660(uVar4,param_1);" (call_expression "FUN_0002a660(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) })) })) }))) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid obj_elf_change_section\n               (char *name,uint type,uint info,bfd_vma attr,int entsize,char *group_name,\n               int linkonce,int push)\n\n{\n  void *pvVar1;\n  section_stack *psVar2;\n  segT paVar3;\n  byte *pbVar4;\n  char *pcVar5;\n  uint uVar6;\n  section_stack *psVar7;\n  symbolS *psVar8;\n  uint uVar9;\n  int iVar10;\n  subsegT sVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  bool bVar15;\n  bool bVar16;\n  bool bVar17;\n  byte bVar18;\n  uint local_3c;\n  segT local_34;\n  section_match match;\n  \n  bVar18 = 0;\n  local_3c = type;\n  paVar3 = now_seg;\n  sVar11 = now_subseg;\n  if (push != 0) {\n    psVar7 = (section_stack *)xmalloc(0x14);\n    psVar2 = psVar7;\n    psVar7->next = section_stack;\n    section_stack = psVar2;\n    psVar7->prev_subseg = previous_subsection;\n    paVar3 = now_seg;\n    psVar7->prev_seg = previous_section;\n    psVar7->seg = paVar3;\n    sVar11 = now_subseg;\n    psVar7->subseg = now_subseg;\n  }\n  match.group_name = group_name;\n  match.info = info;\n  previous_subsection = sVar11;\n  previous_section = paVar3;\n  paVar3 = (segT)bfd_get_section_by_name_if(stdoutput,name,get_section,&match);\n  if (paVar3 == (segT)0x0) {\n    local_34 = subseg_force_new(name,0);\n  }\n  else {\n    subseg_set(paVar3,0);\n    local_34 = paVar3;\n  }\n  pbVar4 = (byte *)(**(code **)((int)stdoutput->xvec->backend_data + 0x58))(stdoutput,local_34);\n  if (pbVar4 == (byte *)0x0) {\nLAB_00046b14:\n    if ((attr & 0x1000002) == 0x1000000) {\n      pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar4);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar5,name);\n    }\n    uVar9 = attr >> 1 & 1;\n    uVar6 = attr << 0x13 & 0x1000000 |\n            attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |\n            (int)attr >> 0x10 & 0x8000U;\n    uVar9 = uVar9 & local_3c != 8;\nLAB_00046b74:\n    uVar12 = 4;\n    if ((attr & 1) == 0) goto LAB_00046d00;\n  }\n  else {\n    uVar9 = *(uint *)(pbVar4 + 0xc);\n    if ((type == 0) || (type == uVar9)) {\nLAB_00046b08:\n      local_3c = uVar9;\n      if (paVar3 != (segT)0x0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar9 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar9 = *(uint *)(pbVar4 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar9 == 7) || (0x6fffffff < type)) {\n      }\n      else {\n        pcVar5 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n      }\n    }\n    uVar9 = ~*(uint *)(pbVar4 + 0x10) & attr;\n    if ((uVar9 & 0xfffff) == 0) {\nLAB_00046ce0:\n      attr = attr | *(uint *)(pbVar4 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar4 + 0xc) == 7) {\n      if ((attr - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar4 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar4 = (byte *)group_name;\n        if (group_name == (char *)0x0) {\nLAB_00046c8e:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar4 + 8) == -2) {\nLAB_00046cc6:\n      if ((name[*(int *)(pbVar4 + 4)] == '.') && ((uVar9 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar15 = attr < 2;\n    bVar17 = attr == 2;\n    if (!bVar17) {\n      bVar15 = attr < 4;\n      bVar17 = attr == 4;\n      if (!bVar17) goto LAB_00046c82;\n      iVar10 = 0x10;\n      pbVar13 = (byte *)name;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        pbVar4 = pbVar13;\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar17 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar4;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar15 && !bVar17) == bVar15) {\n        uVar6 = 0x10;\n        uVar12 = 0xc;\n        uVar9 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (group_name == (char *)0x0) goto LAB_00046c8e;\n      uVar9 = attr >> 1 & 1;\n      uVar6 = attr << 0x13 & 0x1000000 |\n              attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |\n              (int)attr >> 0x10 & 0x8000U;\n      uVar9 = local_3c != 8 & uVar9;\n      goto LAB_00046b74;\n    }\n    iVar10 = 8;\n    pbVar4 = (byte *)name;\n    pbVar13 = (byte *)".interp";\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar15 = *pbVar4 < *pbVar13;\n      bVar17 = *pbVar4 == *pbVar13;\n      pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n    } while (bVar17);\n    bVar16 = false;\n    bVar15 = (!bVar15 && !bVar17) == bVar15;\n    if (!bVar15) {\n      iVar10 = 8;\n      pbVar4 = (byte *)name;\n      pbVar13 = (byte *)".strtab";\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar4 < *pbVar13;\n        bVar15 = *pbVar4 == *pbVar13;\n        pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n      } while (bVar15);\n      bVar17 = false;\n      bVar15 = (!bVar16 && !bVar15) == bVar16;\n      if (!bVar15) {\n        iVar10 = 8;\n        pbVar13 = (byte *)name;\n        pbVar14 = (byte *)".symtab";\n        do {\n          pbVar4 = pbVar13;\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar15 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar4;\n          pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar17 && !bVar15) != bVar17) goto LAB_00046f32;\n      }\n    }\n    uVar6 = 1;\n    uVar9 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar12 = 0xc;\n  }\n  uVar9 = uVar9 * 2;\nLAB_00046b86:\n  uVar9 = ppc_section_flags(uVar9 | uVar6 | uVar12,attr,local_3c);\n  if (linkonce != 0) {\n    uVar9 = uVar9 | 0x20000;\n  }\n  if (paVar3 == (segT)0x0) {\n    if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar9);\n    }\n    pvVar1 = local_34->used_by_bfd;\n    *(uint *)((int)pvVar1 + 4) = local_3c;\n    *(bfd_vma *)((int)pvVar1 + 8) = attr;\n    *(uint *)((int)pvVar1 + 0x20) = info;\n    if (local_3c == 8) {\n      pbVar4 = (byte *)((int)local_34->userdata + 4);\n      *pbVar4 = *pbVar4 | 2;\n    }\n    bfd_set_section_flags(stdoutput,local_34,uVar9);\n    if ((uVar9 & 0x800000) != 0) {\n      local_34->entsize = entsize;\n    }\n    *(char **)((int)local_34->used_by_bfd + 0x70) = group_name;\n    psVar8 = symbol_find(name);\n    if (psVar8 != (symbolS *)0x0) {\n      symbol_set_bfdsym(psVar8,local_34->symbol);\n      return;\n    }\n    psVar8 = section_symbol(local_34);\n    symbol_table_insert(psVar8);\n  }\n  else {\n    if ((local_3c != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_3c)) {\n      pcVar5 = (char *)dcgettext(0,"ignoring changed section type for %s",5);\n      as_warn(pcVar5,name);\n    }\n    if (attr != 0) {\n      if (((paVar3->flags ^ uVar9) & 0x183841b) == 0) {\n        *(bfd_vma *)((int)local_34->used_by_bfd + 8) = attr;\n      }\n      else {\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar5,name);\n      }\n      if (((uVar9 & 0x800000) != 0) && (paVar3->entsize != entsize)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar5,name);\n      }\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void obj_elf_change_section\n               (char *name,uint type,uint info,bfd_vma attr,int entsize,char *group_name,\n               int linkonce,int push)\n\n{\n  void *pvVar1;\n  section_stack *psVar2;\n  segT paVar3;\n  byte *pbVar4;\n  char *pcVar5;\n  uint uVar6;\n  section_stack *psVar7;\n  symbolS *psVar8;\n  uint uVar9;\n  int iVar10;\n  subsegT sVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  bool bVar15;\n  bool bVar16;\n  bool bVar17;\n  byte bVar18;\n  uint local_3c;\n  segT local_34;\n  section_match match;\n  \n  bVar18 = 0;\n  local_3c = type;\n  paVar3 = now_seg;\n  sVar11 = now_subseg;\n  if (push != 0) {\n    psVar7 = (section_stack *)xmalloc(0x14);\n    psVar2 = psVar7;\n    psVar7->next = section_stack;\n    section_stack = psVar2;\n    psVar7->prev_subseg = previous_subsection;\n    paVar3 = now_seg;\n    psVar7->prev_seg = previous_section;\n    psVar7->seg = paVar3;\n    sVar11 = now_subseg;\n    psVar7->subseg = now_subseg;\n  }\n  match.group_name = group_name;\n  match.info = info;\n  previous_subsection = sVar11;\n  previous_section = paVar3;\n  paVar3 = (segT)bfd_get_section_by_name_if(stdoutput,name,get_section,&match);\n  if (paVar3 == (segT)0x0) {\n    local_34 = subseg_force_new(name,0);\n  }\n  else {\n    subseg_set(paVar3,0);\n    local_34 = paVar3;\n  }\n  pbVar4 = (byte *)(**(code **)((int)stdoutput->xvec->backend_data + 0x58))(stdoutput,local_34);\n  if (pbVar4 == (byte *)0x0) {\nLAB_00046b14:\n    if ((attr & 0x1000002) == 0x1000000) {\n      pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar4);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar5,name);\n    }\n    uVar9 = attr >> 1 & 1;\n    uVar6 = attr << 0x13 & 0x1000000 |\n            attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |\n            (int)attr >> 0x10 & 0x8000U;\n    uVar9 = uVar9 & local_3c != 8;\nLAB_00046b74:\n    uVar12 = 4;\n    if ((attr & 1) == 0) goto LAB_00046d00;\n  }\n  else {\n    uVar9 = *(uint *)(pbVar4 + 0xc);\n    if ((type == 0) || (type == uVar9)) {\nLAB_00046b08:\n      local_3c = uVar9;\n      if (paVar3 != (segT)0x0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar9 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar9 = *(uint *)(pbVar4 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar9 == 7) || (0x6fffffff < type)) {\n      }\n      else {\n        pcVar5 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n      }\n    }\n    uVar9 = ~*(uint *)(pbVar4 + 0x10) & attr;\n    if ((uVar9 & 0xfffff) == 0) {\nLAB_00046ce0:\n      attr = attr | *(uint *)(pbVar4 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar4 + 0xc) == 7) {\n      if ((attr - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar4 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar4 = (byte *)group_name;\n        if (group_name == (char *)0x0) {\nLAB_00046c8e:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar4 + 8) == -2) {\nLAB_00046cc6:\n      if ((name[*(int *)(pbVar4 + 4)] == '.') && ((uVar9 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar15 = attr < 2;\n    bVar17 = attr == 2;\n    if (!bVar17) {\n      bVar15 = attr < 4;\n      bVar17 = attr == 4;\n      if (!bVar17) goto LAB_00046c82;\n      iVar10 = 0x10;\n      pbVar13 = (byte *)name;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        pbVar4 = pbVar13;\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar17 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar4;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar15 && !bVar17) == bVar15) {\n        uVar6 = 0x10;\n        uVar12 = 0xc;\n        uVar9 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (group_name == (char *)0x0) goto LAB_00046c8e;\n      uVar9 = attr >> 1 & 1;\n      uVar6 = attr << 0x13 & 0x1000000 |\n              attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |\n              (int)attr >> 0x10 & 0x8000U;\n      uVar9 = local_3c != 8 & uVar9;\n      goto LAB_00046b74;\n    }\n    iVar10 = 8;\n    pbVar4 = (byte *)name;\n    pbVar13 = (byte *)".interp";\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar15 = *pbVar4 < *pbVar13;\n      bVar17 = *pbVar4 == *pbVar13;\n      pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n    } while (bVar17);\n    bVar16 = false;\n    bVar15 = (!bVar15 && !bVar17) == bVar15;\n    if (!bVar15) {\n      iVar10 = 8;\n      pbVar4 = (byte *)name;\n      pbVar13 = (byte *)".strtab";\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar4 < *pbVar13;\n        bVar15 = *pbVar4 == *pbVar13;\n        pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n      } while (bVar15);\n      bVar17 = false;\n      bVar15 = (!bVar16 && !bVar15) == bVar16;\n      if (!bVar15) {\n        iVar10 = 8;\n        pbVar13 = (byte *)name;\n        pbVar14 = (byte *)".symtab";\n        do {\n          pbVar4 = pbVar13;\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar15 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar4;\n          pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar17 && !bVar15) != bVar17) goto LAB_00046f32;\n      }\n    }\n    uVar6 = 1;\n    uVar9 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar12 = 0xc;\n  }\n  uVar9 = uVar9 * 2;\nLAB_00046b86:\n  uVar9 = ppc_section_flags(uVar9 | uVar6 | uVar12,attr,local_3c);\n  if (linkonce != 0) {\n    uVar9 = uVar9 | 0x20000;\n  }\n  if (paVar3 == (segT)0x0) {\n    if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar9);\n    }\n    pvVar1 = local_34->used_by_bfd;\n    *(uint *)((int)pvVar1 + 4) = local_3c;\n    *(bfd_vma *)((int)pvVar1 + 8) = attr;\n    *(uint *)((int)pvVar1 + 0x20) = info;\n    if (local_3c == 8) {\n      pbVar4 = (byte *)((int)local_34->userdata + 4);\n      *pbVar4 = *pbVar4 | 2;\n    }\n    bfd_set_section_flags(stdoutput,local_34,uVar9);\n    if ((uVar9 & 0x800000) != 0) {\n      local_34->entsize = entsize;\n    }\n    *(char **)((int)local_34->used_by_bfd + 0x70) = group_name;\n    psVar8 = symbol_find(name);\n    if (psVar8 != (symbolS *)0x0) {\n      symbol_set_bfdsym(psVar8,local_34->symbol);\n      return;\n    }\n    psVar8 = section_symbol(local_34);\n    symbol_table_insert(psVar8);\n  }\n  else {\n    if ((local_3c != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_3c)) {\n      pcVar5 = (char *)dcgettext(0,"ignoring changed section type for %s",5);\n      as_warn(pcVar5,name);\n    }\n    if (attr != 0) {\n      if (((paVar3->flags ^ uVar9) & 0x183841b) == 0) {\n        *(bfd_vma *)((int)local_34->used_by_bfd + 8) = attr;\n      }\n      else {\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar5,name);\n      }\n      if (((uVar9 & 0x800000) != 0) && (paVar3->entsize != entsize)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar5,name);\n      }\n    }\n  }\n  return;\n}" primitive_type (function_declarator "obj_elf_change_section\n               (char *name,uint type,uint info,bfd_vma attr,int entsize,char *group_name,\n               int linkonce,int push)" identifier (parameter_list "(char *name,uint type,uint info,bfd_vma attr,int entsize,char *group_name,\n               int linkonce,int push)" ( (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "uint type" type_identifier identifier) , (parameter_declaration "uint info" type_identifier identifier) , (parameter_declaration "bfd_vma attr" type_identifier identifier) , (parameter_declaration "int entsize" primitive_type identifier) , (parameter_declaration "char *group_name" primitive_type (pointer_declarator "*group_name" * identifier)) , (parameter_declaration "int linkonce" primitive_type identifier) , (parameter_declaration "int push" primitive_type identifier) ))) (compound_statement "{\n  void *pvVar1;\n  section_stack *psVar2;\n  segT paVar3;\n  byte *pbVar4;\n  char *pcVar5;\n  uint uVar6;\n  section_stack *psVar7;\n  symbolS *psVar8;\n  uint uVar9;\n  int iVar10;\n  subsegT sVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  bool bVar15;\n  bool bVar16;\n  bool bVar17;\n  byte bVar18;\n  uint local_3c;\n  segT local_34;\n  section_match match;\n  \n  bVar18 = 0;\n  local_3c = type;\n  paVar3 = now_seg;\n  sVar11 = now_subseg;\n  if (push != 0) {\n    psVar7 = (section_stack *)xmalloc(0x14);\n    psVar2 = psVar7;\n    psVar7->next = section_stack;\n    section_stack = psVar2;\n    psVar7->prev_subseg = previous_subsection;\n    paVar3 = now_seg;\n    psVar7->prev_seg = previous_section;\n    psVar7->seg = paVar3;\n    sVar11 = now_subseg;\n    psVar7->subseg = now_subseg;\n  }\n  match.group_name = group_name;\n  match.info = info;\n  previous_subsection = sVar11;\n  previous_section = paVar3;\n  paVar3 = (segT)bfd_get_section_by_name_if(stdoutput,name,get_section,&match);\n  if (paVar3 == (segT)0x0) {\n    local_34 = subseg_force_new(name,0);\n  }\n  else {\n    subseg_set(paVar3,0);\n    local_34 = paVar3;\n  }\n  pbVar4 = (byte *)(**(code **)((int)stdoutput->xvec->backend_data + 0x58))(stdoutput,local_34);\n  if (pbVar4 == (byte *)0x0) {\nLAB_00046b14:\n    if ((attr & 0x1000002) == 0x1000000) {\n      pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar4);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar5,name);\n    }\n    uVar9 = attr >> 1 & 1;\n    uVar6 = attr << 0x13 & 0x1000000 |\n            attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |\n            (int)attr >> 0x10 & 0x8000U;\n    uVar9 = uVar9 & local_3c != 8;\nLAB_00046b74:\n    uVar12 = 4;\n    if ((attr & 1) == 0) goto LAB_00046d00;\n  }\n  else {\n    uVar9 = *(uint *)(pbVar4 + 0xc);\n    if ((type == 0) || (type == uVar9)) {\nLAB_00046b08:\n      local_3c = uVar9;\n      if (paVar3 != (segT)0x0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar9 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar9 = *(uint *)(pbVar4 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar9 == 7) || (0x6fffffff < type)) {\n      }\n      else {\n        pcVar5 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n      }\n    }\n    uVar9 = ~*(uint *)(pbVar4 + 0x10) & attr;\n    if ((uVar9 & 0xfffff) == 0) {\nLAB_00046ce0:\n      attr = attr | *(uint *)(pbVar4 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar4 + 0xc) == 7) {\n      if ((attr - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar4 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar4 = (byte *)group_name;\n        if (group_name == (char *)0x0) {\nLAB_00046c8e:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar4 + 8) == -2) {\nLAB_00046cc6:\n      if ((name[*(int *)(pbVar4 + 4)] == '.') && ((uVar9 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar15 = attr < 2;\n    bVar17 = attr == 2;\n    if (!bVar17) {\n      bVar15 = attr < 4;\n      bVar17 = attr == 4;\n      if (!bVar17) goto LAB_00046c82;\n      iVar10 = 0x10;\n      pbVar13 = (byte *)name;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        pbVar4 = pbVar13;\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar17 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar4;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar15 && !bVar17) == bVar15) {\n        uVar6 = 0x10;\n        uVar12 = 0xc;\n        uVar9 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (group_name == (char *)0x0) goto LAB_00046c8e;\n      uVar9 = attr >> 1 & 1;\n      uVar6 = attr << 0x13 & 0x1000000 |\n              attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |\n              (int)attr >> 0x10 & 0x8000U;\n      uVar9 = local_3c != 8 & uVar9;\n      goto LAB_00046b74;\n    }\n    iVar10 = 8;\n    pbVar4 = (byte *)name;\n    pbVar13 = (byte *)".interp";\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar15 = *pbVar4 < *pbVar13;\n      bVar17 = *pbVar4 == *pbVar13;\n      pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n    } while (bVar17);\n    bVar16 = false;\n    bVar15 = (!bVar15 && !bVar17) == bVar15;\n    if (!bVar15) {\n      iVar10 = 8;\n      pbVar4 = (byte *)name;\n      pbVar13 = (byte *)".strtab";\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar4 < *pbVar13;\n        bVar15 = *pbVar4 == *pbVar13;\n        pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n      } while (bVar15);\n      bVar17 = false;\n      bVar15 = (!bVar16 && !bVar15) == bVar16;\n      if (!bVar15) {\n        iVar10 = 8;\n        pbVar13 = (byte *)name;\n        pbVar14 = (byte *)".symtab";\n        do {\n          pbVar4 = pbVar13;\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar15 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar4;\n          pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar17 && !bVar15) != bVar17) goto LAB_00046f32;\n      }\n    }\n    uVar6 = 1;\n    uVar9 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar12 = 0xc;\n  }\n  uVar9 = uVar9 * 2;\nLAB_00046b86:\n  uVar9 = ppc_section_flags(uVar9 | uVar6 | uVar12,attr,local_3c);\n  if (linkonce != 0) {\n    uVar9 = uVar9 | 0x20000;\n  }\n  if (paVar3 == (segT)0x0) {\n    if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar9);\n    }\n    pvVar1 = local_34->used_by_bfd;\n    *(uint *)((int)pvVar1 + 4) = local_3c;\n    *(bfd_vma *)((int)pvVar1 + 8) = attr;\n    *(uint *)((int)pvVar1 + 0x20) = info;\n    if (local_3c == 8) {\n      pbVar4 = (byte *)((int)local_34->userdata + 4);\n      *pbVar4 = *pbVar4 | 2;\n    }\n    bfd_set_section_flags(stdoutput,local_34,uVar9);\n    if ((uVar9 & 0x800000) != 0) {\n      local_34->entsize = entsize;\n    }\n    *(char **)((int)local_34->used_by_bfd + 0x70) = group_name;\n    psVar8 = symbol_find(name);\n    if (psVar8 != (symbolS *)0x0) {\n      symbol_set_bfdsym(psVar8,local_34->symbol);\n      return;\n    }\n    psVar8 = section_symbol(local_34);\n    symbol_table_insert(psVar8);\n  }\n  else {\n    if ((local_3c != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_3c)) {\n      pcVar5 = (char *)dcgettext(0,"ignoring changed section type for %s",5);\n      as_warn(pcVar5,name);\n    }\n    if (attr != 0) {\n      if (((paVar3->flags ^ uVar9) & 0x183841b) == 0) {\n        *(bfd_vma *)((int)local_34->used_by_bfd + 8) = attr;\n      }\n      else {\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar5,name);\n      }\n      if (((uVar9 & 0x800000) != 0) && (paVar3->entsize != entsize)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar5,name);\n      }\n    }\n  }\n  return;\n}" { (declaration "void *pvVar1;" primitive_type (pointer_declarator "*pvVar1" * identifier) ;) (declaration "section_stack *psVar2;" type_identifier (pointer_declarator "*psVar2" * identifier) ;) (declaration "segT paVar3;" type_identifier identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "section_stack *psVar7;" type_identifier (pointer_declarator "*psVar7" * identifier) ;) (declaration "symbolS *psVar8;" type_identifier (pointer_declarator "*psVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "subsegT sVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "segT local_34;" type_identifier identifier ;) (declaration "section_match match;" type_identifier identifier ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "local_3c = type;" (assignment_expression "local_3c = type" identifier = identifier) ;) (expression_statement "paVar3 = now_seg;" (assignment_expression "paVar3 = now_seg" identifier = identifier) ;) (expression_statement "sVar11 = now_subseg;" (assignment_expression "sVar11 = now_subseg" identifier = identifier) ;) (if_statement "if (push != 0) {\n    psVar7 = (section_stack *)xmalloc(0x14);\n    psVar2 = psVar7;\n    psVar7->next = section_stack;\n    section_stack = psVar2;\n    psVar7->prev_subseg = previous_subsection;\n    paVar3 = now_seg;\n    psVar7->prev_seg = previous_section;\n    psVar7->seg = paVar3;\n    sVar11 = now_subseg;\n    psVar7->subseg = now_subseg;\n  }" if (parenthesized_expression "(push != 0)" ( (binary_expression "push != 0" identifier != number_literal) )) (compound_statement "{\n    psVar7 = (section_stack *)xmalloc(0x14);\n    psVar2 = psVar7;\n    psVar7->next = section_stack;\n    section_stack = psVar2;\n    psVar7->prev_subseg = previous_subsection;\n    paVar3 = now_seg;\n    psVar7->prev_seg = previous_section;\n    psVar7->seg = paVar3;\n    sVar11 = now_subseg;\n    psVar7->subseg = now_subseg;\n  }" { (expression_statement "psVar7 = (section_stack *)xmalloc(0x14);" (assignment_expression "psVar7 = (section_stack *)xmalloc(0x14)" identifier = (cast_expression "(section_stack *)xmalloc(0x14)" ( (type_descriptor "section_stack *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x14)" identifier (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "psVar2 = psVar7;" (assignment_expression "psVar2 = psVar7" identifier = identifier) ;) (expression_statement "psVar7->next = section_stack;" (assignment_expression "psVar7->next = section_stack" (field_expression "psVar7->next" identifier -> field_identifier) = identifier) ;) (expression_statement "section_stack = psVar2;" (assignment_expression "section_stack = psVar2" identifier = identifier) ;) (expression_statement "psVar7->prev_subseg = previous_subsection;" (assignment_expression "psVar7->prev_subseg = previous_subsection" (field_expression "psVar7->prev_subseg" identifier -> field_identifier) = identifier) ;) (expression_statement "paVar3 = now_seg;" (assignment_expression "paVar3 = now_seg" identifier = identifier) ;) (expression_statement "psVar7->prev_seg = previous_section;" (assignment_expression "psVar7->prev_seg = previous_section" (field_expression "psVar7->prev_seg" identifier -> field_identifier) = identifier) ;) (expression_statement "psVar7->seg = paVar3;" (assignment_expression "psVar7->seg = paVar3" (field_expression "psVar7->seg" identifier -> field_identifier) = identifier) ;) (expression_statement "sVar11 = now_subseg;" (assignment_expression "sVar11 = now_subseg" identifier = identifier) ;) (expression_statement "psVar7->subseg = now_subseg;" (assignment_expression "psVar7->subseg = now_subseg" (field_expression "psVar7->subseg" identifier -> field_identifier) = identifier) ;) })) (expression_statement "match.group_name = group_name;" (assignment_expression "match.group_name = group_name" (field_expression "match.group_name" identifier . field_identifier) = identifier) ;) (expression_statement "match.info = info;" (assignment_expression "match.info = info" (field_expression "match.info" identifier . field_identifier) = identifier) ;) (expression_statement "previous_subsection = sVar11;" (assignment_expression "previous_subsection = sVar11" identifier = identifier) ;) (expression_statement "previous_section = paVar3;" (assignment_expression "previous_section = paVar3" identifier = identifier) ;) (expression_statement "paVar3 = (segT)bfd_get_section_by_name_if(stdoutput,name,get_section,&match);" (assignment_expression "paVar3 = (segT)bfd_get_section_by_name_if(stdoutput,name,get_section,&match)" identifier = (cast_expression "(segT)bfd_get_section_by_name_if(stdoutput,name,get_section,&match)" ( (type_descriptor "segT" type_identifier) ) (call_expression "bfd_get_section_by_name_if(stdoutput,name,get_section,&match)" identifier (argument_list "(stdoutput,name,get_section,&match)" ( identifier , identifier , identifier , (pointer_expression "&match" & identifier) ))))) ;) (if_statement "if (paVar3 == (segT)0x0) {\n    local_34 = subseg_force_new(name,0);\n  }\n  else {\n    subseg_set(paVar3,0);\n    local_34 = paVar3;\n  }" if (parenthesized_expression "(paVar3 == (segT)0x0)" ( (binary_expression "paVar3 == (segT)0x0" identifier == (cast_expression "(segT)0x0" ( (type_descriptor "segT" type_identifier) ) number_literal)) )) (compound_statement "{\n    local_34 = subseg_force_new(name,0);\n  }" { (expression_statement "local_34 = subseg_force_new(name,0);" (assignment_expression "local_34 = subseg_force_new(name,0)" identifier = (call_expression "subseg_force_new(name,0)" identifier (argument_list "(name,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n    subseg_set(paVar3,0);\n    local_34 = paVar3;\n  }" else (compound_statement "{\n    subseg_set(paVar3,0);\n    local_34 = paVar3;\n  }" { (expression_statement "subseg_set(paVar3,0);" (call_expression "subseg_set(paVar3,0)" identifier (argument_list "(paVar3,0)" ( identifier , number_literal ))) ;) (expression_statement "local_34 = paVar3;" (assignment_expression "local_34 = paVar3" identifier = identifier) ;) }))) (expression_statement "pbVar4 = (byte *)(**(code **)((int)stdoutput->xvec->backend_data + 0x58))(stdoutput,local_34);" (assignment_expression "pbVar4 = (byte *)(**(code **)((int)stdoutput->xvec->backend_data + 0x58))(stdoutput,local_34)" identifier = (cast_expression "(byte *)(**(code **)((int)stdoutput->xvec->backend_data + 0x58))(stdoutput,local_34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)((int)stdoutput->xvec->backend_data + 0x58))(stdoutput,local_34)" (parenthesized_expression "(**(code **)((int)stdoutput->xvec->backend_data + 0x58))" ( (pointer_expression "**(code **)((int)stdoutput->xvec->backend_data + 0x58)" * (pointer_expression "*(code **)((int)stdoutput->xvec->backend_data + 0x58)" * (cast_expression "(code **)((int)stdoutput->xvec->backend_data + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)stdoutput->xvec->backend_data + 0x58)" ( (binary_expression "(int)stdoutput->xvec->backend_data + 0x58" (cast_expression "(int)stdoutput->xvec->backend_data" ( (type_descriptor "int" primitive_type) ) (field_expression "stdoutput->xvec->backend_data" (field_expression "stdoutput->xvec" identifier -> field_identifier) -> field_identifier)) + number_literal) ))))) )) (argument_list "(stdoutput,local_34)" ( identifier , identifier ))))) ;) (if_statement "if (pbVar4 == (byte *)0x0) {\nLAB_00046b14:\n    if ((attr & 0x1000002) == 0x1000000) {\n      pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar4);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar5,name);\n    }\n    uVar9 = attr >> 1 & 1;\n    uVar6 = attr << 0x13 & 0x1000000 |\n            attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |\n            (int)attr >> 0x10 & 0x8000U;\n    uVar9 = uVar9 & local_3c != 8;\nLAB_00046b74:\n    uVar12 = 4;\n    if ((attr & 1) == 0) goto LAB_00046d00;\n  }\n  else {\n    uVar9 = *(uint *)(pbVar4 + 0xc);\n    if ((type == 0) || (type == uVar9)) {\nLAB_00046b08:\n      local_3c = uVar9;\n      if (paVar3 != (segT)0x0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar9 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar9 = *(uint *)(pbVar4 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar9 == 7) || (0x6fffffff < type)) {\n      }\n      else {\n        pcVar5 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n      }\n    }\n    uVar9 = ~*(uint *)(pbVar4 + 0x10) & attr;\n    if ((uVar9 & 0xfffff) == 0) {\nLAB_00046ce0:\n      attr = attr | *(uint *)(pbVar4 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar4 + 0xc) == 7) {\n      if ((attr - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar4 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar4 = (byte *)group_name;\n        if (group_name == (char *)0x0) {\nLAB_00046c8e:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar4 + 8) == -2) {\nLAB_00046cc6:\n      if ((name[*(int *)(pbVar4 + 4)] == '.') && ((uVar9 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar15 = attr < 2;\n    bVar17 = attr == 2;\n    if (!bVar17) {\n      bVar15 = attr < 4;\n      bVar17 = attr == 4;\n      if (!bVar17) goto LAB_00046c82;\n      iVar10 = 0x10;\n      pbVar13 = (byte *)name;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        pbVar4 = pbVar13;\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar17 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar4;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar15 && !bVar17) == bVar15) {\n        uVar6 = 0x10;\n        uVar12 = 0xc;\n        uVar9 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (group_name == (char *)0x0) goto LAB_00046c8e;\n      uVar9 = attr >> 1 & 1;\n      uVar6 = attr << 0x13 & 0x1000000 |\n              attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |\n              (int)attr >> 0x10 & 0x8000U;\n      uVar9 = local_3c != 8 & uVar9;\n      goto LAB_00046b74;\n    }\n    iVar10 = 8;\n    pbVar4 = (byte *)name;\n    pbVar13 = (byte *)".interp";\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar15 = *pbVar4 < *pbVar13;\n      bVar17 = *pbVar4 == *pbVar13;\n      pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n    } while (bVar17);\n    bVar16 = false;\n    bVar15 = (!bVar15 && !bVar17) == bVar15;\n    if (!bVar15) {\n      iVar10 = 8;\n      pbVar4 = (byte *)name;\n      pbVar13 = (byte *)".strtab";\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar4 < *pbVar13;\n        bVar15 = *pbVar4 == *pbVar13;\n        pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n      } while (bVar15);\n      bVar17 = false;\n      bVar15 = (!bVar16 && !bVar15) == bVar16;\n      if (!bVar15) {\n        iVar10 = 8;\n        pbVar13 = (byte *)name;\n        pbVar14 = (byte *)".symtab";\n        do {\n          pbVar4 = pbVar13;\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar15 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar4;\n          pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar17 && !bVar15) != bVar17) goto LAB_00046f32;\n      }\n    }\n    uVar6 = 1;\n    uVar9 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar12 = 0xc;\n  }" if (parenthesized_expression "(pbVar4 == (byte *)0x0)" ( (binary_expression "pbVar4 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00046b14:\n    if ((attr & 0x1000002) == 0x1000000) {\n      pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar4);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar5,name);\n    }\n    uVar9 = attr >> 1 & 1;\n    uVar6 = attr << 0x13 & 0x1000000 |\n            attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |\n            (int)attr >> 0x10 & 0x8000U;\n    uVar9 = uVar9 & local_3c != 8;\nLAB_00046b74:\n    uVar12 = 4;\n    if ((attr & 1) == 0) goto LAB_00046d00;\n  }" { (labeled_statement "LAB_00046b14:\n    if ((attr & 0x1000002) == 0x1000000) {\n      pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar4);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar5,name);\n    }" statement_identifier : (if_statement "if ((attr & 0x1000002) == 0x1000000) {\n      pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar4);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar5,name);\n    }" if (parenthesized_expression "((attr & 0x1000002) == 0x1000000)" ( (binary_expression "(attr & 0x1000002) == 0x1000000" (parenthesized_expression "(attr & 0x1000002)" ( (binary_expression "attr & 0x1000002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar4);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar5,name);\n    }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar4);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar4)" identifier = (cast_expression "(char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar4)" identifier (argument_list "(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar4)" ( number_literal , (string_literal ""SHF_ALLOC isn\'t set for GNU_MBIND section: %s"" " string_content escape_sequence string_content ") , number_literal , identifier ))))) ;) comment (expression_statement "as_fatal(pcVar5,name);" (call_expression "as_fatal(pcVar5,name)" identifier (argument_list "(pcVar5,name)" ( identifier , identifier ))) ;) }))) (expression_statement "uVar9 = attr >> 1 & 1;" (assignment_expression "uVar9 = attr >> 1 & 1" identifier = (binary_expression "attr >> 1 & 1" (binary_expression "attr >> 1" identifier >> number_literal) & number_literal)) ;) (expression_statement "uVar6 = attr << 0x13 & 0x1000000 |\n            attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |\n            (int)attr >> 0x10 & 0x8000U;" (assignment_expression "uVar6 = attr << 0x13 & 0x1000000 |\n            attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |\n            (int)attr >> 0x10 & 0x8000U" identifier = (binary_expression "attr << 0x13 & 0x1000000 |\n            attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |\n            (int)attr >> 0x10 & 0x8000U" (binary_expression "attr << 0x13 & 0x1000000 |\n            attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000" (binary_expression "attr << 0x13 & 0x1000000 |\n            attr * 4 & 0x10 | uVar9 | attr & 0x400" (binary_expression "attr << 0x13 & 0x1000000 |\n            attr * 4 & 0x10 | uVar9" (binary_expression "attr << 0x13 & 0x1000000 |\n            attr * 4 & 0x10" (binary_expression "attr << 0x13 & 0x1000000" (binary_expression "attr << 0x13" identifier << number_literal) & number_literal) | (binary_expression "attr * 4 & 0x10" (binary_expression "attr * 4" identifier * number_literal) & number_literal)) | identifier) | (binary_expression "attr & 0x400" identifier & number_literal)) | (binary_expression "attr << 0x13 & 0x800000" (binary_expression "attr << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "(int)attr >> 0x10 & 0x8000U" (binary_expression "(int)attr >> 0x10" (cast_expression "(int)attr" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) & number_literal))) ;) (expression_statement "uVar9 = uVar9 & local_3c != 8;" (assignment_expression "uVar9 = uVar9 & local_3c != 8" identifier = (binary_expression "uVar9 & local_3c != 8" identifier & (binary_expression "local_3c != 8" identifier != number_literal))) ;) (labeled_statement "LAB_00046b74:\n    uVar12 = 4;" statement_identifier : (expression_statement "uVar12 = 4;" (assignment_expression "uVar12 = 4" identifier = number_literal) ;)) (if_statement "if ((attr & 1) == 0) goto LAB_00046d00;" if (parenthesized_expression "((attr & 1) == 0)" ( (binary_expression "(attr & 1) == 0" (parenthesized_expression "(attr & 1)" ( (binary_expression "attr & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00046d00;" goto statement_identifier ;)) }) (else_clause "else {\n    uVar9 = *(uint *)(pbVar4 + 0xc);\n    if ((type == 0) || (type == uVar9)) {\nLAB_00046b08:\n      local_3c = uVar9;\n      if (paVar3 != (segT)0x0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar9 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar9 = *(uint *)(pbVar4 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar9 == 7) || (0x6fffffff < type)) {\n      }\n      else {\n        pcVar5 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n      }\n    }\n    uVar9 = ~*(uint *)(pbVar4 + 0x10) & attr;\n    if ((uVar9 & 0xfffff) == 0) {\nLAB_00046ce0:\n      attr = attr | *(uint *)(pbVar4 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar4 + 0xc) == 7) {\n      if ((attr - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar4 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar4 = (byte *)group_name;\n        if (group_name == (char *)0x0) {\nLAB_00046c8e:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar4 + 8) == -2) {\nLAB_00046cc6:\n      if ((name[*(int *)(pbVar4 + 4)] == '.') && ((uVar9 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar15 = attr < 2;\n    bVar17 = attr == 2;\n    if (!bVar17) {\n      bVar15 = attr < 4;\n      bVar17 = attr == 4;\n      if (!bVar17) goto LAB_00046c82;\n      iVar10 = 0x10;\n      pbVar13 = (byte *)name;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        pbVar4 = pbVar13;\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar17 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar4;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar15 && !bVar17) == bVar15) {\n        uVar6 = 0x10;\n        uVar12 = 0xc;\n        uVar9 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (group_name == (char *)0x0) goto LAB_00046c8e;\n      uVar9 = attr >> 1 & 1;\n      uVar6 = attr << 0x13 & 0x1000000 |\n              attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |\n              (int)attr >> 0x10 & 0x8000U;\n      uVar9 = local_3c != 8 & uVar9;\n      goto LAB_00046b74;\n    }\n    iVar10 = 8;\n    pbVar4 = (byte *)name;\n    pbVar13 = (byte *)".interp";\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar15 = *pbVar4 < *pbVar13;\n      bVar17 = *pbVar4 == *pbVar13;\n      pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n    } while (bVar17);\n    bVar16 = false;\n    bVar15 = (!bVar15 && !bVar17) == bVar15;\n    if (!bVar15) {\n      iVar10 = 8;\n      pbVar4 = (byte *)name;\n      pbVar13 = (byte *)".strtab";\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar4 < *pbVar13;\n        bVar15 = *pbVar4 == *pbVar13;\n        pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n      } while (bVar15);\n      bVar17 = false;\n      bVar15 = (!bVar16 && !bVar15) == bVar16;\n      if (!bVar15) {\n        iVar10 = 8;\n        pbVar13 = (byte *)name;\n        pbVar14 = (byte *)".symtab";\n        do {\n          pbVar4 = pbVar13;\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar15 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar4;\n          pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar17 && !bVar15) != bVar17) goto LAB_00046f32;\n      }\n    }\n    uVar6 = 1;\n    uVar9 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar12 = 0xc;\n  }" else (compound_statement "{\n    uVar9 = *(uint *)(pbVar4 + 0xc);\n    if ((type == 0) || (type == uVar9)) {\nLAB_00046b08:\n      local_3c = uVar9;\n      if (paVar3 != (segT)0x0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar9 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar9 = *(uint *)(pbVar4 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar9 == 7) || (0x6fffffff < type)) {\n      }\n      else {\n        pcVar5 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n      }\n    }\n    uVar9 = ~*(uint *)(pbVar4 + 0x10) & attr;\n    if ((uVar9 & 0xfffff) == 0) {\nLAB_00046ce0:\n      attr = attr | *(uint *)(pbVar4 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar4 + 0xc) == 7) {\n      if ((attr - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar4 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar4 = (byte *)group_name;\n        if (group_name == (char *)0x0) {\nLAB_00046c8e:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar4 + 8) == -2) {\nLAB_00046cc6:\n      if ((name[*(int *)(pbVar4 + 4)] == '.') && ((uVar9 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar15 = attr < 2;\n    bVar17 = attr == 2;\n    if (!bVar17) {\n      bVar15 = attr < 4;\n      bVar17 = attr == 4;\n      if (!bVar17) goto LAB_00046c82;\n      iVar10 = 0x10;\n      pbVar13 = (byte *)name;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        pbVar4 = pbVar13;\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar17 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar4;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar15 && !bVar17) == bVar15) {\n        uVar6 = 0x10;\n        uVar12 = 0xc;\n        uVar9 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (group_name == (char *)0x0) goto LAB_00046c8e;\n      uVar9 = attr >> 1 & 1;\n      uVar6 = attr << 0x13 & 0x1000000 |\n              attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |\n              (int)attr >> 0x10 & 0x8000U;\n      uVar9 = local_3c != 8 & uVar9;\n      goto LAB_00046b74;\n    }\n    iVar10 = 8;\n    pbVar4 = (byte *)name;\n    pbVar13 = (byte *)".interp";\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar15 = *pbVar4 < *pbVar13;\n      bVar17 = *pbVar4 == *pbVar13;\n      pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n    } while (bVar17);\n    bVar16 = false;\n    bVar15 = (!bVar15 && !bVar17) == bVar15;\n    if (!bVar15) {\n      iVar10 = 8;\n      pbVar4 = (byte *)name;\n      pbVar13 = (byte *)".strtab";\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar4 < *pbVar13;\n        bVar15 = *pbVar4 == *pbVar13;\n        pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n      } while (bVar15);\n      bVar17 = false;\n      bVar15 = (!bVar16 && !bVar15) == bVar16;\n      if (!bVar15) {\n        iVar10 = 8;\n        pbVar13 = (byte *)name;\n        pbVar14 = (byte *)".symtab";\n        do {\n          pbVar4 = pbVar13;\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar15 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar4;\n          pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar17 && !bVar15) != bVar17) goto LAB_00046f32;\n      }\n    }\n    uVar6 = 1;\n    uVar9 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar12 = 0xc;\n  }" { (expression_statement "uVar9 = *(uint *)(pbVar4 + 0xc);" (assignment_expression "uVar9 = *(uint *)(pbVar4 + 0xc)" identifier = (pointer_expression "*(uint *)(pbVar4 + 0xc)" * (cast_expression "(uint *)(pbVar4 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar4 + 0xc)" ( (binary_expression "pbVar4 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((type == 0) || (type == uVar9)) {\nLAB_00046b08:\n      local_3c = uVar9;\n      if (paVar3 != (segT)0x0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar9 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar9 = *(uint *)(pbVar4 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar9 == 7) || (0x6fffffff < type)) {\n      }\n      else {\n        pcVar5 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n      }\n    }" if (parenthesized_expression "((type == 0) || (type == uVar9))" ( (binary_expression "(type == 0) || (type == uVar9)" (parenthesized_expression "(type == 0)" ( (binary_expression "type == 0" identifier == number_literal) )) || (parenthesized_expression "(type == uVar9)" ( (binary_expression "type == uVar9" identifier == identifier) ))) )) (compound_statement "{\nLAB_00046b08:\n      local_3c = uVar9;\n      if (paVar3 != (segT)0x0) goto LAB_00046b14;\n    }" { (labeled_statement "LAB_00046b08:\n      local_3c = uVar9;" statement_identifier : (expression_statement "local_3c = uVar9;" (assignment_expression "local_3c = uVar9" identifier = identifier) ;)) (if_statement "if (paVar3 != (segT)0x0) goto LAB_00046b14;" if (parenthesized_expression "(paVar3 != (segT)0x0)" ( (binary_expression "paVar3 != (segT)0x0" identifier != (cast_expression "(segT)0x0" ( (type_descriptor "segT" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00046b14;" goto statement_identifier ;)) }) (else_clause "else {\n      if ((uVar9 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar9 = *(uint *)(pbVar4 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar9 == 7) || (0x6fffffff < type)) {\n      }\n      else {\n        pcVar5 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n      }\n    }" else (compound_statement "{\n      if ((uVar9 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar9 = *(uint *)(pbVar4 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar9 == 7) || (0x6fffffff < type)) {\n      }\n      else {\n        pcVar5 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n      }\n    }" { (if_statement "if ((uVar9 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar9 = *(uint *)(pbVar4 + 0xc);\n        goto LAB_00046b08;\n      }" if (parenthesized_expression "((uVar9 - 0xe < 3) || (paVar3 != (segT)0x0))" ( (binary_expression "(uVar9 - 0xe < 3) || (paVar3 != (segT)0x0)" (parenthesized_expression "(uVar9 - 0xe < 3)" ( (binary_expression "uVar9 - 0xe < 3" (binary_expression "uVar9 - 0xe" identifier - number_literal) < number_literal) )) || (parenthesized_expression "(paVar3 != (segT)0x0)" ( (binary_expression "paVar3 != (segT)0x0" identifier != (cast_expression "(segT)0x0" ( (type_descriptor "segT" type_identifier) ) number_literal)) ))) )) (compound_statement "{\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar9 = *(uint *)(pbVar4 + 0xc);\n        goto LAB_00046b08;\n      }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"ignoring incorrect section type for %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"ignoring incorrect section type for %s",5)" identifier (argument_list "(0,"ignoring incorrect section type for %s",5)" ( number_literal , (string_literal ""ignoring incorrect section type for %s"" " string_content ") , number_literal ))))) ;) (expression_statement "as_warn(pcVar5,name);" (call_expression "as_warn(pcVar5,name)" identifier (argument_list "(pcVar5,name)" ( identifier , identifier ))) ;) (expression_statement "uVar9 = *(uint *)(pbVar4 + 0xc);" (assignment_expression "uVar9 = *(uint *)(pbVar4 + 0xc)" identifier = (pointer_expression "*(uint *)(pbVar4 + 0xc)" * (cast_expression "(uint *)(pbVar4 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar4 + 0xc)" ( (binary_expression "pbVar4 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00046b08;" goto statement_identifier ;) })) (if_statement "if ((uVar9 == 7) || (0x6fffffff < type)) {\n      }\n      else {\n        pcVar5 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n      }" if (parenthesized_expression "((uVar9 == 7) || (0x6fffffff < type))" ( (binary_expression "(uVar9 == 7) || (0x6fffffff < type)" (parenthesized_expression "(uVar9 == 7)" ( (binary_expression "uVar9 == 7" identifier == number_literal) )) || (parenthesized_expression "(0x6fffffff < type)" ( (binary_expression "0x6fffffff < type" number_literal < identifier) ))) )) (compound_statement "{\n      }" { }) (else_clause "else {\n        pcVar5 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n      }" else (compound_statement "{\n        pcVar5 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n      }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"setting incorrect section type for %s",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"setting incorrect section type for %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"setting incorrect section type for %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"setting incorrect section type for %s",5)" identifier (argument_list "(0,"setting incorrect section type for %s",5)" ( number_literal , (string_literal ""setting incorrect section type for %s"" " string_content ") , number_literal ))))) ;) (expression_statement "as_warn(pcVar5,name);" (call_expression "as_warn(pcVar5,name)" identifier (argument_list "(pcVar5,name)" ( identifier , identifier ))) ;) }))) }))) (expression_statement "uVar9 = ~*(uint *)(pbVar4 + 0x10) & attr;" (assignment_expression "uVar9 = ~*(uint *)(pbVar4 + 0x10) & attr" identifier = (binary_expression "~*(uint *)(pbVar4 + 0x10) & attr" (unary_expression "~*(uint *)(pbVar4 + 0x10)" ~ (pointer_expression "*(uint *)(pbVar4 + 0x10)" * (cast_expression "(uint *)(pbVar4 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar4 + 0x10)" ( (binary_expression "pbVar4 + 0x10" identifier + number_literal) ))))) & identifier)) ;) (if_statement "if ((uVar9 & 0xfffff) == 0) {\nLAB_00046ce0:\n      attr = attr | *(uint *)(pbVar4 + 0x10);\n      goto LAB_00046b14;\n    }" if (parenthesized_expression "((uVar9 & 0xfffff) == 0)" ( (binary_expression "(uVar9 & 0xfffff) == 0" (parenthesized_expression "(uVar9 & 0xfffff)" ( (binary_expression "uVar9 & 0xfffff" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00046ce0:\n      attr = attr | *(uint *)(pbVar4 + 0x10);\n      goto LAB_00046b14;\n    }" { (labeled_statement "LAB_00046ce0:\n      attr = attr | *(uint *)(pbVar4 + 0x10);" statement_identifier : (expression_statement "attr = attr | *(uint *)(pbVar4 + 0x10);" (assignment_expression "attr = attr | *(uint *)(pbVar4 + 0x10)" identifier = (binary_expression "attr | *(uint *)(pbVar4 + 0x10)" identifier | (pointer_expression "*(uint *)(pbVar4 + 0x10)" * (cast_expression "(uint *)(pbVar4 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar4 + 0x10)" ( (binary_expression "pbVar4 + 0x10" identifier + number_literal) )))))) ;)) (goto_statement "goto LAB_00046b14;" goto statement_identifier ;) })) (if_statement "if (*(int *)(pbVar4 + 0xc) == 7) {\n      if ((attr - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar4 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar4 = (byte *)group_name;\n        if (group_name == (char *)0x0) {\nLAB_00046c8e:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }" if (parenthesized_expression "(*(int *)(pbVar4 + 0xc) == 7)" ( (binary_expression "*(int *)(pbVar4 + 0xc) == 7" (pointer_expression "*(int *)(pbVar4 + 0xc)" * (cast_expression "(int *)(pbVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar4 + 0xc)" ( (binary_expression "pbVar4 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if ((attr - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar4 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar4 = (byte *)group_name;\n        if (group_name == (char *)0x0) {\nLAB_00046c8e:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }" { (if_statement "if ((attr - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar4 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar4 = (byte *)group_name;\n        if (group_name == (char *)0x0) {\nLAB_00046c8e:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00046b14;\n      }" if (parenthesized_expression "((attr - 2 & 0xfffffffd) != 0)" ( (binary_expression "(attr - 2 & 0xfffffffd) != 0" (parenthesized_expression "(attr - 2 & 0xfffffffd)" ( (binary_expression "attr - 2 & 0xfffffffd" (binary_expression "attr - 2" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n        if (*(int *)(pbVar4 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar4 = (byte *)group_name;\n        if (group_name == (char *)0x0) {\nLAB_00046c8e:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00046b14;\n      }" { (if_statement "if (*(int *)(pbVar4 + 8) == -2) goto LAB_00046cc6;" if (parenthesized_expression "(*(int *)(pbVar4 + 8) == -2)" ( (binary_expression "*(int *)(pbVar4 + 8) == -2" (pointer_expression "*(int *)(pbVar4 + 8)" * (cast_expression "(int *)(pbVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar4 + 8)" ( (binary_expression "pbVar4 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00046cc6;" goto statement_identifier ;)) (labeled_statement "LAB_00046c82:\n        pbVar4 = (byte *)group_name;" statement_identifier : (expression_statement "pbVar4 = (byte *)group_name;" (assignment_expression "pbVar4 = (byte *)group_name" identifier = (cast_expression "(byte *)group_name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if (group_name == (char *)0x0) {\nLAB_00046c8e:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }" if (parenthesized_expression "(group_name == (char *)0x0)" ( (binary_expression "group_name == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00046c8e:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }" { (labeled_statement "LAB_00046c8e:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);" statement_identifier : (expression_statement "pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"setting incorrect section attributes for %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"setting incorrect section attributes for %s",5)" identifier (argument_list "(0,"setting incorrect section attributes for %s",5)" ( number_literal , (string_literal ""setting incorrect section attributes for %s"" " string_content ") , number_literal ))))) ;)) (expression_statement "as_warn(pcVar5,name);" (call_expression "as_warn(pcVar5,name)" identifier (argument_list "(pcVar5,name)" ( identifier , identifier ))) ;) })) (goto_statement "goto LAB_00046b14;" goto statement_identifier ;) })) (goto_statement "goto LAB_00046ce0;" goto statement_identifier ;) })) (if_statement "if (*(int *)(pbVar4 + 8) == -2) {\nLAB_00046cc6:\n      if ((name[*(int *)(pbVar4 + 4)] == '.') && ((uVar9 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }" if (parenthesized_expression "(*(int *)(pbVar4 + 8) == -2)" ( (binary_expression "*(int *)(pbVar4 + 8) == -2" (pointer_expression "*(int *)(pbVar4 + 8)" * (cast_expression "(int *)(pbVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar4 + 8)" ( (binary_expression "pbVar4 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00046cc6:\n      if ((name[*(int *)(pbVar4 + 4)] == '.') && ((uVar9 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }" { (labeled_statement "LAB_00046cc6:\n      if ((name[*(int *)(pbVar4 + 4)] == '.') && ((uVar9 & 0xffffffcf) == 0)) goto LAB_00046ce0;" statement_identifier : (if_statement "if ((name[*(int *)(pbVar4 + 4)] == '.') && ((uVar9 & 0xffffffcf) == 0)) goto LAB_00046ce0;" if (parenthesized_expression "((name[*(int *)(pbVar4 + 4)] == '.') && ((uVar9 & 0xffffffcf) == 0))" ( (binary_expression "(name[*(int *)(pbVar4 + 4)] == '.') && ((uVar9 & 0xffffffcf) == 0)" (parenthesized_expression "(name[*(int *)(pbVar4 + 4)] == '.')" ( (binary_expression "name[*(int *)(pbVar4 + 4)] == '.'" (subscript_expression "name[*(int *)(pbVar4 + 4)]" identifier [ (pointer_expression "*(int *)(pbVar4 + 4)" * (cast_expression "(int *)(pbVar4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar4 + 4)" ( (binary_expression "pbVar4 + 4" identifier + number_literal) )))) ]) == (char_literal "'.'" ' character ')) )) && (parenthesized_expression "((uVar9 & 0xffffffcf) == 0)" ( (binary_expression "(uVar9 & 0xffffffcf) == 0" (parenthesized_expression "(uVar9 & 0xffffffcf)" ( (binary_expression "uVar9 & 0xffffffcf" identifier & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00046ce0;" goto statement_identifier ;))) })) (expression_statement "bVar15 = attr < 2;" (assignment_expression "bVar15 = attr < 2" identifier = (binary_expression "attr < 2" identifier < number_literal)) ;) (expression_statement "bVar17 = attr == 2;" (assignment_expression "bVar17 = attr == 2" identifier = (binary_expression "attr == 2" identifier == number_literal)) ;) (if_statement "if (!bVar17) {\n      bVar15 = attr < 4;\n      bVar17 = attr == 4;\n      if (!bVar17) goto LAB_00046c82;\n      iVar10 = 0x10;\n      pbVar13 = (byte *)name;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        pbVar4 = pbVar13;\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar17 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar4;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar15 && !bVar17) == bVar15) {\n        uVar6 = 0x10;\n        uVar12 = 0xc;\n        uVar9 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (group_name == (char *)0x0) goto LAB_00046c8e;\n      uVar9 = attr >> 1 & 1;\n      uVar6 = attr << 0x13 & 0x1000000 |\n              attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |\n              (int)attr >> 0x10 & 0x8000U;\n      uVar9 = local_3c != 8 & uVar9;\n      goto LAB_00046b74;\n    }" if (parenthesized_expression "(!bVar17)" ( (unary_expression "!bVar17" ! identifier) )) (compound_statement "{\n      bVar15 = attr < 4;\n      bVar17 = attr == 4;\n      if (!bVar17) goto LAB_00046c82;\n      iVar10 = 0x10;\n      pbVar13 = (byte *)name;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        pbVar4 = pbVar13;\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar17 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar4;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while (bVar17);\n      if ((!bVar15 && !bVar17) == bVar15) {\n        uVar6 = 0x10;\n        uVar12 = 0xc;\n        uVar9 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (group_name == (char *)0x0) goto LAB_00046c8e;\n      uVar9 = attr >> 1 & 1;\n      uVar6 = attr << 0x13 & 0x1000000 |\n              attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |\n              (int)attr >> 0x10 & 0x8000U;\n      uVar9 = local_3c != 8 & uVar9;\n      goto LAB_00046b74;\n    }" { (expression_statement "bVar15 = attr < 4;" (assignment_expression "bVar15 = attr < 4" identifier = (binary_expression "attr < 4" identifier < number_literal)) ;) (expression_statement "bVar17 = attr == 4;" (assignment_expression "bVar17 = attr == 4" identifier = (binary_expression "attr == 4" identifier == number_literal)) ;) (if_statement "if (!bVar17) goto LAB_00046c82;" if (parenthesized_expression "(!bVar17)" ( (unary_expression "!bVar17" ! identifier) )) (goto_statement "goto LAB_00046c82;" goto statement_identifier ;)) (expression_statement "iVar10 = 0x10;" (assignment_expression "iVar10 = 0x10" identifier = number_literal) ;) (expression_statement "pbVar13 = (byte *)name;" (assignment_expression "pbVar13 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar14 = (byte *)".note.GNU-stack";" (assignment_expression "pbVar14 = (byte *)".note.GNU-stack"" identifier = (cast_expression "(byte *)".note.GNU-stack"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".note.GNU-stack"" " string_content "))) ;) (do_statement "do {\n        pbVar4 = pbVar13;\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar17 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar4;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      } while (bVar17);" do (compound_statement "{\n        pbVar4 = pbVar13;\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n        bVar15 = *pbVar13 < *pbVar14;\n        bVar17 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar4;\n        pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n      }" { (expression_statement "pbVar4 = pbVar13;" (assignment_expression "pbVar4 = pbVar13" identifier = identifier) ;) (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "bVar15 = *pbVar13 < *pbVar14;" (assignment_expression "bVar15 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar17 = *pbVar13 == *pbVar14;" (assignment_expression "bVar17 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar4;" (assignment_expression "pbVar13 = pbVar4" identifier = identifier) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar17) == bVar15) {\n        uVar6 = 0x10;\n        uVar12 = 0xc;\n        uVar9 = 0;\n        goto LAB_00046b86;\n      }" if (parenthesized_expression "((!bVar15 && !bVar17) == bVar15)" ( (binary_expression "(!bVar15 && !bVar17) == bVar15" (parenthesized_expression "(!bVar15 && !bVar17)" ( (binary_expression "!bVar15 && !bVar17" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) == identifier) )) (compound_statement "{\n        uVar6 = 0x10;\n        uVar12 = 0xc;\n        uVar9 = 0;\n        goto LAB_00046b86;\n      }" { (expression_statement "uVar6 = 0x10;" (assignment_expression "uVar6 = 0x10" identifier = number_literal) ;) (expression_statement "uVar12 = 0xc;" (assignment_expression "uVar12 = 0xc" identifier = number_literal) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00046b86;" goto statement_identifier ;) })) (labeled_statement "LAB_00046f32:\n      if (group_name == (char *)0x0) goto LAB_00046c8e;" statement_identifier : (if_statement "if (group_name == (char *)0x0) goto LAB_00046c8e;" if (parenthesized_expression "(group_name == (char *)0x0)" ( (binary_expression "group_name == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00046c8e;" goto statement_identifier ;))) (expression_statement "uVar9 = attr >> 1 & 1;" (assignment_expression "uVar9 = attr >> 1 & 1" identifier = (binary_expression "attr >> 1 & 1" (binary_expression "attr >> 1" identifier >> number_literal) & number_literal)) ;) (expression_statement "uVar6 = attr << 0x13 & 0x1000000 |\n              attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |\n              (int)attr >> 0x10 & 0x8000U;" (assignment_expression "uVar6 = attr << 0x13 & 0x1000000 |\n              attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |\n              (int)attr >> 0x10 & 0x8000U" identifier = (binary_expression "attr << 0x13 & 0x1000000 |\n              attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000 |\n              (int)attr >> 0x10 & 0x8000U" (binary_expression "attr << 0x13 & 0x1000000 |\n              attr * 4 & 0x10 | uVar9 | attr & 0x400 | attr << 0x13 & 0x800000" (binary_expression "attr << 0x13 & 0x1000000 |\n              attr * 4 & 0x10 | uVar9 | attr & 0x400" (binary_expression "attr << 0x13 & 0x1000000 |\n              attr * 4 & 0x10 | uVar9" (binary_expression "attr << 0x13 & 0x1000000 |\n              attr * 4 & 0x10" (binary_expression "attr << 0x13 & 0x1000000" (binary_expression "attr << 0x13" identifier << number_literal) & number_literal) | (binary_expression "attr * 4 & 0x10" (binary_expression "attr * 4" identifier * number_literal) & number_literal)) | identifier) | (binary_expression "attr & 0x400" identifier & number_literal)) | (binary_expression "attr << 0x13 & 0x800000" (binary_expression "attr << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "(int)attr >> 0x10 & 0x8000U" (binary_expression "(int)attr >> 0x10" (cast_expression "(int)attr" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) & number_literal))) ;) (expression_statement "uVar9 = local_3c != 8 & uVar9;" (assignment_expression "uVar9 = local_3c != 8 & uVar9" identifier = (binary_expression "local_3c != 8 & uVar9" (binary_expression "local_3c != 8" identifier != number_literal) & identifier)) ;) (goto_statement "goto LAB_00046b74;" goto statement_identifier ;) })) (expression_statement "iVar10 = 8;" (assignment_expression "iVar10 = 8" identifier = number_literal) ;) (expression_statement "pbVar4 = (byte *)name;" (assignment_expression "pbVar4 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar13 = (byte *)".interp";" (assignment_expression "pbVar13 = (byte *)".interp"" identifier = (cast_expression "(byte *)".interp"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".interp"" " string_content "))) ;) (do_statement "do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar15 = *pbVar4 < *pbVar13;\n      bVar17 = *pbVar4 == *pbVar13;\n      pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n    } while (bVar17);" do (compound_statement "{\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar15 = *pbVar4 < *pbVar13;\n      bVar17 = *pbVar4 == *pbVar13;\n      pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n    }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar4 < *pbVar13;" (assignment_expression "bVar15 = *pbVar4 < *pbVar13" identifier = (binary_expression "*pbVar4 < *pbVar13" (pointer_expression "*pbVar4" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar17 = *pbVar4 == *pbVar13;" (assignment_expression "bVar17 = *pbVar4 == *pbVar13" identifier = (binary_expression "*pbVar4 == *pbVar13" (pointer_expression "*pbVar4" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar4 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar4 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar15 && !bVar17) == bVar15;" (assignment_expression "bVar15 = (!bVar15 && !bVar17) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar17) == bVar15" (parenthesized_expression "(!bVar15 && !bVar17)" ( (binary_expression "!bVar15 && !bVar17" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar15) {\n      iVar10 = 8;\n      pbVar4 = (byte *)name;\n      pbVar13 = (byte *)".strtab";\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar4 < *pbVar13;\n        bVar15 = *pbVar4 == *pbVar13;\n        pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n      } while (bVar15);\n      bVar17 = false;\n      bVar15 = (!bVar16 && !bVar15) == bVar16;\n      if (!bVar15) {\n        iVar10 = 8;\n        pbVar13 = (byte *)name;\n        pbVar14 = (byte *)".symtab";\n        do {\n          pbVar4 = pbVar13;\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar15 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar4;\n          pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar17 && !bVar15) != bVar17) goto LAB_00046f32;\n      }\n    }" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (compound_statement "{\n      iVar10 = 8;\n      pbVar4 = (byte *)name;\n      pbVar13 = (byte *)".strtab";\n      do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar4 < *pbVar13;\n        bVar15 = *pbVar4 == *pbVar13;\n        pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n      } while (bVar15);\n      bVar17 = false;\n      bVar15 = (!bVar16 && !bVar15) == bVar16;\n      if (!bVar15) {\n        iVar10 = 8;\n        pbVar13 = (byte *)name;\n        pbVar14 = (byte *)".symtab";\n        do {\n          pbVar4 = pbVar13;\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar15 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar4;\n          pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar17 && !bVar15) != bVar17) goto LAB_00046f32;\n      }\n    }" { (expression_statement "iVar10 = 8;" (assignment_expression "iVar10 = 8" identifier = number_literal) ;) (expression_statement "pbVar4 = (byte *)name;" (assignment_expression "pbVar4 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar13 = (byte *)".strtab";" (assignment_expression "pbVar13 = (byte *)".strtab"" identifier = (cast_expression "(byte *)".strtab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".strtab"" " string_content "))) ;) (do_statement "do {\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar4 < *pbVar13;\n        bVar15 = *pbVar4 == *pbVar13;\n        pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n      } while (bVar15);" do (compound_statement "{\n        if (iVar10 == 0) break;\n        iVar10 = iVar10 + -1;\n        bVar16 = *pbVar4 < *pbVar13;\n        bVar15 = *pbVar4 == *pbVar13;\n        pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;\n      }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar4 < *pbVar13;" (assignment_expression "bVar16 = *pbVar4 < *pbVar13" identifier = (binary_expression "*pbVar4 < *pbVar13" (pointer_expression "*pbVar4" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar15 = *pbVar4 == *pbVar13;" (assignment_expression "bVar15 = *pbVar4 == *pbVar13" identifier = (binary_expression "*pbVar4 == *pbVar13" (pointer_expression "*pbVar4" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar4 = pbVar4 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar4 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar4 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar15 = (!bVar16 && !bVar15) == bVar16;" (assignment_expression "bVar15 = (!bVar16 && !bVar15) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar15) == bVar16" (parenthesized_expression "(!bVar16 && !bVar15)" ( (binary_expression "!bVar16 && !bVar15" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar15) {\n        iVar10 = 8;\n        pbVar13 = (byte *)name;\n        pbVar14 = (byte *)".symtab";\n        do {\n          pbVar4 = pbVar13;\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar15 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar4;\n          pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar17 && !bVar15) != bVar17) goto LAB_00046f32;\n      }" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (compound_statement "{\n        iVar10 = 8;\n        pbVar13 = (byte *)name;\n        pbVar14 = (byte *)".symtab";\n        do {\n          pbVar4 = pbVar13;\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar15 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar4;\n          pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n        } while (bVar15);\n        if ((!bVar17 && !bVar15) != bVar17) goto LAB_00046f32;\n      }" { (expression_statement "iVar10 = 8;" (assignment_expression "iVar10 = 8" identifier = number_literal) ;) (expression_statement "pbVar13 = (byte *)name;" (assignment_expression "pbVar13 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar14 = (byte *)".symtab";" (assignment_expression "pbVar14 = (byte *)".symtab"" identifier = (cast_expression "(byte *)".symtab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".symtab"" " string_content "))) ;) (do_statement "do {\n          pbVar4 = pbVar13;\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar15 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar4;\n          pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n        } while (bVar15);" do (compound_statement "{\n          pbVar4 = pbVar13;\n          if (iVar10 == 0) break;\n          iVar10 = iVar10 + -1;\n          pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;\n          bVar17 = *pbVar13 < *pbVar14;\n          bVar15 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar4;\n          pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;\n        }" { (expression_statement "pbVar4 = pbVar13;" (assignment_expression "pbVar4 = pbVar13" identifier = identifier) ;) (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar4 = pbVar13 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "bVar17 = *pbVar13 < *pbVar14;" (assignment_expression "bVar17 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar15 = *pbVar13 == *pbVar14;" (assignment_expression "bVar15 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar4;" (assignment_expression "pbVar13 = pbVar4" identifier = identifier) ;) (expression_statement "pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "pbVar14 + (uint)bVar18 * -2 + 1" (binary_expression "pbVar14 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar17 && !bVar15) != bVar17) goto LAB_00046f32;" if (parenthesized_expression "((!bVar17 && !bVar15) != bVar17)" ( (binary_expression "(!bVar17 && !bVar15) != bVar17" (parenthesized_expression "(!bVar17 && !bVar15)" ( (binary_expression "!bVar17 && !bVar15" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00046f32;" goto statement_identifier ;)) })) })) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) (expression_statement "uVar9 = (uint)(local_3c != 8);" (assignment_expression "uVar9 = (uint)(local_3c != 8)" identifier = (call_expression "(uint)(local_3c != 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_3c != 8)" ( (binary_expression "local_3c != 8" identifier != number_literal) )))) ;) (labeled_statement "LAB_00046d00:\n    uVar12 = 0xc;" statement_identifier : (expression_statement "uVar12 = 0xc;" (assignment_expression "uVar12 = 0xc" identifier = number_literal) ;)) }))) (expression_statement "uVar9 = uVar9 * 2;" (assignment_expression "uVar9 = uVar9 * 2" identifier = (binary_expression "uVar9 * 2" identifier * number_literal)) ;) (labeled_statement "LAB_00046b86:\n  uVar9 = ppc_section_flags(uVar9 | uVar6 | uVar12,attr,local_3c);" statement_identifier : (expression_statement "uVar9 = ppc_section_flags(uVar9 | uVar6 | uVar12,attr,local_3c);" (assignment_expression "uVar9 = ppc_section_flags(uVar9 | uVar6 | uVar12,attr,local_3c)" identifier = (call_expression "ppc_section_flags(uVar9 | uVar6 | uVar12,attr,local_3c)" identifier (argument_list "(uVar9 | uVar6 | uVar12,attr,local_3c)" ( (binary_expression "uVar9 | uVar6 | uVar12" (binary_expression "uVar9 | uVar6" identifier | identifier) | identifier) , identifier , identifier )))) ;)) (if_statement "if (linkonce != 0) {\n    uVar9 = uVar9 | 0x20000;\n  }" if (parenthesized_expression "(linkonce != 0)" ( (binary_expression "linkonce != 0" identifier != number_literal) )) (compound_statement "{\n    uVar9 = uVar9 | 0x20000;\n  }" { (expression_statement "uVar9 = uVar9 | 0x20000;" (assignment_expression "uVar9 = uVar9 | 0x20000" identifier = (binary_expression "uVar9 | 0x20000" identifier | number_literal)) ;) })) (if_statement "if (paVar3 == (segT)0x0) {\n    if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar9);\n    }\n    pvVar1 = local_34->used_by_bfd;\n    *(uint *)((int)pvVar1 + 4) = local_3c;\n    *(bfd_vma *)((int)pvVar1 + 8) = attr;\n    *(uint *)((int)pvVar1 + 0x20) = info;\n    if (local_3c == 8) {\n      pbVar4 = (byte *)((int)local_34->userdata + 4);\n      *pbVar4 = *pbVar4 | 2;\n    }\n    bfd_set_section_flags(stdoutput,local_34,uVar9);\n    if ((uVar9 & 0x800000) != 0) {\n      local_34->entsize = entsize;\n    }\n    *(char **)((int)local_34->used_by_bfd + 0x70) = group_name;\n    psVar8 = symbol_find(name);\n    if (psVar8 != (symbolS *)0x0) {\n      symbol_set_bfdsym(psVar8,local_34->symbol);\n      return;\n    }\n    psVar8 = section_symbol(local_34);\n    symbol_table_insert(psVar8);\n  }\n  else {\n    if ((local_3c != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_3c)) {\n      pcVar5 = (char *)dcgettext(0,"ignoring changed section type for %s",5);\n      as_warn(pcVar5,name);\n    }\n    if (attr != 0) {\n      if (((paVar3->flags ^ uVar9) & 0x183841b) == 0) {\n        *(bfd_vma *)((int)local_34->used_by_bfd + 8) = attr;\n      }\n      else {\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar5,name);\n      }\n      if (((uVar9 & 0x800000) != 0) && (paVar3->entsize != entsize)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar5,name);\n      }\n    }\n  }" if (parenthesized_expression "(paVar3 == (segT)0x0)" ( (binary_expression "paVar3 == (segT)0x0" identifier == (cast_expression "(segT)0x0" ( (type_descriptor "segT" type_identifier) ) number_literal)) )) (compound_statement "{\n    if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar9);\n    }\n    pvVar1 = local_34->used_by_bfd;\n    *(uint *)((int)pvVar1 + 4) = local_3c;\n    *(bfd_vma *)((int)pvVar1 + 8) = attr;\n    *(uint *)((int)pvVar1 + 0x20) = info;\n    if (local_3c == 8) {\n      pbVar4 = (byte *)((int)local_34->userdata + 4);\n      *pbVar4 = *pbVar4 | 2;\n    }\n    bfd_set_section_flags(stdoutput,local_34,uVar9);\n    if ((uVar9 & 0x800000) != 0) {\n      local_34->entsize = entsize;\n    }\n    *(char **)((int)local_34->used_by_bfd + 0x70) = group_name;\n    psVar8 = symbol_find(name);\n    if (psVar8 != (symbolS *)0x0) {\n      symbol_set_bfdsym(psVar8,local_34->symbol);\n      return;\n    }\n    psVar8 = section_symbol(local_34);\n    symbol_table_insert(psVar8);\n  }" { (if_statement "if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar9);\n    }" if (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) )) (compound_statement "{\n      local_3c = bfd_elf_get_default_section_type(uVar9);\n    }" { (expression_statement "local_3c = bfd_elf_get_default_section_type(uVar9);" (assignment_expression "local_3c = bfd_elf_get_default_section_type(uVar9)" identifier = (call_expression "bfd_elf_get_default_section_type(uVar9)" identifier (argument_list "(uVar9)" ( identifier )))) ;) })) (expression_statement "pvVar1 = local_34->used_by_bfd;" (assignment_expression "pvVar1 = local_34->used_by_bfd" identifier = (field_expression "local_34->used_by_bfd" identifier -> field_identifier)) ;) (expression_statement "*(uint *)((int)pvVar1 + 4) = local_3c;" (assignment_expression "*(uint *)((int)pvVar1 + 4) = local_3c" (pointer_expression "*(uint *)((int)pvVar1 + 4)" * (cast_expression "(uint *)((int)pvVar1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar1 + 4)" ( (binary_expression "(int)pvVar1 + 4" (cast_expression "(int)pvVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(bfd_vma *)((int)pvVar1 + 8) = attr;" (assignment_expression "*(bfd_vma *)((int)pvVar1 + 8) = attr" (pointer_expression "*(bfd_vma *)((int)pvVar1 + 8)" * (cast_expression "(bfd_vma *)((int)pvVar1 + 8)" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar1 + 8)" ( (binary_expression "(int)pvVar1 + 8" (cast_expression "(int)pvVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((int)pvVar1 + 0x20) = info;" (assignment_expression "*(uint *)((int)pvVar1 + 0x20) = info" (pointer_expression "*(uint *)((int)pvVar1 + 0x20)" * (cast_expression "(uint *)((int)pvVar1 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar1 + 0x20)" ( (binary_expression "(int)pvVar1 + 0x20" (cast_expression "(int)pvVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (local_3c == 8) {\n      pbVar4 = (byte *)((int)local_34->userdata + 4);\n      *pbVar4 = *pbVar4 | 2;\n    }" if (parenthesized_expression "(local_3c == 8)" ( (binary_expression "local_3c == 8" identifier == number_literal) )) (compound_statement "{\n      pbVar4 = (byte *)((int)local_34->userdata + 4);\n      *pbVar4 = *pbVar4 | 2;\n    }" { (expression_statement "pbVar4 = (byte *)((int)local_34->userdata + 4);" (assignment_expression "pbVar4 = (byte *)((int)local_34->userdata + 4)" identifier = (cast_expression "(byte *)((int)local_34->userdata + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_34->userdata + 4)" ( (binary_expression "(int)local_34->userdata + 4" (cast_expression "(int)local_34->userdata" ( (type_descriptor "int" primitive_type) ) (field_expression "local_34->userdata" identifier -> field_identifier)) + number_literal) )))) ;) (expression_statement "*pbVar4 = *pbVar4 | 2;" (assignment_expression "*pbVar4 = *pbVar4 | 2" (pointer_expression "*pbVar4" * identifier) = (binary_expression "*pbVar4 | 2" (pointer_expression "*pbVar4" * identifier) | number_literal)) ;) })) (expression_statement "bfd_set_section_flags(stdoutput,local_34,uVar9);" (call_expression "bfd_set_section_flags(stdoutput,local_34,uVar9)" identifier (argument_list "(stdoutput,local_34,uVar9)" ( identifier , identifier , identifier ))) ;) (if_statement "if ((uVar9 & 0x800000) != 0) {\n      local_34->entsize = entsize;\n    }" if (parenthesized_expression "((uVar9 & 0x800000) != 0)" ( (binary_expression "(uVar9 & 0x800000) != 0" (parenthesized_expression "(uVar9 & 0x800000)" ( (binary_expression "uVar9 & 0x800000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      local_34->entsize = entsize;\n    }" { (expression_statement "local_34->entsize = entsize;" (assignment_expression "local_34->entsize = entsize" (field_expression "local_34->entsize" identifier -> field_identifier) = identifier) ;) })) (expression_statement "*(char **)((int)local_34->used_by_bfd + 0x70) = group_name;" (assignment_expression "*(char **)((int)local_34->used_by_bfd + 0x70) = group_name" (pointer_expression "*(char **)((int)local_34->used_by_bfd + 0x70)" * (cast_expression "(char **)((int)local_34->used_by_bfd + 0x70)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_34->used_by_bfd + 0x70)" ( (binary_expression "(int)local_34->used_by_bfd + 0x70" (cast_expression "(int)local_34->used_by_bfd" ( (type_descriptor "int" primitive_type) ) (field_expression "local_34->used_by_bfd" identifier -> field_identifier)) + number_literal) )))) = identifier) ;) (expression_statement "psVar8 = symbol_find(name);" (assignment_expression "psVar8 = symbol_find(name)" identifier = (call_expression "symbol_find(name)" identifier (argument_list "(name)" ( identifier )))) ;) (if_statement "if (psVar8 != (symbolS *)0x0) {\n      symbol_set_bfdsym(psVar8,local_34->symbol);\n      return;\n    }" if (parenthesized_expression "(psVar8 != (symbolS *)0x0)" ( (binary_expression "psVar8 != (symbolS *)0x0" identifier != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      symbol_set_bfdsym(psVar8,local_34->symbol);\n      return;\n    }" { (expression_statement "symbol_set_bfdsym(psVar8,local_34->symbol);" (call_expression "symbol_set_bfdsym(psVar8,local_34->symbol)" identifier (argument_list "(psVar8,local_34->symbol)" ( identifier , (field_expression "local_34->symbol" identifier -> field_identifier) ))) ;) (return_statement "return;" return ;) })) (expression_statement "psVar8 = section_symbol(local_34);" (assignment_expression "psVar8 = section_symbol(local_34)" identifier = (call_expression "section_symbol(local_34)" identifier (argument_list "(local_34)" ( identifier )))) ;) (expression_statement "symbol_table_insert(psVar8);" (call_expression "symbol_table_insert(psVar8)" identifier (argument_list "(psVar8)" ( identifier ))) ;) }) (else_clause "else {\n    if ((local_3c != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_3c)) {\n      pcVar5 = (char *)dcgettext(0,"ignoring changed section type for %s",5);\n      as_warn(pcVar5,name);\n    }\n    if (attr != 0) {\n      if (((paVar3->flags ^ uVar9) & 0x183841b) == 0) {\n        *(bfd_vma *)((int)local_34->used_by_bfd + 8) = attr;\n      }\n      else {\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar5,name);\n      }\n      if (((uVar9 & 0x800000) != 0) && (paVar3->entsize != entsize)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar5,name);\n      }\n    }\n  }" else (compound_statement "{\n    if ((local_3c != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_3c)) {\n      pcVar5 = (char *)dcgettext(0,"ignoring changed section type for %s",5);\n      as_warn(pcVar5,name);\n    }\n    if (attr != 0) {\n      if (((paVar3->flags ^ uVar9) & 0x183841b) == 0) {\n        *(bfd_vma *)((int)local_34->used_by_bfd + 8) = attr;\n      }\n      else {\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar5,name);\n      }\n      if (((uVar9 & 0x800000) != 0) && (paVar3->entsize != entsize)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar5,name);\n      }\n    }\n  }" { (if_statement "if ((local_3c != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_3c)) {\n      pcVar5 = (char *)dcgettext(0,"ignoring changed section type for %s",5);\n      as_warn(pcVar5,name);\n    }" if (parenthesized_expression "((local_3c != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_3c))" ( (binary_expression "(local_3c != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_3c)" (parenthesized_expression "(local_3c != 0)" ( (binary_expression "local_3c != 0" identifier != number_literal) )) && (parenthesized_expression "(*(uint *)((int)paVar3->used_by_bfd + 4) != local_3c)" ( (binary_expression "*(uint *)((int)paVar3->used_by_bfd + 4) != local_3c" (pointer_expression "*(uint *)((int)paVar3->used_by_bfd + 4)" * (cast_expression "(uint *)((int)paVar3->used_by_bfd + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)paVar3->used_by_bfd + 4)" ( (binary_expression "(int)paVar3->used_by_bfd + 4" (cast_expression "(int)paVar3->used_by_bfd" ( (type_descriptor "int" primitive_type) ) (field_expression "paVar3->used_by_bfd" identifier -> field_identifier)) + number_literal) )))) != identifier) ))) )) (compound_statement "{\n      pcVar5 = (char *)dcgettext(0,"ignoring changed section type for %s",5);\n      as_warn(pcVar5,name);\n    }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"ignoring changed section type for %s",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"ignoring changed section type for %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"ignoring changed section type for %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"ignoring changed section type for %s",5)" identifier (argument_list "(0,"ignoring changed section type for %s",5)" ( number_literal , (string_literal ""ignoring changed section type for %s"" " string_content ") , number_literal ))))) ;) (expression_statement "as_warn(pcVar5,name);" (call_expression "as_warn(pcVar5,name)" identifier (argument_list "(pcVar5,name)" ( identifier , identifier ))) ;) })) (if_statement "if (attr != 0) {\n      if (((paVar3->flags ^ uVar9) & 0x183841b) == 0) {\n        *(bfd_vma *)((int)local_34->used_by_bfd + 8) = attr;\n      }\n      else {\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar5,name);\n      }\n      if (((uVar9 & 0x800000) != 0) && (paVar3->entsize != entsize)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar5,name);\n      }\n    }" if (parenthesized_expression "(attr != 0)" ( (binary_expression "attr != 0" identifier != number_literal) )) (compound_statement "{\n      if (((paVar3->flags ^ uVar9) & 0x183841b) == 0) {\n        *(bfd_vma *)((int)local_34->used_by_bfd + 8) = attr;\n      }\n      else {\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar5,name);\n      }\n      if (((uVar9 & 0x800000) != 0) && (paVar3->entsize != entsize)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar5,name);\n      }\n    }" { (if_statement "if (((paVar3->flags ^ uVar9) & 0x183841b) == 0) {\n        *(bfd_vma *)((int)local_34->used_by_bfd + 8) = attr;\n      }\n      else {\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar5,name);\n      }" if (parenthesized_expression "(((paVar3->flags ^ uVar9) & 0x183841b) == 0)" ( (binary_expression "((paVar3->flags ^ uVar9) & 0x183841b) == 0" (parenthesized_expression "((paVar3->flags ^ uVar9) & 0x183841b)" ( (binary_expression "(paVar3->flags ^ uVar9) & 0x183841b" (parenthesized_expression "(paVar3->flags ^ uVar9)" ( (binary_expression "paVar3->flags ^ uVar9" (field_expression "paVar3->flags" identifier -> field_identifier) ^ identifier) )) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(bfd_vma *)((int)local_34->used_by_bfd + 8) = attr;\n      }" { (expression_statement "*(bfd_vma *)((int)local_34->used_by_bfd + 8) = attr;" (assignment_expression "*(bfd_vma *)((int)local_34->used_by_bfd + 8) = attr" (pointer_expression "*(bfd_vma *)((int)local_34->used_by_bfd + 8)" * (cast_expression "(bfd_vma *)((int)local_34->used_by_bfd + 8)" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_34->used_by_bfd + 8)" ( (binary_expression "(int)local_34->used_by_bfd + 8" (cast_expression "(int)local_34->used_by_bfd" ( (type_descriptor "int" primitive_type) ) (field_expression "local_34->used_by_bfd" identifier -> field_identifier)) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar5,name);\n      }" else (compound_statement "{\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar5,name);\n      }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"ignoring changed section attributes for %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"ignoring changed section attributes for %s",5)" identifier (argument_list "(0,"ignoring changed section attributes for %s",5)" ( number_literal , (string_literal ""ignoring changed section attributes for %s"" " string_content ") , number_literal ))))) ;) (expression_statement "as_warn(pcVar5,name);" (call_expression "as_warn(pcVar5,name)" identifier (argument_list "(pcVar5,name)" ( identifier , identifier ))) ;) }))) (if_statement "if (((uVar9 & 0x800000) != 0) && (paVar3->entsize != entsize)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar5,name);\n      }" if (parenthesized_expression "(((uVar9 & 0x800000) != 0) && (paVar3->entsize != entsize))" ( (binary_expression "((uVar9 & 0x800000) != 0) && (paVar3->entsize != entsize)" (parenthesized_expression "((uVar9 & 0x800000) != 0)" ( (binary_expression "(uVar9 & 0x800000) != 0" (parenthesized_expression "(uVar9 & 0x800000)" ( (binary_expression "uVar9 & 0x800000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(paVar3->entsize != entsize)" ( (binary_expression "paVar3->entsize != entsize" (field_expression "paVar3->entsize" identifier -> field_identifier) != identifier) ))) )) (compound_statement "{\n        pcVar5 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar5,name);\n      }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"ignoring changed section entity size for %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"ignoring changed section entity size for %s",5)" identifier (argument_list "(0,"ignoring changed section entity size for %s",5)" ( number_literal , (string_literal ""ignoring changed section entity size for %s"" " string_content ") , number_literal ))))) ;) (expression_statement "as_warn(pcVar5,name);" (call_expression "as_warn(pcVar5,name)" identifier (argument_list "(pcVar5,name)" ( identifier , identifier ))) ;) })) })) }))) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00046a00(byte *param_1,uint param_2,undefined4 param_3,uint param_4,int param_5,\n                 byte *param_6,int param_7,int param_8)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  byte *pbVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  byte bVar16;\n  uint local_3c;\n  int local_34;\n  byte *local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar16 = 0;\n  uStack_14 = 0x46a09;\n  local_3c = param_2;\n  uVar4 = DAT_00072cdc;\n  uVar9 = DAT_00072dcc;\n  if (param_8 != 0) {\n    puVar6 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar6;\n    *puVar6 = DAT_00072bd4;\n    DAT_00072bd4 = puVar1;\n    puVar6[4] = DAT_00072bd8;\n    uVar4 = DAT_00072cdc;\n    puVar6[2] = DAT_00072bdc;\n    puVar6[1] = uVar4;\n    uVar9 = DAT_00072dcc;\n    puVar6[3] = DAT_00072dcc;\n  }\n  local_24 = param_6;\n  local_20 = param_3;\n  DAT_00072bd8 = uVar9;\n  DAT_00072bdc = uVar4;\n  iVar2 = bfd_get_section_by_name_if(DAT_00072e64,param_1,FUN_000448d0,&local_24);\n  if (iVar2 == 0) {\n    local_34 = FUN_00034870(param_1,0);\n  }\n  else {\n    FUN_000348a0(iVar2,0);\n    local_34 = iVar2;\n  }\n  pbVar3 = (byte *)(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34);\n  if (pbVar3 == (byte *)0x0) {\nLAB_00046b14:\n    if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    \n      FUN_0002a7e0(uVar4,param_1);\n    }\n    uVar7 = param_4 >> 1 & 1;\n    uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U;\n    uVar7 = uVar7 & local_3c != 8;\nLAB_00046b74:\n    uVar10 = 4;\n    if ((param_4 & 1) == 0) goto LAB_00046d00;\n  }\n  else {\n    uVar7 = *(uint *)(pbVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n    uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar13 = param_4 < 2;\n    bVar15 = param_4 == 2;\n    if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }\n    iVar8 = 8;\n    pbVar3 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);\n    bVar14 = false;\n    bVar13 = (!bVar13 && !bVar15) == bVar13;\n    if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }\n    uVar5 = 1;\n    uVar7 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar10 = 0xc;\n  }\n  uVar7 = uVar7 * 2;\nLAB_00046b86:\n  uVar7 = FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c);\n  if (param_7 != 0) {\n    uVar7 = uVar7 | 0x20000;\n  }\n  if (iVar2 == 0) {\n    if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }\n    iVar2 = *(int *)(local_34 + 0x8c);\n    *(uint *)(iVar2 + 4) = local_3c;\n    *(uint *)(iVar2 + 8) = param_4;\n    *(undefined4 *)(iVar2 + 0x20) = param_3;\n    if (local_3c == 8) {\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    bfd_set_section_flags(DAT_00072e64,local_34,uVar7);\n    if ((uVar7 & 0x800000) != 0) {\n      *(int *)(local_34 + 0x78) = param_5;\n    }\n    *(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6;\n    iVar2 = FUN_000383f0(param_1);\n    if (iVar2 != 0) {\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }\n    uVar4 = FUN_000348f0(local_34);\n    FUN_00035090(uVar4);\n  }\n  else {\n    if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_00046a00(byte *param_1,uint param_2,undefined4 param_3,uint param_4,int param_5,\n                 byte *param_6,int param_7,int param_8)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  byte *pbVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  byte bVar16;\n  uint local_3c;\n  int local_34;\n  byte *local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar16 = 0;\n  uStack_14 = 0x46a09;\n  local_3c = param_2;\n  uVar4 = DAT_00072cdc;\n  uVar9 = DAT_00072dcc;\n  if (param_8 != 0) {\n    puVar6 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar6;\n    *puVar6 = DAT_00072bd4;\n    DAT_00072bd4 = puVar1;\n    puVar6[4] = DAT_00072bd8;\n    uVar4 = DAT_00072cdc;\n    puVar6[2] = DAT_00072bdc;\n    puVar6[1] = uVar4;\n    uVar9 = DAT_00072dcc;\n    puVar6[3] = DAT_00072dcc;\n  }\n  local_24 = param_6;\n  local_20 = param_3;\n  DAT_00072bd8 = uVar9;\n  DAT_00072bdc = uVar4;\n  iVar2 = bfd_get_section_by_name_if(DAT_00072e64,param_1,FUN_000448d0,&local_24);\n  if (iVar2 == 0) {\n    local_34 = FUN_00034870(param_1,0);\n  }\n  else {\n    FUN_000348a0(iVar2,0);\n    local_34 = iVar2;\n  }\n  pbVar3 = (byte *)(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34);\n  if (pbVar3 == (byte *)0x0) {\nLAB_00046b14:\n    if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    \n      FUN_0002a7e0(uVar4,param_1);\n    }\n    uVar7 = param_4 >> 1 & 1;\n    uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U;\n    uVar7 = uVar7 & local_3c != 8;\nLAB_00046b74:\n    uVar10 = 4;\n    if ((param_4 & 1) == 0) goto LAB_00046d00;\n  }\n  else {\n    uVar7 = *(uint *)(pbVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n    uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar13 = param_4 < 2;\n    bVar15 = param_4 == 2;\n    if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }\n    iVar8 = 8;\n    pbVar3 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);\n    bVar14 = false;\n    bVar13 = (!bVar13 && !bVar15) == bVar13;\n    if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }\n    uVar5 = 1;\n    uVar7 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar10 = 0xc;\n  }\n  uVar7 = uVar7 * 2;\nLAB_00046b86:\n  uVar7 = FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c);\n  if (param_7 != 0) {\n    uVar7 = uVar7 | 0x20000;\n  }\n  if (iVar2 == 0) {\n    if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }\n    iVar2 = *(int *)(local_34 + 0x8c);\n    *(uint *)(iVar2 + 4) = local_3c;\n    *(uint *)(iVar2 + 8) = param_4;\n    *(undefined4 *)(iVar2 + 0x20) = param_3;\n    if (local_3c == 8) {\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    bfd_set_section_flags(DAT_00072e64,local_34,uVar7);\n    if ((uVar7 & 0x800000) != 0) {\n      *(int *)(local_34 + 0x78) = param_5;\n    }\n    *(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6;\n    iVar2 = FUN_000383f0(param_1);\n    if (iVar2 != 0) {\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }\n    uVar4 = FUN_000348f0(local_34);\n    FUN_00035090(uVar4);\n  }\n  else {\n    if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00046a00(byte *param_1,uint param_2,undefined4 param_3,uint param_4,int param_5,\n                 byte *param_6,int param_7,int param_8)" identifier (parameter_list "(byte *param_1,uint param_2,undefined4 param_3,uint param_4,int param_5,\n                 byte *param_6,int param_7,int param_8)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "byte *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "int param_8" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  byte *pbVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  byte bVar16;\n  uint local_3c;\n  int local_34;\n  byte *local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar16 = 0;\n  uStack_14 = 0x46a09;\n  local_3c = param_2;\n  uVar4 = DAT_00072cdc;\n  uVar9 = DAT_00072dcc;\n  if (param_8 != 0) {\n    puVar6 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar6;\n    *puVar6 = DAT_00072bd4;\n    DAT_00072bd4 = puVar1;\n    puVar6[4] = DAT_00072bd8;\n    uVar4 = DAT_00072cdc;\n    puVar6[2] = DAT_00072bdc;\n    puVar6[1] = uVar4;\n    uVar9 = DAT_00072dcc;\n    puVar6[3] = DAT_00072dcc;\n  }\n  local_24 = param_6;\n  local_20 = param_3;\n  DAT_00072bd8 = uVar9;\n  DAT_00072bdc = uVar4;\n  iVar2 = bfd_get_section_by_name_if(DAT_00072e64,param_1,FUN_000448d0,&local_24);\n  if (iVar2 == 0) {\n    local_34 = FUN_00034870(param_1,0);\n  }\n  else {\n    FUN_000348a0(iVar2,0);\n    local_34 = iVar2;\n  }\n  pbVar3 = (byte *)(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34);\n  if (pbVar3 == (byte *)0x0) {\nLAB_00046b14:\n    if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    \n      FUN_0002a7e0(uVar4,param_1);\n    }\n    uVar7 = param_4 >> 1 & 1;\n    uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U;\n    uVar7 = uVar7 & local_3c != 8;\nLAB_00046b74:\n    uVar10 = 4;\n    if ((param_4 & 1) == 0) goto LAB_00046d00;\n  }\n  else {\n    uVar7 = *(uint *)(pbVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n    uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar13 = param_4 < 2;\n    bVar15 = param_4 == 2;\n    if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }\n    iVar8 = 8;\n    pbVar3 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);\n    bVar14 = false;\n    bVar13 = (!bVar13 && !bVar15) == bVar13;\n    if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }\n    uVar5 = 1;\n    uVar7 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar10 = 0xc;\n  }\n  uVar7 = uVar7 * 2;\nLAB_00046b86:\n  uVar7 = FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c);\n  if (param_7 != 0) {\n    uVar7 = uVar7 | 0x20000;\n  }\n  if (iVar2 == 0) {\n    if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }\n    iVar2 = *(int *)(local_34 + 0x8c);\n    *(uint *)(iVar2 + 4) = local_3c;\n    *(uint *)(iVar2 + 8) = param_4;\n    *(undefined4 *)(iVar2 + 0x20) = param_3;\n    if (local_3c == 8) {\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    bfd_set_section_flags(DAT_00072e64,local_34,uVar7);\n    if ((uVar7 & 0x800000) != 0) {\n      *(int *)(local_34 + 0x78) = param_5;\n    }\n    *(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6;\n    iVar2 = FUN_000383f0(param_1);\n    if (iVar2 != 0) {\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }\n    uVar4 = FUN_000348f0(local_34);\n    FUN_00035090(uVar4);\n  }\n  else {\n    if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n  }\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * 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 "byte bVar16;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "byte *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar16 = 0;" (assignment_expression "bVar16 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x46a09;" (assignment_expression "uStack_14 = 0x46a09" identifier = number_literal) ;) (expression_statement "local_3c = param_2;" (assignment_expression "local_3c = param_2" identifier = identifier) ;) (expression_statement "uVar4 = DAT_00072cdc;" (assignment_expression "uVar4 = DAT_00072cdc" identifier = identifier) ;) (expression_statement "uVar9 = DAT_00072dcc;" (assignment_expression "uVar9 = DAT_00072dcc" identifier = identifier) ;) (if_statement "if (param_8 != 0) {\n    puVar6 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar6;\n    *puVar6 = DAT_00072bd4;\n    DAT_00072bd4 = puVar1;\n    puVar6[4] = DAT_00072bd8;\n    uVar4 = DAT_00072cdc;\n    puVar6[2] = DAT_00072bdc;\n    puVar6[1] = uVar4;\n    uVar9 = DAT_00072dcc;\n    puVar6[3] = DAT_00072dcc;\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar6 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar6;\n    *puVar6 = DAT_00072bd4;\n    DAT_00072bd4 = puVar1;\n    puVar6[4] = DAT_00072bd8;\n    uVar4 = DAT_00072cdc;\n    puVar6[2] = DAT_00072bdc;\n    puVar6[1] = uVar4;\n    uVar9 = DAT_00072dcc;\n    puVar6[3] = DAT_00072dcc;\n  }" { (expression_statement "puVar6 = (undefined4 *)xmalloc(0x14);" (assignment_expression "puVar6 = (undefined4 *)xmalloc(0x14)" identifier = (cast_expression "(undefined4 *)xmalloc(0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x14)" identifier (argument_list "(0x14)" ( number_literal ))))) ;) (expression_statement "puVar1 = puVar6;" (assignment_expression "puVar1 = puVar6" identifier = identifier) ;) (expression_statement "*puVar6 = DAT_00072bd4;" (assignment_expression "*puVar6 = DAT_00072bd4" (pointer_expression "*puVar6" * identifier) = identifier) ;) (expression_statement "DAT_00072bd4 = puVar1;" (assignment_expression "DAT_00072bd4 = puVar1" identifier = identifier) ;) (expression_statement "puVar6[4] = DAT_00072bd8;" (assignment_expression "puVar6[4] = DAT_00072bd8" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = DAT_00072cdc;" (assignment_expression "uVar4 = DAT_00072cdc" identifier = identifier) ;) (expression_statement "puVar6[2] = DAT_00072bdc;" (assignment_expression "puVar6[2] = DAT_00072bdc" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[1] = uVar4;" (assignment_expression "puVar6[1] = uVar4" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar9 = DAT_00072dcc;" (assignment_expression "uVar9 = DAT_00072dcc" identifier = identifier) ;) (expression_statement "puVar6[3] = DAT_00072dcc;" (assignment_expression "puVar6[3] = DAT_00072dcc" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "local_24 = param_6;" (assignment_expression "local_24 = param_6" identifier = identifier) ;) (expression_statement "local_20 = param_3;" (assignment_expression "local_20 = param_3" identifier = identifier) ;) (expression_statement "DAT_00072bd8 = uVar9;" (assignment_expression "DAT_00072bd8 = uVar9" identifier = identifier) ;) (expression_statement "DAT_00072bdc = uVar4;" (assignment_expression "DAT_00072bdc = uVar4" identifier = identifier) ;) (expression_statement "iVar2 = bfd_get_section_by_name_if(DAT_00072e64,param_1,FUN_000448d0,&local_24);" (assignment_expression "iVar2 = bfd_get_section_by_name_if(DAT_00072e64,param_1,FUN_000448d0,&local_24)" identifier = (call_expression "bfd_get_section_by_name_if(DAT_00072e64,param_1,FUN_000448d0,&local_24)" identifier (argument_list "(DAT_00072e64,param_1,FUN_000448d0,&local_24)" ( identifier , identifier , identifier , (pointer_expression "&local_24" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n    local_34 = FUN_00034870(param_1,0);\n  }\n  else {\n    FUN_000348a0(iVar2,0);\n    local_34 = iVar2;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    local_34 = FUN_00034870(param_1,0);\n  }" { (expression_statement "local_34 = FUN_00034870(param_1,0);" (assignment_expression "local_34 = FUN_00034870(param_1,0)" identifier = (call_expression "FUN_00034870(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n    FUN_000348a0(iVar2,0);\n    local_34 = iVar2;\n  }" else (compound_statement "{\n    FUN_000348a0(iVar2,0);\n    local_34 = iVar2;\n  }" { (expression_statement "FUN_000348a0(iVar2,0);" (call_expression "FUN_000348a0(iVar2,0)" identifier (argument_list "(iVar2,0)" ( identifier , number_literal ))) ;) (expression_statement "local_34 = iVar2;" (assignment_expression "local_34 = iVar2" identifier = identifier) ;) }))) (expression_statement "pbVar3 = (byte *)(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34);" (assignment_expression "pbVar3 = (byte *)(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34)" identifier = (cast_expression "(byte *)(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34)" (parenthesized_expression "(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))" ( (pointer_expression "**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58)" * (pointer_expression "*(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58)" * (cast_expression "(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58)" ( (binary_expression "*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58" (pointer_expression "*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0)" * (cast_expression "(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00072e64 + 4) + 0x1c0)" ( (binary_expression "*(int *)(DAT_00072e64 + 4) + 0x1c0" (pointer_expression "*(int *)(DAT_00072e64 + 4)" * (cast_expression "(int *)(DAT_00072e64 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00072e64 + 4)" ( (binary_expression "DAT_00072e64 + 4" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_00072e64,local_34)" ( identifier , identifier ))))) ;) (if_statement "if (pbVar3 == (byte *)0x0) {\nLAB_00046b14:\n    if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    \n      FUN_0002a7e0(uVar4,param_1);\n    }\n    uVar7 = param_4 >> 1 & 1;\n    uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U;\n    uVar7 = uVar7 & local_3c != 8;\nLAB_00046b74:\n    uVar10 = 4;\n    if ((param_4 & 1) == 0) goto LAB_00046d00;\n  }\n  else {\n    uVar7 = *(uint *)(pbVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n    uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar13 = param_4 < 2;\n    bVar15 = param_4 == 2;\n    if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }\n    iVar8 = 8;\n    pbVar3 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);\n    bVar14 = false;\n    bVar13 = (!bVar13 && !bVar15) == bVar13;\n    if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }\n    uVar5 = 1;\n    uVar7 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar10 = 0xc;\n  }" if (parenthesized_expression "(pbVar3 == (byte *)0x0)" ( (binary_expression "pbVar3 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00046b14:\n    if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    \n      FUN_0002a7e0(uVar4,param_1);\n    }\n    uVar7 = param_4 >> 1 & 1;\n    uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U;\n    uVar7 = uVar7 & local_3c != 8;\nLAB_00046b74:\n    uVar10 = 4;\n    if ((param_4 & 1) == 0) goto LAB_00046d00;\n  }" { (labeled_statement "LAB_00046b14:\n    if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    \n      FUN_0002a7e0(uVar4,param_1);\n    }" statement_identifier : (if_statement "if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    \n      FUN_0002a7e0(uVar4,param_1);\n    }" if (parenthesized_expression "((param_4 & 0x1000002) == 0x1000000)" ( (binary_expression "(param_4 & 0x1000002) == 0x1000000" (parenthesized_expression "(param_4 & 0x1000002)" ( (binary_expression "param_4 & 0x1000002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    \n      FUN_0002a7e0(uVar4,param_1);\n    }" { (expression_statement "uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);" (assignment_expression "uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3)" identifier = (call_expression "dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3)" identifier (argument_list "(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3)" ( number_literal , (string_literal ""SHF_ALLOC isn\'t set for GNU_MBIND section: %s"" " string_content escape_sequence string_content ") , number_literal , identifier )))) ;) (expression_statement "FUN_0002a7e0(uVar4,param_1);" (call_expression "FUN_0002a7e0(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) }))) (expression_statement "uVar7 = param_4 >> 1 & 1;" (assignment_expression "uVar7 = param_4 >> 1 & 1" identifier = (binary_expression "param_4 >> 1 & 1" (binary_expression "param_4 >> 1" identifier >> number_literal) & number_literal)) ;) (expression_statement "uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U;" (assignment_expression "uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U" identifier = (binary_expression "param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U" (binary_expression "param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000" (binary_expression "param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400" (binary_expression "param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7" (binary_expression "param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10" (binary_expression "param_4 << 0x13 & 0x1000000" (binary_expression "param_4 << 0x13" identifier << number_literal) & number_literal) | (binary_expression "param_4 * 4 & 0x10" (binary_expression "param_4 * 4" identifier * number_literal) & number_literal)) | identifier) | (binary_expression "param_4 & 0x400" identifier & number_literal)) | (binary_expression "param_4 << 0x13 & 0x800000" (binary_expression "param_4 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "(int)param_4 >> 0x10 & 0x8000U" (binary_expression "(int)param_4 >> 0x10" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) & number_literal))) ;) (expression_statement "uVar7 = uVar7 & local_3c != 8;" (assignment_expression "uVar7 = uVar7 & local_3c != 8" identifier = (binary_expression "uVar7 & local_3c != 8" identifier & (binary_expression "local_3c != 8" identifier != number_literal))) ;) (labeled_statement "LAB_00046b74:\n    uVar10 = 4;" statement_identifier : (expression_statement "uVar10 = 4;" (assignment_expression "uVar10 = 4" identifier = number_literal) ;)) (if_statement "if ((param_4 & 1) == 0) goto LAB_00046d00;" if (parenthesized_expression "((param_4 & 1) == 0)" ( (binary_expression "(param_4 & 1) == 0" (parenthesized_expression "(param_4 & 1)" ( (binary_expression "param_4 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00046d00;" goto statement_identifier ;)) }) (else_clause "else {\n    uVar7 = *(uint *)(pbVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n    uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar13 = param_4 < 2;\n    bVar15 = param_4 == 2;\n    if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }\n    iVar8 = 8;\n    pbVar3 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);\n    bVar14 = false;\n    bVar13 = (!bVar13 && !bVar15) == bVar13;\n    if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }\n    uVar5 = 1;\n    uVar7 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar10 = 0xc;\n  }" else (compound_statement "{\n    uVar7 = *(uint *)(pbVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n    uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar13 = param_4 < 2;\n    bVar15 = param_4 == 2;\n    if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }\n    iVar8 = 8;\n    pbVar3 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);\n    bVar14 = false;\n    bVar13 = (!bVar13 && !bVar15) == bVar13;\n    if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }\n    uVar5 = 1;\n    uVar7 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar10 = 0xc;\n  }" { (expression_statement "uVar7 = *(uint *)(pbVar3 + 0xc);" (assignment_expression "uVar7 = *(uint *)(pbVar3 + 0xc)" identifier = (pointer_expression "*(uint *)(pbVar3 + 0xc)" * (cast_expression "(uint *)(pbVar3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }" if (parenthesized_expression "((param_2 == 0) || (param_2 == uVar7))" ( (binary_expression "(param_2 == 0) || (param_2 == uVar7)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_2 == uVar7)" ( (binary_expression "param_2 == uVar7" identifier == identifier) ))) )) (compound_statement "{\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }" { (labeled_statement "LAB_00046b08:\n      local_3c = uVar7;" statement_identifier : (expression_statement "local_3c = uVar7;" (assignment_expression "local_3c = uVar7" identifier = identifier) ;)) (if_statement "if (iVar2 != 0) goto LAB_00046b14;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00046b14;" goto statement_identifier ;)) }) (else_clause "else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }" else (compound_statement "{\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }" { (if_statement "if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }" if (parenthesized_expression "((uVar7 - 0xe < 3) || (iVar2 != 0))" ( (binary_expression "(uVar7 - 0xe < 3) || (iVar2 != 0)" (parenthesized_expression "(uVar7 - 0xe < 3)" ( (binary_expression "uVar7 - 0xe < 3" (binary_expression "uVar7 - 0xe" identifier - number_literal) < number_literal) )) || (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) ))) )) (compound_statement "{\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }" { (expression_statement "uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);" (assignment_expression "uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5)" identifier = (call_expression "dcgettext(0,"ignoring incorrect section type for %s",5)" identifier (argument_list "(0,"ignoring incorrect section type for %s",5)" ( number_literal , (string_literal ""ignoring incorrect section type for %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a660(uVar4,param_1);" (call_expression "FUN_0002a660(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) (expression_statement "uVar7 = *(uint *)(pbVar3 + 0xc);" (assignment_expression "uVar7 = *(uint *)(pbVar3 + 0xc)" identifier = (pointer_expression "*(uint *)(pbVar3 + 0xc)" * (cast_expression "(uint *)(pbVar3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00046b08;" goto statement_identifier ;) })) (if_statement "if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" if (parenthesized_expression "((uVar7 == 7) || (0x6fffffff < param_2))" ( (binary_expression "(uVar7 == 7) || (0x6fffffff < param_2)" (parenthesized_expression "(uVar7 == 7)" ( (binary_expression "uVar7 == 7" identifier == number_literal) )) || (parenthesized_expression "(0x6fffffff < param_2)" ( (binary_expression "0x6fffffff < param_2" number_literal < identifier) ))) )) (compound_statement "{\n      }" { }) (else_clause "else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" else (compound_statement "{\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" { (expression_statement "uVar4 = dcgettext(0,"setting incorrect section type for %s",5);" (assignment_expression "uVar4 = dcgettext(0,"setting incorrect section type for %s",5)" identifier = (call_expression "dcgettext(0,"setting incorrect section type for %s",5)" identifier (argument_list "(0,"setting incorrect section type for %s",5)" ( number_literal , (string_literal ""setting incorrect section type for %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a660(uVar4,param_1);" (call_expression "FUN_0002a660(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) }))) }))) (expression_statement "uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;" (assignment_expression "uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4" identifier = (binary_expression "~*(uint *)(pbVar3 + 0x10) & param_4" (unary_expression "~*(uint *)(pbVar3 + 0x10)" ~ (pointer_expression "*(uint *)(pbVar3 + 0x10)" * (cast_expression "(uint *)(pbVar3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0x10)" ( (binary_expression "pbVar3 + 0x10" identifier + number_literal) ))))) & identifier)) ;) (if_statement "if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }" if (parenthesized_expression "((uVar7 & 0xfffff) == 0)" ( (binary_expression "(uVar7 & 0xfffff) == 0" (parenthesized_expression "(uVar7 & 0xfffff)" ( (binary_expression "uVar7 & 0xfffff" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }" { (labeled_statement "LAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);" statement_identifier : (expression_statement "param_4 = param_4 | *(uint *)(pbVar3 + 0x10);" (assignment_expression "param_4 = param_4 | *(uint *)(pbVar3 + 0x10)" identifier = (binary_expression "param_4 | *(uint *)(pbVar3 + 0x10)" identifier | (pointer_expression "*(uint *)(pbVar3 + 0x10)" * (cast_expression "(uint *)(pbVar3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0x10)" ( (binary_expression "pbVar3 + 0x10" identifier + number_literal) )))))) ;)) (goto_statement "goto LAB_00046b14;" goto statement_identifier ;) })) (if_statement "if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }" if (parenthesized_expression "(*(int *)(pbVar3 + 0xc) == 7)" ( (binary_expression "*(int *)(pbVar3 + 0xc) == 7" (pointer_expression "*(int *)(pbVar3 + 0xc)" * (cast_expression "(int *)(pbVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 0xc)" ( (binary_expression "pbVar3 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }" { (if_statement "if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }" if (parenthesized_expression "((param_4 - 2 & 0xfffffffd) != 0)" ( (binary_expression "(param_4 - 2 & 0xfffffffd) != 0" (parenthesized_expression "(param_4 - 2 & 0xfffffffd)" ( (binary_expression "param_4 - 2 & 0xfffffffd" (binary_expression "param_4 - 2" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }" { (if_statement "if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;" if (parenthesized_expression "(*(int *)(pbVar3 + 8) == -2)" ( (binary_expression "*(int *)(pbVar3 + 8) == -2" (pointer_expression "*(int *)(pbVar3 + 8)" * (cast_expression "(int *)(pbVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 8)" ( (binary_expression "pbVar3 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00046cc6;" goto statement_identifier ;)) (labeled_statement "LAB_00046c82:\n        pbVar3 = param_6;" statement_identifier : (expression_statement "pbVar3 = param_6;" (assignment_expression "pbVar3 = param_6" identifier = identifier) ;)) (if_statement "if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }" if (parenthesized_expression "(param_6 == (byte *)0x0)" ( (binary_expression "param_6 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }" { (labeled_statement "LAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);" statement_identifier : (expression_statement "uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);" (assignment_expression "uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5)" identifier = (call_expression "dcgettext(0,"setting incorrect section attributes for %s",5)" identifier (argument_list "(0,"setting incorrect section attributes for %s",5)" ( number_literal , (string_literal ""setting incorrect section attributes for %s"" " string_content ") , number_literal )))) ;)) (expression_statement "FUN_0002a660(uVar4,param_1);" (call_expression "FUN_0002a660(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) })) (goto_statement "goto LAB_00046b14;" goto statement_identifier ;) })) (goto_statement "goto LAB_00046ce0;" goto statement_identifier ;) })) (if_statement "if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }" if (parenthesized_expression "(*(int *)(pbVar3 + 8) == -2)" ( (binary_expression "*(int *)(pbVar3 + 8) == -2" (pointer_expression "*(int *)(pbVar3 + 8)" * (cast_expression "(int *)(pbVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 8)" ( (binary_expression "pbVar3 + 8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }" { (labeled_statement "LAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;" statement_identifier : (if_statement "if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;" if (parenthesized_expression "((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0))" ( (binary_expression "(param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)" (parenthesized_expression "(param_1[*(int *)(pbVar3 + 4)] == 0x2e)" ( (binary_expression "param_1[*(int *)(pbVar3 + 4)] == 0x2e" (subscript_expression "param_1[*(int *)(pbVar3 + 4)]" identifier [ (pointer_expression "*(int *)(pbVar3 + 4)" * (cast_expression "(int *)(pbVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar3 + 4)" ( (binary_expression "pbVar3 + 4" identifier + number_literal) )))) ]) == number_literal) )) && (parenthesized_expression "((uVar7 & 0xffffffcf) == 0)" ( (binary_expression "(uVar7 & 0xffffffcf) == 0" (parenthesized_expression "(uVar7 & 0xffffffcf)" ( (binary_expression "uVar7 & 0xffffffcf" identifier & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00046ce0;" goto statement_identifier ;))) })) (expression_statement "bVar13 = param_4 < 2;" (assignment_expression "bVar13 = param_4 < 2" identifier = (binary_expression "param_4 < 2" identifier < number_literal)) ;) (expression_statement "bVar15 = param_4 == 2;" (assignment_expression "bVar15 = param_4 == 2" identifier = (binary_expression "param_4 == 2" identifier == number_literal)) ;) (if_statement "if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (compound_statement "{\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }" { (expression_statement "bVar13 = param_4 < 4;" (assignment_expression "bVar13 = param_4 < 4" identifier = (binary_expression "param_4 < 4" identifier < number_literal)) ;) (expression_statement "bVar15 = param_4 == 4;" (assignment_expression "bVar15 = param_4 == 4" identifier = (binary_expression "param_4 == 4" identifier == number_literal)) ;) (if_statement "if (!bVar15) goto LAB_00046c82;" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (goto_statement "goto LAB_00046c82;" goto statement_identifier ;)) (expression_statement "iVar8 = 0x10;" (assignment_expression "iVar8 = 0x10" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)".note.GNU-stack";" (assignment_expression "pbVar12 = (byte *)".note.GNU-stack"" identifier = (cast_expression "(byte *)".note.GNU-stack"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".note.GNU-stack"" " string_content "))) ;) (do_statement "do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);" do (compound_statement "{\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      }" { (expression_statement "pbVar3 = pbVar11;" (assignment_expression "pbVar3 = pbVar11" identifier = identifier) ;) (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 "pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "bVar13 = *pbVar11 < *pbVar12;" (assignment_expression "bVar13 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar3;" (assignment_expression "pbVar11 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (if_statement "if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\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        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }" { (expression_statement "uVar5 = 0x10;" (assignment_expression "uVar5 = 0x10" identifier = number_literal) ;) (expression_statement "uVar10 = 0xc;" (assignment_expression "uVar10 = 0xc" identifier = number_literal) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00046b86;" goto statement_identifier ;) })) (labeled_statement "LAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;" statement_identifier : (if_statement "if (param_6 == (byte *)0x0) goto LAB_00046c8e;" if (parenthesized_expression "(param_6 == (byte *)0x0)" ( (binary_expression "param_6 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00046c8e;" goto statement_identifier ;))) (expression_statement "uVar7 = param_4 >> 1 & 1;" (assignment_expression "uVar7 = param_4 >> 1 & 1" identifier = (binary_expression "param_4 >> 1 & 1" (binary_expression "param_4 >> 1" identifier >> number_literal) & number_literal)) ;) (expression_statement "uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;" (assignment_expression "uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U" identifier = (binary_expression "param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U" (binary_expression "param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000" (binary_expression "param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400" (binary_expression "param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7" (binary_expression "param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10" (binary_expression "param_4 << 0x13 & 0x1000000" (binary_expression "param_4 << 0x13" identifier << number_literal) & number_literal) | (binary_expression "param_4 * 4 & 0x10" (binary_expression "param_4 * 4" identifier * number_literal) & number_literal)) | identifier) | (binary_expression "param_4 & 0x400" identifier & number_literal)) | (binary_expression "param_4 << 0x13 & 0x800000" (binary_expression "param_4 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "(int)param_4 >> 0x10 & 0x8000U" (binary_expression "(int)param_4 >> 0x10" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) & number_literal))) ;) (expression_statement "uVar7 = local_3c != 8 & uVar7;" (assignment_expression "uVar7 = local_3c != 8 & uVar7" identifier = (binary_expression "local_3c != 8 & uVar7" (binary_expression "local_3c != 8" identifier != number_literal) & identifier)) ;) (goto_statement "goto LAB_00046b74;" goto statement_identifier ;) })) (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" identifier = number_literal) ;) (expression_statement "pbVar3 = param_1;" (assignment_expression "pbVar3 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)".interp";" (assignment_expression "pbVar11 = (byte *)".interp"" identifier = (cast_expression "(byte *)".interp"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".interp"" " string_content "))) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -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 "bVar13 = *pbVar3 < *pbVar11;" (assignment_expression "bVar13 = *pbVar3 < *pbVar11" identifier = (binary_expression "*pbVar3 < *pbVar11" (pointer_expression "*pbVar3" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar15 = *pbVar3 == *pbVar11;" (assignment_expression "bVar15 = *pbVar3 == *pbVar11" identifier = (binary_expression "*pbVar3 == *pbVar11" (pointer_expression "*pbVar3" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar3 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar3 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar13 = (!bVar13 && !bVar15) == bVar13;" (assignment_expression "bVar13 = (!bVar13 && !bVar15) == bVar13" identifier = (binary_expression "(!bVar13 && !bVar15) == bVar13" (parenthesized_expression "(!bVar13 && !bVar15)" ( (binary_expression "!bVar13 && !bVar15" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar15" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (compound_statement "{\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }" { (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" identifier = number_literal) ;) (expression_statement "pbVar3 = param_1;" (assignment_expression "pbVar3 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)".strtab";" (assignment_expression "pbVar11 = (byte *)".strtab"" identifier = (cast_expression "(byte *)".strtab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".strtab"" " string_content "))) ;) (do_statement "do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);" do (compound_statement "{\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -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 "bVar14 = *pbVar3 < *pbVar11;" (assignment_expression "bVar14 = *pbVar3 < *pbVar11" identifier = (binary_expression "*pbVar3 < *pbVar11" (pointer_expression "*pbVar3" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar13 = *pbVar3 == *pbVar11;" (assignment_expression "bVar13 = *pbVar3 == *pbVar11" identifier = (binary_expression "*pbVar3 == *pbVar11" (pointer_expression "*pbVar3" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar3 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar3 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar13 = (!bVar14 && !bVar13) == bVar14;" (assignment_expression "bVar13 = (!bVar14 && !bVar13) == bVar14" identifier = (binary_expression "(!bVar14 && !bVar13) == bVar14" (parenthesized_expression "(!bVar14 && !bVar13)" ( (binary_expression "!bVar14 && !bVar13" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (compound_statement "{\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }" { (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" identifier = number_literal) ;) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" identifier = identifier) ;) (expression_statement "pbVar12 = (byte *)".symtab";" (assignment_expression "pbVar12 = (byte *)".symtab"" identifier = (cast_expression "(byte *)".symtab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".symtab"" " string_content "))) ;) (do_statement "do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);" do (compound_statement "{\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        }" { (expression_statement "pbVar3 = pbVar11;" (assignment_expression "pbVar3 = pbVar11" identifier = identifier) ;) (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 "pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "bVar15 = *pbVar11 < *pbVar12;" (assignment_expression "bVar15 = *pbVar11 < *pbVar12" identifier = (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" * identifier) < (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *pbVar11 == *pbVar12" identifier = (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" * identifier) == (pointer_expression "*pbVar12" * identifier))) ;) (expression_statement "pbVar11 = pbVar3;" (assignment_expression "pbVar11 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" identifier + (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;" if (parenthesized_expression "((!bVar15 && !bVar13) != bVar15)" ( (binary_expression "(!bVar15 && !bVar13) != bVar15" (parenthesized_expression "(!bVar15 && !bVar13)" ( (binary_expression "!bVar15 && !bVar13" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_00046f32;" goto statement_identifier ;)) })) })) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (expression_statement "uVar7 = (uint)(local_3c != 8);" (assignment_expression "uVar7 = (uint)(local_3c != 8)" identifier = (call_expression "(uint)(local_3c != 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_3c != 8)" ( (binary_expression "local_3c != 8" identifier != number_literal) )))) ;) (labeled_statement "LAB_00046d00:\n    uVar10 = 0xc;" statement_identifier : (expression_statement "uVar10 = 0xc;" (assignment_expression "uVar10 = 0xc" identifier = number_literal) ;)) }))) (expression_statement "uVar7 = uVar7 * 2;" (assignment_expression "uVar7 = uVar7 * 2" identifier = (binary_expression "uVar7 * 2" identifier * number_literal)) ;) (labeled_statement "LAB_00046b86:\n  uVar7 = FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c);" statement_identifier : (expression_statement "uVar7 = FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c);" (assignment_expression "uVar7 = FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c)" identifier = (call_expression "FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c)" identifier (argument_list "(uVar7 | uVar5 | uVar10,param_4,local_3c)" ( (binary_expression "uVar7 | uVar5 | uVar10" (binary_expression "uVar7 | uVar5" identifier | identifier) | identifier) , identifier , identifier )))) ;)) (if_statement "if (param_7 != 0) {\n    uVar7 = uVar7 | 0x20000;\n  }" if (parenthesized_expression "(param_7 != 0)" ( (binary_expression "param_7 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar7 = uVar7 | 0x20000;\n  }" { (expression_statement "uVar7 = uVar7 | 0x20000;" (assignment_expression "uVar7 = uVar7 | 0x20000" identifier = (binary_expression "uVar7 | 0x20000" identifier | number_literal)) ;) })) (if_statement "if (iVar2 == 0) {\n    if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }\n    iVar2 = *(int *)(local_34 + 0x8c);\n    *(uint *)(iVar2 + 4) = local_3c;\n    *(uint *)(iVar2 + 8) = param_4;\n    *(undefined4 *)(iVar2 + 0x20) = param_3;\n    if (local_3c == 8) {\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    bfd_set_section_flags(DAT_00072e64,local_34,uVar7);\n    if ((uVar7 & 0x800000) != 0) {\n      *(int *)(local_34 + 0x78) = param_5;\n    }\n    *(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6;\n    iVar2 = FUN_000383f0(param_1);\n    if (iVar2 != 0) {\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }\n    uVar4 = FUN_000348f0(local_34);\n    FUN_00035090(uVar4);\n  }\n  else {\n    if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }\n    iVar2 = *(int *)(local_34 + 0x8c);\n    *(uint *)(iVar2 + 4) = local_3c;\n    *(uint *)(iVar2 + 8) = param_4;\n    *(undefined4 *)(iVar2 + 0x20) = param_3;\n    if (local_3c == 8) {\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    bfd_set_section_flags(DAT_00072e64,local_34,uVar7);\n    if ((uVar7 & 0x800000) != 0) {\n      *(int *)(local_34 + 0x78) = param_5;\n    }\n    *(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6;\n    iVar2 = FUN_000383f0(param_1);\n    if (iVar2 != 0) {\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }\n    uVar4 = FUN_000348f0(local_34);\n    FUN_00035090(uVar4);\n  }" { (if_statement "if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }" if (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) )) (compound_statement "{\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }" { (expression_statement "local_3c = bfd_elf_get_default_section_type(uVar7);" (assignment_expression "local_3c = bfd_elf_get_default_section_type(uVar7)" identifier = (call_expression "bfd_elf_get_default_section_type(uVar7)" identifier (argument_list "(uVar7)" ( identifier )))) ;) })) (expression_statement "iVar2 = *(int *)(local_34 + 0x8c);" (assignment_expression "iVar2 = *(int *)(local_34 + 0x8c)" identifier = (pointer_expression "*(int *)(local_34 + 0x8c)" * (cast_expression "(int *)(local_34 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 0x8c)" ( (binary_expression "local_34 + 0x8c" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar2 + 4) = local_3c;" (assignment_expression "*(uint *)(iVar2 + 4) = local_3c" (pointer_expression "*(uint *)(iVar2 + 4)" * (cast_expression "(uint *)(iVar2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar2 + 8) = param_4;" (assignment_expression "*(uint *)(iVar2 + 8) = param_4" (pointer_expression "*(uint *)(iVar2 + 8)" * (cast_expression "(uint *)(iVar2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x20) = param_3;" (assignment_expression "*(undefined4 *)(iVar2 + 0x20) = param_3" (pointer_expression "*(undefined4 *)(iVar2 + 0x20)" * (cast_expression "(undefined4 *)(iVar2 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x20)" ( (binary_expression "iVar2 + 0x20" identifier + number_literal) )))) = identifier) ;) (if_statement "if (local_3c == 8) {\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }" if (parenthesized_expression "(local_3c == 8)" ( (binary_expression "local_3c == 8" identifier == number_literal) )) (compound_statement "{\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }" { (expression_statement "pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);" (assignment_expression "pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4)" identifier = (cast_expression "(byte *)(*(int *)(local_34 + 0x68) + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_34 + 0x68) + 4)" ( (binary_expression "*(int *)(local_34 + 0x68) + 4" (pointer_expression "*(int *)(local_34 + 0x68)" * (cast_expression "(int *)(local_34 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 0x68)" ( (binary_expression "local_34 + 0x68" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar3 = *pbVar3 | 2;" (assignment_expression "*pbVar3 = *pbVar3 | 2" (pointer_expression "*pbVar3" * identifier) = (binary_expression "*pbVar3 | 2" (pointer_expression "*pbVar3" * identifier) | number_literal)) ;) })) (expression_statement "bfd_set_section_flags(DAT_00072e64,local_34,uVar7);" (call_expression "bfd_set_section_flags(DAT_00072e64,local_34,uVar7)" identifier (argument_list "(DAT_00072e64,local_34,uVar7)" ( identifier , identifier , identifier ))) ;) (if_statement "if ((uVar7 & 0x800000) != 0) {\n      *(int *)(local_34 + 0x78) = param_5;\n    }" if (parenthesized_expression "((uVar7 & 0x800000) != 0)" ( (binary_expression "(uVar7 & 0x800000) != 0" (parenthesized_expression "(uVar7 & 0x800000)" ( (binary_expression "uVar7 & 0x800000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      *(int *)(local_34 + 0x78) = param_5;\n    }" { (expression_statement "*(int *)(local_34 + 0x78) = param_5;" (assignment_expression "*(int *)(local_34 + 0x78) = param_5" (pointer_expression "*(int *)(local_34 + 0x78)" * (cast_expression "(int *)(local_34 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 0x78)" ( (binary_expression "local_34 + 0x78" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6;" (assignment_expression "*(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6" (pointer_expression "*(byte **)(*(int *)(local_34 + 0x8c) + 0x70)" * (cast_expression "(byte **)(*(int *)(local_34 + 0x8c) + 0x70)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(local_34 + 0x8c) + 0x70)" ( (binary_expression "*(int *)(local_34 + 0x8c) + 0x70" (pointer_expression "*(int *)(local_34 + 0x8c)" * (cast_expression "(int *)(local_34 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 0x8c)" ( (binary_expression "local_34 + 0x8c" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "iVar2 = FUN_000383f0(param_1);" (assignment_expression "iVar2 = FUN_000383f0(param_1)" identifier = (call_expression "FUN_000383f0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }" { (expression_statement "FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));" (call_expression "FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98))" identifier (argument_list "(iVar2,*(undefined4 *)(local_34 + 0x98))" ( identifier , (pointer_expression "*(undefined4 *)(local_34 + 0x98)" * (cast_expression "(undefined4 *)(local_34 + 0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 0x98)" ( (binary_expression "local_34 + 0x98" identifier + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar4 = FUN_000348f0(local_34);" (assignment_expression "uVar4 = FUN_000348f0(local_34)" identifier = (call_expression "FUN_000348f0(local_34)" identifier (argument_list "(local_34)" ( identifier )))) ;) (expression_statement "FUN_00035090(uVar4);" (call_expression "FUN_00035090(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) }) (else_clause "else {\n    if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n  }" else (compound_statement "{\n    if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n  }" { (if_statement "if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }" if (parenthesized_expression "((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c))" ( (binary_expression "(local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)" (parenthesized_expression "(local_3c != 0)" ( (binary_expression "local_3c != 0" identifier != number_literal) )) && (parenthesized_expression "(*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)" ( (binary_expression "*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c" (pointer_expression "*(uint *)(*(int *)(iVar2 + 0x8c) + 4)" * (cast_expression "(uint *)(*(int *)(iVar2 + 0x8c) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 0x8c) + 4)" ( (binary_expression "*(int *)(iVar2 + 0x8c) + 4" (pointer_expression "*(int *)(iVar2 + 0x8c)" * (cast_expression "(int *)(iVar2 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x8c)" ( (binary_expression "iVar2 + 0x8c" identifier + number_literal) )))) + number_literal) )))) != identifier) ))) )) (compound_statement "{\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }" { (expression_statement "uVar4 = dcgettext(0,"ignoring changed section type for %s",5);" (assignment_expression "uVar4 = dcgettext(0,"ignoring changed section type for %s",5)" identifier = (call_expression "dcgettext(0,"ignoring changed section type for %s",5)" identifier (argument_list "(0,"ignoring changed section type for %s",5)" ( number_literal , (string_literal ""ignoring changed section type for %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a660(uVar4,param_1);" (call_expression "FUN_0002a660(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) })) (if_statement "if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }" { (if_statement "if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" if (parenthesized_expression "(((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0)" ( (binary_expression "((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0" (parenthesized_expression "((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b)" ( (binary_expression "(*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b" (parenthesized_expression "(*(uint *)(iVar2 + 0x14) ^ uVar7)" ( (binary_expression "*(uint *)(iVar2 + 0x14) ^ uVar7" (pointer_expression "*(uint *)(iVar2 + 0x14)" * (cast_expression "(uint *)(iVar2 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14)" ( (binary_expression "iVar2 + 0x14" identifier + number_literal) )))) ^ identifier) )) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }" { (expression_statement "*(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;" (assignment_expression "*(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4" (pointer_expression "*(uint *)(*(int *)(local_34 + 0x8c) + 8)" * (cast_expression "(uint *)(*(int *)(local_34 + 0x8c) + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_34 + 0x8c) + 8)" ( (binary_expression "*(int *)(local_34 + 0x8c) + 8" (pointer_expression "*(int *)(local_34 + 0x8c)" * (cast_expression "(int *)(local_34 + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_34 + 0x8c)" ( (binary_expression "local_34 + 0x8c" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" else (compound_statement "{\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" { (expression_statement "uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);" (assignment_expression "uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5)" identifier = (call_expression "dcgettext(0,"ignoring changed section attributes for %s",5)" identifier (argument_list "(0,"ignoring changed section attributes for %s",5)" ( number_literal , (string_literal ""ignoring changed section attributes for %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a660(uVar4,param_1);" (call_expression "FUN_0002a660(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) }))) (if_statement "if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" if (parenthesized_expression "(((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5))" ( (binary_expression "((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)" (parenthesized_expression "((uVar7 & 0x800000) != 0)" ( (binary_expression "(uVar7 & 0x800000) != 0" (parenthesized_expression "(uVar7 & 0x800000)" ( (binary_expression "uVar7 & 0x800000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar2 + 0x78) != param_5)" ( (binary_expression "*(int *)(iVar2 + 0x78) != param_5" (pointer_expression "*(int *)(iVar2 + 0x78)" * (cast_expression "(int *)(iVar2 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x78)" ( (binary_expression "iVar2 + 0x78" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" { (expression_statement "uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);" (assignment_expression "uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5)" identifier = (call_expression "dcgettext(0,"ignoring changed section entity size for %s",5)" identifier (argument_list "(0,"ignoring changed section entity size for %s",5)" ( number_literal , (string_literal ""ignoring changed section entity size for %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0002a660(uVar4,param_1);" (call_expression "FUN_0002a660(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) })) })) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT << LIT) & LIT) | (binary_expression (binary_expression IDENT * LIT) & LIT)) | IDENT) | (binary_expression IDENT & LIT)) | (binary_expression (binary_expression IDENT << LIT) & LIT)) | (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & (binary_expression IDENT != LIT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) }))) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) != 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 ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) (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 { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (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 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 ( (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) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + 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 = IDENT) ;) (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 { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (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 = (binary_expression (binary_expression IDENT >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT << LIT) & LIT) | (binary_expression (binary_expression IDENT * LIT) & LIT)) | IDENT) | (binary_expression IDENT & LIT)) | (binary_expression (binary_expression IDENT << LIT) & LIT)) | (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != LIT) & IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = 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 = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = 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 = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + 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 = IDENT) ;) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT | IDENT) | IDENT) , IDENT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ^ IDENT) )) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_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) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) })) }))) (return_statement return ;) })))
(function_definition "void FUN_00046a00(byte *param_1,uint param_2,undefined4 param_3,uint param_4,int param_5,\n                 byte *param_6,int param_7,int param_8)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  byte *pbVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  byte bVar16;\n  uint local_3c;\n  int local_34;\n  byte *local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar16 = 0;\n  uStack_14 = 0x46a09;\n  local_3c = param_2;\n  uVar4 = DAT_00072cdc;\n  uVar9 = DAT_00072dcc;\n  if (param_8 != 0) {\n    puVar6 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar6;\n    *puVar6 = DAT_00072bd4;\n    DAT_00072bd4 = puVar1;\n    puVar6[4] = DAT_00072bd8;\n    uVar4 = DAT_00072cdc;\n    puVar6[2] = DAT_00072bdc;\n    puVar6[1] = uVar4;\n    uVar9 = DAT_00072dcc;\n    puVar6[3] = DAT_00072dcc;\n  }\n  local_24 = param_6;\n  local_20 = param_3;\n  DAT_00072bd8 = uVar9;\n  DAT_00072bdc = uVar4;\n  iVar2 = bfd_get_section_by_name_if(DAT_00072e64,param_1,FUN_000448d0,&local_24);\n  if (iVar2 == 0) {\n    local_34 = FUN_00034870(param_1,0);\n  }\n  else {\n    FUN_000348a0(iVar2,0);\n    local_34 = iVar2;\n  }\n  pbVar3 = (byte *)(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34);\n  if (pbVar3 == (byte *)0x0) {\nLAB_00046b14:\n    if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    \n      FUN_0002a7e0(uVar4,param_1);\n    }\n    uVar7 = param_4 >> 1 & 1;\n    uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U;\n    uVar7 = uVar7 & local_3c != 8;\nLAB_00046b74:\n    uVar10 = 4;\n    if ((param_4 & 1) == 0) goto LAB_00046d00;\n  }\n  else {\n    uVar7 = *(uint *)(pbVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n    uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar13 = param_4 < 2;\n    bVar15 = param_4 == 2;\n    if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }\n    iVar8 = 8;\n    pbVar3 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);\n    bVar14 = false;\n    bVar13 = (!bVar13 && !bVar15) == bVar13;\n    if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }\n    uVar5 = 1;\n    uVar7 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar10 = 0xc;\n  }\n  uVar7 = uVar7 * 2;\nLAB_00046b86:\n  uVar7 = FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c);\n  if (param_7 != 0) {\n    uVar7 = uVar7 | 0x20000;\n  }\n  if (iVar2 == 0) {\n    if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }\n    iVar2 = *(int *)(local_34 + 0x8c);\n    *(uint *)(iVar2 + 4) = local_3c;\n    *(uint *)(iVar2 + 8) = param_4;\n    *(undefined4 *)(iVar2 + 0x20) = param_3;\n    if (local_3c == 8) {\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    bfd_set_section_flags(DAT_00072e64,local_34,uVar7);\n    if ((uVar7 & 0x800000) != 0) {\n      *(int *)(local_34 + 0x78) = param_5;\n    }\n    *(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6;\n    iVar2 = FUN_000383f0(param_1);\n    if (iVar2 != 0) {\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }\n    uVar4 = FUN_000348f0(local_34);\n    FUN_00035090(uVar4);\n  }\n  else {\n    if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00046a00(byte *param_1,uint param_2,undefined4 param_3,uint param_4,int param_5,\n                 byte *param_6,int param_7,int param_8)" (identifier "FUN_00046a00") (parameter_list "(byte *param_1,uint param_2,undefined4 param_3,uint param_4,int param_5,\n                 byte *param_6,int param_7,int param_8)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "byte *param_6" (type_identifier "byte") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) (, ",") (parameter_declaration "int param_8" (primitive_type "int") (identifier "param_8")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  byte *pbVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  uint uVar7;\n  int iVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  bool bVar13;\n  bool bVar14;\n  bool bVar15;\n  byte bVar16;\n  uint local_3c;\n  int local_34;\n  byte *local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar16 = 0;\n  uStack_14 = 0x46a09;\n  local_3c = param_2;\n  uVar4 = DAT_00072cdc;\n  uVar9 = DAT_00072dcc;\n  if (param_8 != 0) {\n    puVar6 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar6;\n    *puVar6 = DAT_00072bd4;\n    DAT_00072bd4 = puVar1;\n    puVar6[4] = DAT_00072bd8;\n    uVar4 = DAT_00072cdc;\n    puVar6[2] = DAT_00072bdc;\n    puVar6[1] = uVar4;\n    uVar9 = DAT_00072dcc;\n    puVar6[3] = DAT_00072dcc;\n  }\n  local_24 = param_6;\n  local_20 = param_3;\n  DAT_00072bd8 = uVar9;\n  DAT_00072bdc = uVar4;\n  iVar2 = bfd_get_section_by_name_if(DAT_00072e64,param_1,FUN_000448d0,&local_24);\n  if (iVar2 == 0) {\n    local_34 = FUN_00034870(param_1,0);\n  }\n  else {\n    FUN_000348a0(iVar2,0);\n    local_34 = iVar2;\n  }\n  pbVar3 = (byte *)(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34);\n  if (pbVar3 == (byte *)0x0) {\nLAB_00046b14:\n    if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    \n      FUN_0002a7e0(uVar4,param_1);\n    }\n    uVar7 = param_4 >> 1 & 1;\n    uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U;\n    uVar7 = uVar7 & local_3c != 8;\nLAB_00046b74:\n    uVar10 = 4;\n    if ((param_4 & 1) == 0) goto LAB_00046d00;\n  }\n  else {\n    uVar7 = *(uint *)(pbVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n    uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar13 = param_4 < 2;\n    bVar15 = param_4 == 2;\n    if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }\n    iVar8 = 8;\n    pbVar3 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);\n    bVar14 = false;\n    bVar13 = (!bVar13 && !bVar15) == bVar13;\n    if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }\n    uVar5 = 1;\n    uVar7 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar10 = 0xc;\n  }\n  uVar7 = uVar7 * 2;\nLAB_00046b86:\n  uVar7 = FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c);\n  if (param_7 != 0) {\n    uVar7 = uVar7 | 0x20000;\n  }\n  if (iVar2 == 0) {\n    if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }\n    iVar2 = *(int *)(local_34 + 0x8c);\n    *(uint *)(iVar2 + 4) = local_3c;\n    *(uint *)(iVar2 + 8) = param_4;\n    *(undefined4 *)(iVar2 + 0x20) = param_3;\n    if (local_3c == 8) {\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    bfd_set_section_flags(DAT_00072e64,local_34,uVar7);\n    if ((uVar7 & 0x800000) != 0) {\n      *(int *)(local_34 + 0x78) = param_5;\n    }\n    *(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6;\n    iVar2 = FUN_000383f0(param_1);\n    if (iVar2 != 0) {\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }\n    uVar4 = FUN_000348f0(local_34);\n    FUN_00035090(uVar4);\n  }\n  else {\n    if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n  }\n  return;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (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 "byte bVar16;" (type_identifier "byte") (identifier "bVar16") (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "byte *local_24;" (type_identifier "byte") (pointer_declarator "*local_24" (* "*") (identifier "local_24")) (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar16 = 0;" (assignment_expression "bVar16 = 0" (identifier "bVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x46a09;" (assignment_expression "uStack_14 = 0x46a09" (identifier "uStack_14") (= "=") (number_literal "0x46a09")) (; ";")) (expression_statement "local_3c = param_2;" (assignment_expression "local_3c = param_2" (identifier "local_3c") (= "=") (identifier "param_2")) (; ";")) (expression_statement "uVar4 = DAT_00072cdc;" (assignment_expression "uVar4 = DAT_00072cdc" (identifier "uVar4") (= "=") (identifier "DAT_00072cdc")) (; ";")) (expression_statement "uVar9 = DAT_00072dcc;" (assignment_expression "uVar9 = DAT_00072dcc" (identifier "uVar9") (= "=") (identifier "DAT_00072dcc")) (; ";")) (if_statement "if (param_8 != 0) {\n    puVar6 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar6;\n    *puVar6 = DAT_00072bd4;\n    DAT_00072bd4 = puVar1;\n    puVar6[4] = DAT_00072bd8;\n    uVar4 = DAT_00072cdc;\n    puVar6[2] = DAT_00072bdc;\n    puVar6[1] = uVar4;\n    uVar9 = DAT_00072dcc;\n    puVar6[3] = DAT_00072dcc;\n  }" (if "if") (parenthesized_expression "(param_8 != 0)" (( "(") (binary_expression "param_8 != 0" (identifier "param_8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    puVar6 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar6;\n    *puVar6 = DAT_00072bd4;\n    DAT_00072bd4 = puVar1;\n    puVar6[4] = DAT_00072bd8;\n    uVar4 = DAT_00072cdc;\n    puVar6[2] = DAT_00072bdc;\n    puVar6[1] = uVar4;\n    uVar9 = DAT_00072dcc;\n    puVar6[3] = DAT_00072dcc;\n  }" ({ "{") (expression_statement "puVar6 = (undefined4 *)xmalloc(0x14);" (assignment_expression "puVar6 = (undefined4 *)xmalloc(0x14)" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)xmalloc(0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x14)" (identifier "xmalloc") (argument_list "(0x14)" (( "(") (number_literal "0x14") () ")"))))) (; ";")) (expression_statement "puVar1 = puVar6;" (assignment_expression "puVar1 = puVar6" (identifier "puVar1") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "*puVar6 = DAT_00072bd4;" (assignment_expression "*puVar6 = DAT_00072bd4" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (identifier "DAT_00072bd4")) (; ";")) (expression_statement "DAT_00072bd4 = puVar1;" (assignment_expression "DAT_00072bd4 = puVar1" (identifier "DAT_00072bd4") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "puVar6[4] = DAT_00072bd8;" (assignment_expression "puVar6[4] = DAT_00072bd8" (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "DAT_00072bd8")) (; ";")) (expression_statement "uVar4 = DAT_00072cdc;" (assignment_expression "uVar4 = DAT_00072cdc" (identifier "uVar4") (= "=") (identifier "DAT_00072cdc")) (; ";")) (expression_statement "puVar6[2] = DAT_00072bdc;" (assignment_expression "puVar6[2] = DAT_00072bdc" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "DAT_00072bdc")) (; ";")) (expression_statement "puVar6[1] = uVar4;" (assignment_expression "puVar6[1] = uVar4" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar9 = DAT_00072dcc;" (assignment_expression "uVar9 = DAT_00072dcc" (identifier "uVar9") (= "=") (identifier "DAT_00072dcc")) (; ";")) (expression_statement "puVar6[3] = DAT_00072dcc;" (assignment_expression "puVar6[3] = DAT_00072dcc" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "DAT_00072dcc")) (; ";")) (} "}"))) (expression_statement "local_24 = param_6;" (assignment_expression "local_24 = param_6" (identifier "local_24") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_20 = param_3;" (assignment_expression "local_20 = param_3" (identifier "local_20") (= "=") (identifier "param_3")) (; ";")) (expression_statement "DAT_00072bd8 = uVar9;" (assignment_expression "DAT_00072bd8 = uVar9" (identifier "DAT_00072bd8") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "DAT_00072bdc = uVar4;" (assignment_expression "DAT_00072bdc = uVar4" (identifier "DAT_00072bdc") (= "=") (identifier "uVar4")) (; ";")) (expression_statement "iVar2 = bfd_get_section_by_name_if(DAT_00072e64,param_1,FUN_000448d0,&local_24);" (assignment_expression "iVar2 = bfd_get_section_by_name_if(DAT_00072e64,param_1,FUN_000448d0,&local_24)" (identifier "iVar2") (= "=") (call_expression "bfd_get_section_by_name_if(DAT_00072e64,param_1,FUN_000448d0,&local_24)" (identifier "bfd_get_section_by_name_if") (argument_list "(DAT_00072e64,param_1,FUN_000448d0,&local_24)" (( "(") (identifier "DAT_00072e64") (, ",") (identifier "param_1") (, ",") (identifier "FUN_000448d0") (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n    local_34 = FUN_00034870(param_1,0);\n  }\n  else {\n    FUN_000348a0(iVar2,0);\n    local_34 = iVar2;\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_34 = FUN_00034870(param_1,0);\n  }" ({ "{") (expression_statement "local_34 = FUN_00034870(param_1,0);" (assignment_expression "local_34 = FUN_00034870(param_1,0)" (identifier "local_34") (= "=") (call_expression "FUN_00034870(param_1,0)" (identifier "FUN_00034870") (argument_list "(param_1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    FUN_000348a0(iVar2,0);\n    local_34 = iVar2;\n  }" (else "else") (compound_statement "{\n    FUN_000348a0(iVar2,0);\n    local_34 = iVar2;\n  }" ({ "{") (expression_statement "FUN_000348a0(iVar2,0);" (call_expression "FUN_000348a0(iVar2,0)" (identifier "FUN_000348a0") (argument_list "(iVar2,0)" (( "(") (identifier "iVar2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_34 = iVar2;" (assignment_expression "local_34 = iVar2" (identifier "local_34") (= "=") (identifier "iVar2")) (; ";")) (} "}")))) (expression_statement "pbVar3 = (byte *)(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34);" (assignment_expression "pbVar3 = (byte *)(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34)" (identifier "pbVar3") (= "=") (cast_expression "(byte *)(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))\n                             (DAT_00072e64,local_34)" (parenthesized_expression "(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))" (( "(") (pointer_expression "**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58)" (* "*") (pointer_expression "*(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58)" (* "*") (cast_expression "(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58)" (( "(") (binary_expression "*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58" (pointer_expression "*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0)" (* "*") (cast_expression "(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_00072e64 + 4) + 0x1c0)" (( "(") (binary_expression "*(int *)(DAT_00072e64 + 4) + 0x1c0" (pointer_expression "*(int *)(DAT_00072e64 + 4)" (* "*") (cast_expression "(int *)(DAT_00072e64 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00072e64 + 4)" (( "(") (binary_expression "DAT_00072e64 + 4" (identifier "DAT_00072e64") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x1c0")) () ")")))) (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (argument_list "(DAT_00072e64,local_34)" (( "(") (identifier "DAT_00072e64") (, ",") (identifier "local_34") () ")"))))) (; ";")) (if_statement "if (pbVar3 == (byte *)0x0) {\nLAB_00046b14:\n    if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    \n      FUN_0002a7e0(uVar4,param_1);\n    }\n    uVar7 = param_4 >> 1 & 1;\n    uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U;\n    uVar7 = uVar7 & local_3c != 8;\nLAB_00046b74:\n    uVar10 = 4;\n    if ((param_4 & 1) == 0) goto LAB_00046d00;\n  }\n  else {\n    uVar7 = *(uint *)(pbVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n    uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar13 = param_4 < 2;\n    bVar15 = param_4 == 2;\n    if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }\n    iVar8 = 8;\n    pbVar3 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);\n    bVar14 = false;\n    bVar13 = (!bVar13 && !bVar15) == bVar13;\n    if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }\n    uVar5 = 1;\n    uVar7 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar10 = 0xc;\n  }" (if "if") (parenthesized_expression "(pbVar3 == (byte *)0x0)" (( "(") (binary_expression "pbVar3 == (byte *)0x0" (identifier "pbVar3") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00046b14:\n    if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    \n      FUN_0002a7e0(uVar4,param_1);\n    }\n    uVar7 = param_4 >> 1 & 1;\n    uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U;\n    uVar7 = uVar7 & local_3c != 8;\nLAB_00046b74:\n    uVar10 = 4;\n    if ((param_4 & 1) == 0) goto LAB_00046d00;\n  }" ({ "{") (labeled_statement "LAB_00046b14:\n    if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    \n      FUN_0002a7e0(uVar4,param_1);\n    }" (statement_identifier "LAB_00046b14") (: ":") (if_statement "if ((param_4 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    \n      FUN_0002a7e0(uVar4,param_1);\n    }" (if "if") (parenthesized_expression "((param_4 & 0x1000002) == 0x1000000)" (( "(") (binary_expression "(param_4 & 0x1000002) == 0x1000000" (parenthesized_expression "(param_4 & 0x1000002)" (( "(") (binary_expression "param_4 & 0x1000002" (identifier "param_4") (& "&") (number_literal "0x1000002")) () ")")) (== "==") (number_literal "0x1000000")) () ")")) (compound_statement "{\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);\n                    \n      FUN_0002a7e0(uVar4,param_1);\n    }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);" (assignment_expression "uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3)" (identifier "dcgettext") (argument_list "(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3)" (( "(") (number_literal "0") (, ",") (string_literal ""SHF_ALLOC isn\'t set for GNU_MBIND section: %s"" (" """) (string_content "SHF_ALLOC isn") (escape_sequence "\'") (string_content "t set for GNU_MBIND section: %s") (" """)) (, ",") (number_literal "5") (, ",") (identifier "pbVar3") () ")")))) (; ";")) (expression_statement "FUN_0002a7e0(uVar4,param_1);" (call_expression "FUN_0002a7e0(uVar4,param_1)" (identifier "FUN_0002a7e0") (argument_list "(uVar4,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar7 = param_4 >> 1 & 1;" (assignment_expression "uVar7 = param_4 >> 1 & 1" (identifier "uVar7") (= "=") (binary_expression "param_4 >> 1 & 1" (binary_expression "param_4 >> 1" (identifier "param_4") (>> ">>") (number_literal "1")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U;" (assignment_expression "uVar5 = param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U" (identifier "uVar5") (= "=") (binary_expression "param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n            (int)param_4 >> 0x10 & 0x8000U" (binary_expression "param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000" (binary_expression "param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400" (binary_expression "param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10 | uVar7" (binary_expression "param_4 << 0x13 & 0x1000000 |\n            param_4 * 4 & 0x10" (binary_expression "param_4 << 0x13 & 0x1000000" (binary_expression "param_4 << 0x13" (identifier "param_4") (<< "<<") (number_literal "0x13")) (& "&") (number_literal "0x1000000")) (| "|") (binary_expression "param_4 * 4 & 0x10" (binary_expression "param_4 * 4" (identifier "param_4") (* "*") (number_literal "4")) (& "&") (number_literal "0x10"))) (| "|") (identifier "uVar7")) (| "|") (binary_expression "param_4 & 0x400" (identifier "param_4") (& "&") (number_literal "0x400"))) (| "|") (binary_expression "param_4 << 0x13 & 0x800000" (binary_expression "param_4 << 0x13" (identifier "param_4") (<< "<<") (number_literal "0x13")) (& "&") (number_literal "0x800000"))) (| "|") (binary_expression "(int)param_4 >> 0x10 & 0x8000U" (binary_expression "(int)param_4 >> 0x10" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0x8000U")))) (; ";")) (expression_statement "uVar7 = uVar7 & local_3c != 8;" (assignment_expression "uVar7 = uVar7 & local_3c != 8" (identifier "uVar7") (= "=") (binary_expression "uVar7 & local_3c != 8" (identifier "uVar7") (& "&") (binary_expression "local_3c != 8" (identifier "local_3c") (!= "!=") (number_literal "8")))) (; ";")) (labeled_statement "LAB_00046b74:\n    uVar10 = 4;" (statement_identifier "LAB_00046b74") (: ":") (expression_statement "uVar10 = 4;" (assignment_expression "uVar10 = 4" (identifier "uVar10") (= "=") (number_literal "4")) (; ";"))) (if_statement "if ((param_4 & 1) == 0) goto LAB_00046d00;" (if "if") (parenthesized_expression "((param_4 & 1) == 0)" (( "(") (binary_expression "(param_4 & 1) == 0" (parenthesized_expression "(param_4 & 1)" (( "(") (binary_expression "param_4 & 1" (identifier "param_4") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00046d00;" (goto "goto") (statement_identifier "LAB_00046d00") (; ";"))) (} "}")) (else_clause "else {\n    uVar7 = *(uint *)(pbVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n    uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar13 = param_4 < 2;\n    bVar15 = param_4 == 2;\n    if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }\n    iVar8 = 8;\n    pbVar3 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);\n    bVar14 = false;\n    bVar13 = (!bVar13 && !bVar15) == bVar13;\n    if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }\n    uVar5 = 1;\n    uVar7 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar10 = 0xc;\n  }" (else "else") (compound_statement "{\n    uVar7 = *(uint *)(pbVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n    uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }\n    if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }\n    if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }\n    bVar13 = param_4 < 2;\n    bVar15 = param_4 == 2;\n    if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }\n    iVar8 = 8;\n    pbVar3 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);\n    bVar14 = false;\n    bVar13 = (!bVar13 && !bVar15) == bVar13;\n    if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }\n    uVar5 = 1;\n    uVar7 = (uint)(local_3c != 8);\nLAB_00046d00:\n    uVar10 = 0xc;\n  }" ({ "{") (expression_statement "uVar7 = *(uint *)(pbVar3 + 0xc);" (assignment_expression "uVar7 = *(uint *)(pbVar3 + 0xc)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(pbVar3 + 0xc)" (* "*") (cast_expression "(uint *)(pbVar3 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 0xc)" (( "(") (binary_expression "pbVar3 + 0xc" (identifier "pbVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if ((param_2 == 0) || (param_2 == uVar7)) {\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }\n    else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }" (if "if") (parenthesized_expression "((param_2 == 0) || (param_2 == uVar7))" (( "(") (binary_expression "(param_2 == 0) || (param_2 == uVar7)" (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_2 == uVar7)" (( "(") (binary_expression "param_2 == uVar7" (identifier "param_2") (== "==") (identifier "uVar7")) () ")"))) () ")")) (compound_statement "{\nLAB_00046b08:\n      local_3c = uVar7;\n      if (iVar2 != 0) goto LAB_00046b14;\n    }" ({ "{") (labeled_statement "LAB_00046b08:\n      local_3c = uVar7;" (statement_identifier "LAB_00046b08") (: ":") (expression_statement "local_3c = uVar7;" (assignment_expression "local_3c = uVar7" (identifier "local_3c") (= "=") (identifier "uVar7")) (; ";"))) (if_statement "if (iVar2 != 0) goto LAB_00046b14;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00046b14;" (goto "goto") (statement_identifier "LAB_00046b14") (; ";"))) (} "}")) (else_clause "else {\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }" (else "else") (compound_statement "{\n      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }\n      if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }" ({ "{") (if_statement "if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }" (if "if") (parenthesized_expression "((uVar7 - 0xe < 3) || (iVar2 != 0))" (( "(") (binary_expression "(uVar7 - 0xe < 3) || (iVar2 != 0)" (parenthesized_expression "(uVar7 - 0xe < 3)" (( "(") (binary_expression "uVar7 - 0xe < 3" (binary_expression "uVar7 - 0xe" (identifier "uVar7") (- "-") (number_literal "0xe")) (< "<") (number_literal "3")) () ")")) (|| "||") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n        uVar7 = *(uint *)(pbVar3 + 0xc);\n        goto LAB_00046b08;\n      }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);" (assignment_expression "uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"ignoring incorrect section type for %s",5)" (identifier "dcgettext") (argument_list "(0,"ignoring incorrect section type for %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""ignoring incorrect section type for %s"" (" """) (string_content "ignoring incorrect section type for %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002a660(uVar4,param_1);" (call_expression "FUN_0002a660(uVar4,param_1)" (identifier "FUN_0002a660") (argument_list "(uVar4,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "uVar7 = *(uint *)(pbVar3 + 0xc);" (assignment_expression "uVar7 = *(uint *)(pbVar3 + 0xc)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(pbVar3 + 0xc)" (* "*") (cast_expression "(uint *)(pbVar3 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 0xc)" (( "(") (binary_expression "pbVar3 + 0xc" (identifier "pbVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (goto_statement "goto LAB_00046b08;" (goto "goto") (statement_identifier "LAB_00046b08") (; ";")) (} "}"))) (if_statement "if ((uVar7 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" (if "if") (parenthesized_expression "((uVar7 == 7) || (0x6fffffff < param_2))" (( "(") (binary_expression "(uVar7 == 7) || (0x6fffffff < param_2)" (parenthesized_expression "(uVar7 == 7)" (( "(") (binary_expression "uVar7 == 7" (identifier "uVar7") (== "==") (number_literal "7")) () ")")) (|| "||") (parenthesized_expression "(0x6fffffff < param_2)" (( "(") (binary_expression "0x6fffffff < param_2" (number_literal "0x6fffffff") (< "<") (identifier "param_2")) () ")"))) () ")")) (compound_statement "{\n      }" ({ "{") (} "}")) (else_clause "else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" (else "else") (compound_statement "{\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"setting incorrect section type for %s",5);" (assignment_expression "uVar4 = dcgettext(0,"setting incorrect section type for %s",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"setting incorrect section type for %s",5)" (identifier "dcgettext") (argument_list "(0,"setting incorrect section type for %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""setting incorrect section type for %s"" (" """) (string_content "setting incorrect section type for %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002a660(uVar4,param_1);" (call_expression "FUN_0002a660(uVar4,param_1)" (identifier "FUN_0002a660") (argument_list "(uVar4,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;" (assignment_expression "uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4" (identifier "uVar7") (= "=") (binary_expression "~*(uint *)(pbVar3 + 0x10) & param_4" (unary_expression "~*(uint *)(pbVar3 + 0x10)" (~ "~") (pointer_expression "*(uint *)(pbVar3 + 0x10)" (* "*") (cast_expression "(uint *)(pbVar3 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 0x10)" (( "(") (binary_expression "pbVar3 + 0x10" (identifier "pbVar3") (+ "+") (number_literal "0x10")) () ")"))))) (& "&") (identifier "param_4"))) (; ";")) (if_statement "if ((uVar7 & 0xfffff) == 0) {\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }" (if "if") (parenthesized_expression "((uVar7 & 0xfffff) == 0)" (( "(") (binary_expression "(uVar7 & 0xfffff) == 0" (parenthesized_expression "(uVar7 & 0xfffff)" (( "(") (binary_expression "uVar7 & 0xfffff" (identifier "uVar7") (& "&") (number_literal "0xfffff")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);\n      goto LAB_00046b14;\n    }" ({ "{") (labeled_statement "LAB_00046ce0:\n      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);" (statement_identifier "LAB_00046ce0") (: ":") (expression_statement "param_4 = param_4 | *(uint *)(pbVar3 + 0x10);" (assignment_expression "param_4 = param_4 | *(uint *)(pbVar3 + 0x10)" (identifier "param_4") (= "=") (binary_expression "param_4 | *(uint *)(pbVar3 + 0x10)" (identifier "param_4") (| "|") (pointer_expression "*(uint *)(pbVar3 + 0x10)" (* "*") (cast_expression "(uint *)(pbVar3 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 0x10)" (( "(") (binary_expression "pbVar3 + 0x10" (identifier "pbVar3") (+ "+") (number_literal "0x10")) () ")")))))) (; ";"))) (goto_statement "goto LAB_00046b14;" (goto "goto") (statement_identifier "LAB_00046b14") (; ";")) (} "}"))) (if_statement "if (*(int *)(pbVar3 + 0xc) == 7) {\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }" (if "if") (parenthesized_expression "(*(int *)(pbVar3 + 0xc) == 7)" (( "(") (binary_expression "*(int *)(pbVar3 + 0xc) == 7" (pointer_expression "*(int *)(pbVar3 + 0xc)" (* "*") (cast_expression "(int *)(pbVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 0xc)" (( "(") (binary_expression "pbVar3 + 0xc" (identifier "pbVar3") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "7")) () ")")) (compound_statement "{\n      if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }\n      goto LAB_00046ce0;\n    }" ({ "{") (if_statement "if ((param_4 - 2 & 0xfffffffd) != 0) {\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }" (if "if") (parenthesized_expression "((param_4 - 2 & 0xfffffffd) != 0)" (( "(") (binary_expression "(param_4 - 2 & 0xfffffffd) != 0" (parenthesized_expression "(param_4 - 2 & 0xfffffffd)" (( "(") (binary_expression "param_4 - 2 & 0xfffffffd" (binary_expression "param_4 - 2" (identifier "param_4") (- "-") (number_literal "2")) (& "&") (number_literal "0xfffffffd")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;\nLAB_00046c82:\n        pbVar3 = param_6;\n        if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }\n        goto LAB_00046b14;\n      }" ({ "{") (if_statement "if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;" (if "if") (parenthesized_expression "(*(int *)(pbVar3 + 8) == -2)" (( "(") (binary_expression "*(int *)(pbVar3 + 8) == -2" (pointer_expression "*(int *)(pbVar3 + 8)" (* "*") (cast_expression "(int *)(pbVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 8)" (( "(") (binary_expression "pbVar3 + 8" (identifier "pbVar3") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "-2")) () ")")) (goto_statement "goto LAB_00046cc6;" (goto "goto") (statement_identifier "LAB_00046cc6") (; ";"))) (labeled_statement "LAB_00046c82:\n        pbVar3 = param_6;" (statement_identifier "LAB_00046c82") (: ":") (expression_statement "pbVar3 = param_6;" (assignment_expression "pbVar3 = param_6" (identifier "pbVar3") (= "=") (identifier "param_6")) (; ";"))) (if_statement "if (param_6 == (byte *)0x0) {\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }" (if "if") (parenthesized_expression "(param_6 == (byte *)0x0)" (( "(") (binary_expression "param_6 == (byte *)0x0" (identifier "param_6") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a660(uVar4,param_1);\n        }" ({ "{") (labeled_statement "LAB_00046c8e:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);" (statement_identifier "LAB_00046c8e") (: ":") (expression_statement "uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);" (assignment_expression "uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"setting incorrect section attributes for %s",5)" (identifier "dcgettext") (argument_list "(0,"setting incorrect section attributes for %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""setting incorrect section attributes for %s"" (" """) (string_content "setting incorrect section attributes for %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0002a660(uVar4,param_1);" (call_expression "FUN_0002a660(uVar4,param_1)" (identifier "FUN_0002a660") (argument_list "(uVar4,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00046b14;" (goto "goto") (statement_identifier "LAB_00046b14") (; ";")) (} "}"))) (goto_statement "goto LAB_00046ce0;" (goto "goto") (statement_identifier "LAB_00046ce0") (; ";")) (} "}"))) (if_statement "if (*(int *)(pbVar3 + 8) == -2) {\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }" (if "if") (parenthesized_expression "(*(int *)(pbVar3 + 8) == -2)" (( "(") (binary_expression "*(int *)(pbVar3 + 8) == -2" (pointer_expression "*(int *)(pbVar3 + 8)" (* "*") (cast_expression "(int *)(pbVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 8)" (( "(") (binary_expression "pbVar3 + 8" (identifier "pbVar3") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "-2")) () ")")) (compound_statement "{\nLAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;\n    }" ({ "{") (labeled_statement "LAB_00046cc6:\n      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;" (statement_identifier "LAB_00046cc6") (: ":") (if_statement "if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;" (if "if") (parenthesized_expression "((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0))" (( "(") (binary_expression "(param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)" (parenthesized_expression "(param_1[*(int *)(pbVar3 + 4)] == 0x2e)" (( "(") (binary_expression "param_1[*(int *)(pbVar3 + 4)] == 0x2e" (subscript_expression "param_1[*(int *)(pbVar3 + 4)]" (identifier "param_1") ([ "[") (pointer_expression "*(int *)(pbVar3 + 4)" (* "*") (cast_expression "(int *)(pbVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar3 + 4)" (( "(") (binary_expression "pbVar3 + 4" (identifier "pbVar3") (+ "+") (number_literal "4")) () ")")))) (] "]")) (== "==") (number_literal "0x2e")) () ")")) (&& "&&") (parenthesized_expression "((uVar7 & 0xffffffcf) == 0)" (( "(") (binary_expression "(uVar7 & 0xffffffcf) == 0" (parenthesized_expression "(uVar7 & 0xffffffcf)" (( "(") (binary_expression "uVar7 & 0xffffffcf" (identifier "uVar7") (& "&") (number_literal "0xffffffcf")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00046ce0;" (goto "goto") (statement_identifier "LAB_00046ce0") (; ";")))) (} "}"))) (expression_statement "bVar13 = param_4 < 2;" (assignment_expression "bVar13 = param_4 < 2" (identifier "bVar13") (= "=") (binary_expression "param_4 < 2" (identifier "param_4") (< "<") (number_literal "2"))) (; ";")) (expression_statement "bVar15 = param_4 == 2;" (assignment_expression "bVar15 = param_4 == 2" (identifier "bVar15") (= "=") (binary_expression "param_4 == 2" (identifier "param_4") (== "==") (number_literal "2"))) (; ";")) (if_statement "if (!bVar15) {\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }" (if "if") (parenthesized_expression "(!bVar15)" (( "(") (unary_expression "!bVar15" (! "!") (identifier "bVar15")) () ")")) (compound_statement "{\n      bVar13 = param_4 < 4;\n      bVar15 = param_4 == 4;\n      if (!bVar15) goto LAB_00046c82;\n      iVar8 = 0x10;\n      pbVar11 = param_1;\n      pbVar12 = (byte *)".note.GNU-stack";\n      do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);\n      if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }\nLAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;\n      uVar7 = param_4 >> 1 & 1;\n      uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;\n      uVar7 = local_3c != 8 & uVar7;\n      goto LAB_00046b74;\n    }" ({ "{") (expression_statement "bVar13 = param_4 < 4;" (assignment_expression "bVar13 = param_4 < 4" (identifier "bVar13") (= "=") (binary_expression "param_4 < 4" (identifier "param_4") (< "<") (number_literal "4"))) (; ";")) (expression_statement "bVar15 = param_4 == 4;" (assignment_expression "bVar15 = param_4 == 4" (identifier "bVar15") (= "=") (binary_expression "param_4 == 4" (identifier "param_4") (== "==") (number_literal "4"))) (; ";")) (if_statement "if (!bVar15) goto LAB_00046c82;" (if "if") (parenthesized_expression "(!bVar15)" (( "(") (unary_expression "!bVar15" (! "!") (identifier "bVar15")) () ")")) (goto_statement "goto LAB_00046c82;" (goto "goto") (statement_identifier "LAB_00046c82") (; ";"))) (expression_statement "iVar8 = 0x10;" (assignment_expression "iVar8 = 0x10" (identifier "iVar8") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = (byte *)".note.GNU-stack";" (assignment_expression "pbVar12 = (byte *)".note.GNU-stack"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)".note.GNU-stack"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".note.GNU-stack"" (" """) (string_content ".note.GNU-stack") (" """)))) (; ";")) (do_statement "do {\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      } while (bVar15);" (do "do") (compound_statement "{\n        pbVar3 = pbVar11;\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n        bVar13 = *pbVar11 < *pbVar12;\n        bVar15 = *pbVar11 == *pbVar12;\n        pbVar11 = pbVar3;\n        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n      }" ({ "{") (expression_statement "pbVar3 = pbVar11;" (assignment_expression "pbVar3 = pbVar11" (identifier "pbVar3") (= "=") (identifier "pbVar11")) (; ";")) (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1" (identifier "pbVar3") (= "=") (binary_expression "pbVar11 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar16 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar13 = *pbVar11 < *pbVar12;" (assignment_expression "bVar13 = *pbVar11 < *pbVar12" (identifier "bVar13") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar15 = *pbVar11 == *pbVar12;" (assignment_expression "bVar15 = *pbVar11 == *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar3;" (assignment_expression "pbVar11 = pbVar3" (identifier "pbVar11") (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (if_statement "if ((!bVar13 && !bVar15) == bVar13) {\n        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\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        uVar5 = 0x10;\n        uVar10 = 0xc;\n        uVar7 = 0;\n        goto LAB_00046b86;\n      }" ({ "{") (expression_statement "uVar5 = 0x10;" (assignment_expression "uVar5 = 0x10" (identifier "uVar5") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "uVar10 = 0xc;" (assignment_expression "uVar10 = 0xc" (identifier "uVar10") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00046b86;" (goto "goto") (statement_identifier "LAB_00046b86") (; ";")) (} "}"))) (labeled_statement "LAB_00046f32:\n      if (param_6 == (byte *)0x0) goto LAB_00046c8e;" (statement_identifier "LAB_00046f32") (: ":") (if_statement "if (param_6 == (byte *)0x0) goto LAB_00046c8e;" (if "if") (parenthesized_expression "(param_6 == (byte *)0x0)" (( "(") (binary_expression "param_6 == (byte *)0x0" (identifier "param_6") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00046c8e;" (goto "goto") (statement_identifier "LAB_00046c8e") (; ";")))) (expression_statement "uVar7 = param_4 >> 1 & 1;" (assignment_expression "uVar7 = param_4 >> 1 & 1" (identifier "uVar7") (= "=") (binary_expression "param_4 >> 1 & 1" (binary_expression "param_4 >> 1" (identifier "param_4") (>> ">>") (number_literal "1")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U;" (assignment_expression "uVar5 = param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U" (identifier "uVar5") (= "=") (binary_expression "param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |\n              (int)param_4 >> 0x10 & 0x8000U" (binary_expression "param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000" (binary_expression "param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400" (binary_expression "param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10 | uVar7" (binary_expression "param_4 << 0x13 & 0x1000000 |\n              param_4 * 4 & 0x10" (binary_expression "param_4 << 0x13 & 0x1000000" (binary_expression "param_4 << 0x13" (identifier "param_4") (<< "<<") (number_literal "0x13")) (& "&") (number_literal "0x1000000")) (| "|") (binary_expression "param_4 * 4 & 0x10" (binary_expression "param_4 * 4" (identifier "param_4") (* "*") (number_literal "4")) (& "&") (number_literal "0x10"))) (| "|") (identifier "uVar7")) (| "|") (binary_expression "param_4 & 0x400" (identifier "param_4") (& "&") (number_literal "0x400"))) (| "|") (binary_expression "param_4 << 0x13 & 0x800000" (binary_expression "param_4 << 0x13" (identifier "param_4") (<< "<<") (number_literal "0x13")) (& "&") (number_literal "0x800000"))) (| "|") (binary_expression "(int)param_4 >> 0x10 & 0x8000U" (binary_expression "(int)param_4 >> 0x10" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0x8000U")))) (; ";")) (expression_statement "uVar7 = local_3c != 8 & uVar7;" (assignment_expression "uVar7 = local_3c != 8 & uVar7" (identifier "uVar7") (= "=") (binary_expression "local_3c != 8 & uVar7" (binary_expression "local_3c != 8" (identifier "local_3c") (!= "!=") (number_literal "8")) (& "&") (identifier "uVar7"))) (; ";")) (goto_statement "goto LAB_00046b74;" (goto "goto") (statement_identifier "LAB_00046b74") (; ";")) (} "}"))) (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" (identifier "iVar8") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar3 = param_1;" (assignment_expression "pbVar3 = param_1" (identifier "pbVar3") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = (byte *)".interp";" (assignment_expression "pbVar11 = (byte *)".interp"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)".interp"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".interp"" (" """) (string_content ".interp") (" """)))) (; ";")) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    } while (bVar15);" (do "do") (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar13 = *pbVar3 < *pbVar11;\n      bVar15 = *pbVar3 == *pbVar11;\n      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar13 = *pbVar3 < *pbVar11;" (assignment_expression "bVar13 = *pbVar3 < *pbVar11" (identifier "bVar13") (= "=") (binary_expression "*pbVar3 < *pbVar11" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar15 = *pbVar3 == *pbVar11;" (assignment_expression "bVar15 = *pbVar3 == *pbVar11" (identifier "bVar15") (= "=") (binary_expression "*pbVar3 == *pbVar11" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1" (identifier "pbVar3") (= "=") (binary_expression "pbVar3 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar3 + (uint)bVar16 * -2" (identifier "pbVar3") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar16 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" (identifier "bVar14") (= "=") (false "false")) (; ";")) (expression_statement "bVar13 = (!bVar13 && !bVar15) == bVar13;" (assignment_expression "bVar13 = (!bVar13 && !bVar15) == bVar13" (identifier "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"))) (; ";")) (if_statement "if (!bVar13) {\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }" (if "if") (parenthesized_expression "(!bVar13)" (( "(") (unary_expression "!bVar13" (! "!") (identifier "bVar13")) () ")")) (compound_statement "{\n      iVar8 = 8;\n      pbVar3 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);\n      bVar15 = false;\n      bVar13 = (!bVar14 && !bVar13) == bVar14;\n      if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }\n    }" ({ "{") (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" (identifier "iVar8") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar3 = param_1;" (assignment_expression "pbVar3 = param_1" (identifier "pbVar3") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = (byte *)".strtab";" (assignment_expression "pbVar11 = (byte *)".strtab"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)".strtab"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".strtab"" (" """) (string_content ".strtab") (" """)))) (; ";")) (do_statement "do {\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      } while (bVar13);" (do "do") (compound_statement "{\n        if (iVar8 == 0) break;\n        iVar8 = iVar8 + -1;\n        bVar14 = *pbVar3 < *pbVar11;\n        bVar13 = *pbVar3 == *pbVar11;\n        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar14 = *pbVar3 < *pbVar11;" (assignment_expression "bVar14 = *pbVar3 < *pbVar11" (identifier "bVar14") (= "=") (binary_expression "*pbVar3 < *pbVar11" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar13 = *pbVar3 == *pbVar11;" (assignment_expression "bVar13 = *pbVar3 == *pbVar11" (identifier "bVar13") (= "=") (binary_expression "*pbVar3 == *pbVar11" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1" (identifier "pbVar3") (= "=") (binary_expression "pbVar3 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar3 + (uint)bVar16 * -2" (identifier "pbVar3") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar16 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (; ";")) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (expression_statement "bVar13 = (!bVar14 && !bVar13) == bVar14;" (assignment_expression "bVar13 = (!bVar14 && !bVar13) == bVar14" (identifier "bVar13") (= "=") (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"))) (; ";")) (if_statement "if (!bVar13) {\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }" (if "if") (parenthesized_expression "(!bVar13)" (( "(") (unary_expression "!bVar13" (! "!") (identifier "bVar13")) () ")")) (compound_statement "{\n        iVar8 = 8;\n        pbVar11 = param_1;\n        pbVar12 = (byte *)".symtab";\n        do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);\n        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;\n      }" ({ "{") (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" (identifier "iVar8") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar11 = param_1;" (assignment_expression "pbVar11 = param_1" (identifier "pbVar11") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar12 = (byte *)".symtab";" (assignment_expression "pbVar12 = (byte *)".symtab"" (identifier "pbVar12") (= "=") (cast_expression "(byte *)".symtab"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".symtab"" (" """) (string_content ".symtab") (" """)))) (; ";")) (do_statement "do {\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        } while (bVar13);" (do "do") (compound_statement "{\n          pbVar3 = pbVar11;\n          if (iVar8 == 0) break;\n          iVar8 = iVar8 + -1;\n          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;\n          bVar15 = *pbVar11 < *pbVar12;\n          bVar13 = *pbVar11 == *pbVar12;\n          pbVar11 = pbVar3;\n          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;\n        }" ({ "{") (expression_statement "pbVar3 = pbVar11;" (assignment_expression "pbVar3 = pbVar11" (identifier "pbVar3") (= "=") (identifier "pbVar11")) (; ";")) (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1" (identifier "pbVar3") (= "=") (binary_expression "pbVar11 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar16 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar15 = *pbVar11 < *pbVar12;" (assignment_expression "bVar15 = *pbVar11 < *pbVar12" (identifier "bVar15") (= "=") (binary_expression "*pbVar11 < *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (< "<") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "bVar13 = *pbVar11 == *pbVar12;" (assignment_expression "bVar13 = *pbVar11 == *pbVar12" (identifier "bVar13") (= "=") (binary_expression "*pbVar11 == *pbVar12" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (== "==") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12")))) (; ";")) (expression_statement "pbVar11 = pbVar3;" (assignment_expression "pbVar11 = pbVar3" (identifier "pbVar11") (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + (uint)bVar16 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar16 * -2" (identifier "pbVar12") (+ "+") (binary_expression "(uint)bVar16 * -2" (cast_expression "(uint)bVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar16")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (; ";")) (if_statement "if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;" (if "if") (parenthesized_expression "((!bVar15 && !bVar13) != bVar15)" (( "(") (binary_expression "(!bVar15 && !bVar13) != bVar15" (parenthesized_expression "(!bVar15 && !bVar13)" (( "(") (binary_expression "!bVar15 && !bVar13" (unary_expression "!bVar15" (! "!") (identifier "bVar15")) (&& "&&") (unary_expression "!bVar13" (! "!") (identifier "bVar13"))) () ")")) (!= "!=") (identifier "bVar15")) () ")")) (goto_statement "goto LAB_00046f32;" (goto "goto") (statement_identifier "LAB_00046f32") (; ";"))) (} "}"))) (} "}"))) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar7 = (uint)(local_3c != 8);" (assignment_expression "uVar7 = (uint)(local_3c != 8)" (identifier "uVar7") (= "=") (call_expression "(uint)(local_3c != 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_3c != 8)" (( "(") (binary_expression "local_3c != 8" (identifier "local_3c") (!= "!=") (number_literal "8")) () ")")))) (; ";")) (labeled_statement "LAB_00046d00:\n    uVar10 = 0xc;" (statement_identifier "LAB_00046d00") (: ":") (expression_statement "uVar10 = 0xc;" (assignment_expression "uVar10 = 0xc" (identifier "uVar10") (= "=") (number_literal "0xc")) (; ";"))) (} "}")))) (expression_statement "uVar7 = uVar7 * 2;" (assignment_expression "uVar7 = uVar7 * 2" (identifier "uVar7") (= "=") (binary_expression "uVar7 * 2" (identifier "uVar7") (* "*") (number_literal "2"))) (; ";")) (labeled_statement "LAB_00046b86:\n  uVar7 = FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c);" (statement_identifier "LAB_00046b86") (: ":") (expression_statement "uVar7 = FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c);" (assignment_expression "uVar7 = FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c)" (identifier "uVar7") (= "=") (call_expression "FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c)" (identifier "FUN_00041280") (argument_list "(uVar7 | uVar5 | uVar10,param_4,local_3c)" (( "(") (binary_expression "uVar7 | uVar5 | uVar10" (binary_expression "uVar7 | uVar5" (identifier "uVar7") (| "|") (identifier "uVar5")) (| "|") (identifier "uVar10")) (, ",") (identifier "param_4") (, ",") (identifier "local_3c") () ")")))) (; ";"))) (if_statement "if (param_7 != 0) {\n    uVar7 = uVar7 | 0x20000;\n  }" (if "if") (parenthesized_expression "(param_7 != 0)" (( "(") (binary_expression "param_7 != 0" (identifier "param_7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar7 = uVar7 | 0x20000;\n  }" ({ "{") (expression_statement "uVar7 = uVar7 | 0x20000;" (assignment_expression "uVar7 = uVar7 | 0x20000" (identifier "uVar7") (= "=") (binary_expression "uVar7 | 0x20000" (identifier "uVar7") (| "|") (number_literal "0x20000"))) (; ";")) (} "}"))) (if_statement "if (iVar2 == 0) {\n    if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }\n    iVar2 = *(int *)(local_34 + 0x8c);\n    *(uint *)(iVar2 + 4) = local_3c;\n    *(uint *)(iVar2 + 8) = param_4;\n    *(undefined4 *)(iVar2 + 0x20) = param_3;\n    if (local_3c == 8) {\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    bfd_set_section_flags(DAT_00072e64,local_34,uVar7);\n    if ((uVar7 & 0x800000) != 0) {\n      *(int *)(local_34 + 0x78) = param_5;\n    }\n    *(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6;\n    iVar2 = FUN_000383f0(param_1);\n    if (iVar2 != 0) {\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }\n    uVar4 = FUN_000348f0(local_34);\n    FUN_00035090(uVar4);\n  }\n  else {\n    if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }\n    iVar2 = *(int *)(local_34 + 0x8c);\n    *(uint *)(iVar2 + 4) = local_3c;\n    *(uint *)(iVar2 + 8) = param_4;\n    *(undefined4 *)(iVar2 + 0x20) = param_3;\n    if (local_3c == 8) {\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    bfd_set_section_flags(DAT_00072e64,local_34,uVar7);\n    if ((uVar7 & 0x800000) != 0) {\n      *(int *)(local_34 + 0x78) = param_5;\n    }\n    *(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6;\n    iVar2 = FUN_000383f0(param_1);\n    if (iVar2 != 0) {\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }\n    uVar4 = FUN_000348f0(local_34);\n    FUN_00035090(uVar4);\n  }" ({ "{") (if_statement "if (local_3c == 0) {\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }" (if "if") (parenthesized_expression "(local_3c == 0)" (( "(") (binary_expression "local_3c == 0" (identifier "local_3c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_3c = bfd_elf_get_default_section_type(uVar7);\n    }" ({ "{") (expression_statement "local_3c = bfd_elf_get_default_section_type(uVar7);" (assignment_expression "local_3c = bfd_elf_get_default_section_type(uVar7)" (identifier "local_3c") (= "=") (call_expression "bfd_elf_get_default_section_type(uVar7)" (identifier "bfd_elf_get_default_section_type") (argument_list "(uVar7)" (( "(") (identifier "uVar7") () ")")))) (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)(local_34 + 0x8c);" (assignment_expression "iVar2 = *(int *)(local_34 + 0x8c)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(local_34 + 0x8c)" (* "*") (cast_expression "(int *)(local_34 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34 + 0x8c)" (( "(") (binary_expression "local_34 + 0x8c" (identifier "local_34") (+ "+") (number_literal "0x8c")) () ")"))))) (; ";")) (expression_statement "*(uint *)(iVar2 + 4) = local_3c;" (assignment_expression "*(uint *)(iVar2 + 4) = local_3c" (pointer_expression "*(uint *)(iVar2 + 4)" (* "*") (cast_expression "(uint *)(iVar2 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "local_3c")) (; ";")) (expression_statement "*(uint *)(iVar2 + 8) = param_4;" (assignment_expression "*(uint *)(iVar2 + 8) = param_4" (pointer_expression "*(uint *)(iVar2 + 8)" (* "*") (cast_expression "(uint *)(iVar2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 0x20) = param_3;" (assignment_expression "*(undefined4 *)(iVar2 + 0x20) = param_3" (pointer_expression "*(undefined4 *)(iVar2 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x20)" (( "(") (binary_expression "iVar2 + 0x20" (identifier "iVar2") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (if_statement "if (local_3c == 8) {\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }" (if "if") (parenthesized_expression "(local_3c == 8)" (( "(") (binary_expression "local_3c == 8" (identifier "local_3c") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);\n      *pbVar3 = *pbVar3 | 2;\n    }" ({ "{") (expression_statement "pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);" (assignment_expression "pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4)" (identifier "pbVar3") (= "=") (cast_expression "(byte *)(*(int *)(local_34 + 0x68) + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_34 + 0x68) + 4)" (( "(") (binary_expression "*(int *)(local_34 + 0x68) + 4" (pointer_expression "*(int *)(local_34 + 0x68)" (* "*") (cast_expression "(int *)(local_34 + 0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34 + 0x68)" (( "(") (binary_expression "local_34 + 0x68" (identifier "local_34") (+ "+") (number_literal "0x68")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "*pbVar3 = *pbVar3 | 2;" (assignment_expression "*pbVar3 = *pbVar3 | 2" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (= "=") (binary_expression "*pbVar3 | 2" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "bfd_set_section_flags(DAT_00072e64,local_34,uVar7);" (call_expression "bfd_set_section_flags(DAT_00072e64,local_34,uVar7)" (identifier "bfd_set_section_flags") (argument_list "(DAT_00072e64,local_34,uVar7)" (( "(") (identifier "DAT_00072e64") (, ",") (identifier "local_34") (, ",") (identifier "uVar7") () ")"))) (; ";")) (if_statement "if ((uVar7 & 0x800000) != 0) {\n      *(int *)(local_34 + 0x78) = param_5;\n    }" (if "if") (parenthesized_expression "((uVar7 & 0x800000) != 0)" (( "(") (binary_expression "(uVar7 & 0x800000) != 0" (parenthesized_expression "(uVar7 & 0x800000)" (( "(") (binary_expression "uVar7 & 0x800000" (identifier "uVar7") (& "&") (number_literal "0x800000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(local_34 + 0x78) = param_5;\n    }" ({ "{") (expression_statement "*(int *)(local_34 + 0x78) = param_5;" (assignment_expression "*(int *)(local_34 + 0x78) = param_5" (pointer_expression "*(int *)(local_34 + 0x78)" (* "*") (cast_expression "(int *)(local_34 + 0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34 + 0x78)" (( "(") (binary_expression "local_34 + 0x78" (identifier "local_34") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (} "}"))) (expression_statement "*(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6;" (assignment_expression "*(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6" (pointer_expression "*(byte **)(*(int *)(local_34 + 0x8c) + 0x70)" (* "*") (cast_expression "(byte **)(*(int *)(local_34 + 0x8c) + 0x70)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(local_34 + 0x8c) + 0x70)" (( "(") (binary_expression "*(int *)(local_34 + 0x8c) + 0x70" (pointer_expression "*(int *)(local_34 + 0x8c)" (* "*") (cast_expression "(int *)(local_34 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34 + 0x8c)" (( "(") (binary_expression "local_34 + 0x8c" (identifier "local_34") (+ "+") (number_literal "0x8c")) () ")")))) (+ "+") (number_literal "0x70")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "iVar2 = FUN_000383f0(param_1);" (assignment_expression "iVar2 = FUN_000383f0(param_1)" (identifier "iVar2") (= "=") (call_expression "FUN_000383f0(param_1)" (identifier "FUN_000383f0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));\n      return;\n    }" ({ "{") (expression_statement "FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));" (call_expression "FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98))" (identifier "FUN_00039840") (argument_list "(iVar2,*(undefined4 *)(local_34 + 0x98))" (( "(") (identifier "iVar2") (, ",") (pointer_expression "*(undefined4 *)(local_34 + 0x98)" (* "*") (cast_expression "(undefined4 *)(local_34 + 0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34 + 0x98)" (( "(") (binary_expression "local_34 + 0x98" (identifier "local_34") (+ "+") (number_literal "0x98")) () ")")))) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar4 = FUN_000348f0(local_34);" (assignment_expression "uVar4 = FUN_000348f0(local_34)" (identifier "uVar4") (= "=") (call_expression "FUN_000348f0(local_34)" (identifier "FUN_000348f0") (argument_list "(local_34)" (( "(") (identifier "local_34") () ")")))) (; ";")) (expression_statement "FUN_00035090(uVar4);" (call_expression "FUN_00035090(uVar4)" (identifier "FUN_00035090") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n  }" (else "else") (compound_statement "{\n    if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }\n  }" ({ "{") (if_statement "if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }" (if "if") (parenthesized_expression "((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c))" (( "(") (binary_expression "(local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)" (parenthesized_expression "(local_3c != 0)" (( "(") (binary_expression "local_3c != 0" (identifier "local_3c") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)" (( "(") (binary_expression "*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c" (pointer_expression "*(uint *)(*(int *)(iVar2 + 0x8c) + 4)" (* "*") (cast_expression "(uint *)(*(int *)(iVar2 + 0x8c) + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar2 + 0x8c) + 4)" (( "(") (binary_expression "*(int *)(iVar2 + 0x8c) + 4" (pointer_expression "*(int *)(iVar2 + 0x8c)" (* "*") (cast_expression "(int *)(iVar2 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x8c)" (( "(") (binary_expression "iVar2 + 0x8c" (identifier "iVar2") (+ "+") (number_literal "0x8c")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (identifier "local_3c")) () ")"))) () ")")) (compound_statement "{\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a660(uVar4,param_1);\n    }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"ignoring changed section type for %s",5);" (assignment_expression "uVar4 = dcgettext(0,"ignoring changed section type for %s",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"ignoring changed section type for %s",5)" (identifier "dcgettext") (argument_list "(0,"ignoring changed section type for %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""ignoring changed section type for %s"" (" """) (string_content "ignoring changed section type for %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002a660(uVar4,param_1);" (call_expression "FUN_0002a660(uVar4,param_1)" (identifier "FUN_0002a660") (argument_list "(uVar4,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_4 != 0) {\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }" (if "if") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }\n    }" ({ "{") (if_statement "if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }\n      else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" (if "if") (parenthesized_expression "(((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0)" (( "(") (binary_expression "((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0" (parenthesized_expression "((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b)" (( "(") (binary_expression "(*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b" (parenthesized_expression "(*(uint *)(iVar2 + 0x14) ^ uVar7)" (( "(") (binary_expression "*(uint *)(iVar2 + 0x14) ^ uVar7" (pointer_expression "*(uint *)(iVar2 + 0x14)" (* "*") (cast_expression "(uint *)(iVar2 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14)" (( "(") (binary_expression "iVar2 + 0x14" (identifier "iVar2") (+ "+") (number_literal "0x14")) () ")")))) (^ "^") (identifier "uVar7")) () ")")) (& "&") (number_literal "0x183841b")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;\n      }" ({ "{") (expression_statement "*(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;" (assignment_expression "*(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4" (pointer_expression "*(uint *)(*(int *)(local_34 + 0x8c) + 8)" (* "*") (cast_expression "(uint *)(*(int *)(local_34 + 0x8c) + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_34 + 0x8c) + 8)" (( "(") (binary_expression "*(int *)(local_34 + 0x8c) + 8" (pointer_expression "*(int *)(local_34 + 0x8c)" (* "*") (cast_expression "(int *)(local_34 + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_34 + 0x8c)" (( "(") (binary_expression "local_34 + 0x8c" (identifier "local_34") (+ "+") (number_literal "0x8c")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (} "}")) (else_clause "else {\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" (else "else") (compound_statement "{\n        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);" (assignment_expression "uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"ignoring changed section attributes for %s",5)" (identifier "dcgettext") (argument_list "(0,"ignoring changed section attributes for %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""ignoring changed section attributes for %s"" (" """) (string_content "ignoring changed section attributes for %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002a660(uVar4,param_1);" (call_expression "FUN_0002a660(uVar4,param_1)" (identifier "FUN_0002a660") (argument_list "(uVar4,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}")))) (if_statement "if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" (if "if") (parenthesized_expression "(((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5))" (( "(") (binary_expression "((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)" (parenthesized_expression "((uVar7 & 0x800000) != 0)" (( "(") (binary_expression "(uVar7 & 0x800000) != 0" (parenthesized_expression "(uVar7 & 0x800000)" (( "(") (binary_expression "uVar7 & 0x800000" (identifier "uVar7") (& "&") (number_literal "0x800000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar2 + 0x78) != param_5)" (( "(") (binary_expression "*(int *)(iVar2 + 0x78) != param_5" (pointer_expression "*(int *)(iVar2 + 0x78)" (* "*") (cast_expression "(int *)(iVar2 + 0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x78)" (( "(") (binary_expression "iVar2 + 0x78" (identifier "iVar2") (+ "+") (number_literal "0x78")) () ")")))) (!= "!=") (identifier "param_5")) () ")"))) () ")")) (compound_statement "{\n        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_0002a660(uVar4,param_1);\n      }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);" (assignment_expression "uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"ignoring changed section entity size for %s",5)" (identifier "dcgettext") (argument_list "(0,"ignoring changed section entity size for %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""ignoring changed section entity size for %s"" (" """) (string_content "ignoring changed section entity size for %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002a660(uVar4,param_1);" (call_expression "FUN_0002a660(uVar4,param_1)" (identifier "FUN_0002a660") (argument_list "(uVar4,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1
               (char *name,type_1 var_13,type_1 info,type_2 var_8,int var_33,char *var_15,
               int var_25,int var_1)

{
  void *pvVar1;
  type_3 *psVar2;
  type_4 var_4;
  type_5 *var_7;
  char *pcVar5;
  type_1 var_23;
  type_3 *psVar7;
  type_6 *var_29;
  type_1 var_11;
  int var_16;
  type_7 sVar11;
  type_1 var_24;
  type_5 *var_17;
  type_5 *var_18;
  bool var_19;
  bool var_20;
  bool var_21;
  type_5 bVar18;
  type_1 var_12;
  type_4 local_34;
  type_8 match;
  
  bVar18 = 0;
  var_12 = var_13;
  var_4 = now_seg;
  sVar11 = now_subseg;
  if (var_1 != 0) {
    psVar7 = (type_3 *)var_2(0x14);
    psVar2 = psVar7;
    psVar7->next = type_3;
    type_3 = psVar2;
    psVar7->prev_subseg = previous_subsection;
    var_4 = now_seg;
    psVar7->prev_seg = previous_section;
    psVar7->seg = var_4;
    sVar11 = now_subseg;
    psVar7->subseg = now_subseg;
  }
  match.var_15 = var_15;
  match.info = info;
  previous_subsection = sVar11;
  previous_section = var_4;
  var_4 = (type_4)var_3(stdoutput,name,get_section,&match);
  if (var_4 == (type_4)0x0) {
    local_34 = var_5(name,0);
  }
  else {
    var_6(var_4,0);
    local_34 = var_4;
  }
  var_7 = (type_5 *)(**(type_9 **)((int)stdoutput->xvec->backend_data + 0x58))(stdoutput,local_34);
  if (var_7 == (type_5 *)0x0) {
LAB_00046b14:
    if ((var_8 & 0x1000002) == 0x1000000) {
      pcVar5 = (char *)var_9(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,var_7);
                    /* WARNING: Subroutine does not return */
      var_10(pcVar5,name);
    }
    var_11 = var_8 >> 1 & 1;
    var_23 = var_8 << 0x13 & 0x1000000 |
            var_8 * 4 & 0x10 | var_11 | var_8 & 0x400 | var_8 << 0x13 & 0x800000 |
            (int)var_8 >> 0x10 & 0x8000U;
    var_11 = var_11 & var_12 != 8;
LAB_00046b74:
    var_24 = 4;
    if ((var_8 & 1) == 0) goto LAB_00046d00;
  }
  else {
    var_11 = *(type_1 *)(var_7 + 0xc);
    if ((var_13 == 0) || (var_13 == var_11)) {
LAB_00046b08:
      var_12 = var_11;
      if (var_4 != (type_4)0x0) goto LAB_00046b14;
    }
    else {
      if ((var_11 - 0xe < 3) || (var_4 != (type_4)0x0)) {
        pcVar5 = (char *)var_9(0,"ignoring incorrect section type for %s",5);
        var_14(pcVar5,name);
        var_11 = *(type_1 *)(var_7 + 0xc);
        goto LAB_00046b08;
      }
      if ((var_11 == 7) || (0x6fffffff < var_13)) {
      }
      else {
        pcVar5 = (char *)var_9(0,"setting incorrect section type for %s",5);
        var_14(pcVar5,name);
      }
    }
    var_11 = ~*(type_1 *)(var_7 + 0x10) & var_8;
    if ((var_11 & 0xfffff) == 0) {
LAB_00046ce0:
      var_8 = var_8 | *(type_1 *)(var_7 + 0x10);
      goto LAB_00046b14;
    }
    if (*(int *)(var_7 + 0xc) == 7) {
      if ((var_8 - 2 & 0xfffffffd) != 0) {
        if (*(int *)(var_7 + 8) == -2) goto LAB_00046cc6;
LAB_00046c82:
        var_7 = (type_5 *)var_15;
        if (var_15 == (char *)0x0) {
LAB_00046c8e:
          pcVar5 = (char *)var_9(0,"setting incorrect section attributes for %s",5);
          var_14(pcVar5,name);
        }
        goto LAB_00046b14;
      }
      goto LAB_00046ce0;
    }
    if (*(int *)(var_7 + 8) == -2) {
LAB_00046cc6:
      if ((name[*(int *)(var_7 + 4)] == '.') && ((var_11 & 0xffffffcf) == 0)) goto LAB_00046ce0;
    }
    var_19 = var_8 < 2;
    var_21 = var_8 == 2;
    if (!var_21) {
      var_19 = var_8 < 4;
      var_21 = var_8 == 4;
      if (!var_21) goto LAB_00046c82;
      var_16 = 0x10;
      var_17 = (type_5 *)name;
      var_18 = (type_5 *)".note.GNU-stack";
      do {
        var_7 = var_17;
        if (var_16 == 0) break;
        var_16 = var_16 + -1;
        var_7 = var_17 + (type_1)bVar18 * -2 + 1;
        var_19 = *var_17 < *var_18;
        var_21 = *var_17 == *var_18;
        var_17 = var_7;
        var_18 = var_18 + (type_1)bVar18 * -2 + 1;
      } while (var_21);
      if ((!var_19 && !var_21) == var_19) {
        var_23 = 0x10;
        var_24 = 0xc;
        var_11 = 0;
        goto LAB_00046b86;
      }
LAB_00046f32:
      if (var_15 == (char *)0x0) goto LAB_00046c8e;
      var_11 = var_8 >> 1 & 1;
      var_23 = var_8 << 0x13 & 0x1000000 |
              var_8 * 4 & 0x10 | var_11 | var_8 & 0x400 | var_8 << 0x13 & 0x800000 |
              (int)var_8 >> 0x10 & 0x8000U;
      var_11 = var_12 != 8 & var_11;
      goto LAB_00046b74;
    }
    var_16 = 8;
    var_7 = (type_5 *)name;
    var_17 = (type_5 *)".interp";
    do {
      if (var_16 == 0) break;
      var_16 = var_16 + -1;
      var_19 = *var_7 < *var_17;
      var_21 = *var_7 == *var_17;
      var_7 = var_7 + (type_1)bVar18 * -2 + 1;
      var_17 = var_17 + (type_1)bVar18 * -2 + 1;
    } while (var_21);
    var_20 = false;
    var_19 = (!var_19 && !var_21) == var_19;
    if (!var_19) {
      var_16 = 8;
      var_7 = (type_5 *)name;
      var_17 = (type_5 *)".strtab";
      do {
        if (var_16 == 0) break;
        var_16 = var_16 + -1;
        var_20 = *var_7 < *var_17;
        var_19 = *var_7 == *var_17;
        var_7 = var_7 + (type_1)bVar18 * -2 + 1;
        var_17 = var_17 + (type_1)bVar18 * -2 + 1;
      } while (var_19);
      var_21 = false;
      var_19 = (!var_20 && !var_19) == var_20;
      if (!var_19) {
        var_16 = 8;
        var_17 = (type_5 *)name;
        var_18 = (type_5 *)".symtab";
        do {
          var_7 = var_17;
          if (var_16 == 0) break;
          var_16 = var_16 + -1;
          var_7 = var_17 + (type_1)bVar18 * -2 + 1;
          var_21 = *var_17 < *var_18;
          var_19 = *var_17 == *var_18;
          var_17 = var_7;
          var_18 = var_18 + (type_1)bVar18 * -2 + 1;
        } while (var_19);
        if ((!var_21 && !var_19) != var_21) goto LAB_00046f32;
      }
    }
    var_23 = 1;
    var_11 = (type_1)(var_12 != 8);
LAB_00046d00:
    var_24 = 0xc;
  }
  var_11 = var_11 * 2;
LAB_00046b86:
  var_11 = var_22(var_11 | var_23 | var_24,var_8,var_12);
  if (var_25 != 0) {
    var_11 = var_11 | 0x20000;
  }
  if (var_4 == (type_4)0x0) {
    if (var_12 == 0) {
      var_12 = var_26(var_11);
    }
    pvVar1 = local_34->used_by_bfd;
    *(type_1 *)((int)pvVar1 + 4) = var_12;
    *(type_2 *)((int)pvVar1 + 8) = var_8;
    *(type_1 *)((int)pvVar1 + 0x20) = info;
    if (var_12 == 8) {
      var_7 = (type_5 *)((int)local_34->userdata + 4);
      *var_7 = *var_7 | 2;
    }
    var_27(stdoutput,local_34,var_11);
    if ((var_11 & 0x800000) != 0) {
      local_34->var_33 = var_33;
    }
    *(char **)((int)local_34->used_by_bfd + 0x70) = var_15;
    var_29 = var_28(name);
    if (var_29 != (type_6 *)0x0) {
      var_30(var_29,local_34->symbol);
      return;
    }
    var_29 = var_31(local_34);
    var_32(var_29);
  }
  else {
    if ((var_12 != 0) && (*(type_1 *)((int)var_4->used_by_bfd + 4) != var_12)) {
      pcVar5 = (char *)var_9(0,"ignoring changed section type for %s",5);
      var_14(pcVar5,name);
    }
    if (var_8 != 0) {
      if (((var_4->flags ^ var_11) & 0x183841b) == 0) {
        *(type_2 *)((int)local_34->used_by_bfd + 8) = var_8;
      }
      else {
        pcVar5 = (char *)var_9(0,"ignoring changed section attributes for %s",5);
        var_14(pcVar5,name);
      }
      if (((var_11 & 0x800000) != 0) && (var_4->var_33 != var_33)) {
        pcVar5 = (char *)var_9(0,"ignoring changed section entity size for %s",5);
        var_14(pcVar5,name);
      }
    }
  }
  return;
}


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

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

void MASKED(byte *param_1,uint param_2,undefined4 param_3,uint param_4,int param_5,
                 byte *param_6,int param_7,int param_8)

{
  undefined4 *puVar1;
  int iVar2;
  byte *pbVar3;
  undefined4 uVar4;
  uint uVar5;
  undefined4 *puVar6;
  uint uVar7;
  int iVar8;
  undefined4 uVar9;
  uint uVar10;
  byte *pbVar11;
  byte *pbVar12;
  bool bVar13;
  bool bVar14;
  bool bVar15;
  byte bVar16;
  uint local_3c;
  int local_34;
  byte *local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  bVar16 = 0;
  uStack_14 = 0x46a09;
  local_3c = param_2;
  uVar4 = DAT_00072cdc;
  uVar9 = DAT_00072dcc;
  if (param_8 != 0) {
    puVar6 = (undefined4 *)xmalloc(0x14);
    puVar1 = puVar6;
    *puVar6 = DAT_00072bd4;
    DAT_00072bd4 = puVar1;
    puVar6[4] = DAT_00072bd8;
    uVar4 = DAT_00072cdc;
    puVar6[2] = DAT_00072bdc;
    puVar6[1] = uVar4;
    uVar9 = DAT_00072dcc;
    puVar6[3] = DAT_00072dcc;
  }
  local_24 = param_6;
  local_20 = param_3;
  DAT_00072bd8 = uVar9;
  DAT_00072bdc = uVar4;
  iVar2 = bfd_get_section_by_name_if(DAT_00072e64,param_1,FUN_000448d0,&local_24);
  if (iVar2 == 0) {
    local_34 = FUN_00034870(param_1,0);
  }
  else {
    FUN_000348a0(iVar2,0);
    local_34 = iVar2;
  }
  pbVar3 = (byte *)(**(code **)(*(int *)(*(int *)(DAT_00072e64 + 4) + 0x1c0) + 0x58))
                             (DAT_00072e64,local_34);
  if (pbVar3 == (byte *)0x0) {
LAB_00046b14:
    if ((param_4 & 0x1000002) == 0x1000000) {
      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,pbVar3);
                    /* WARNING: Subroutine does not return */
      FUN_0002a7e0(uVar4,param_1);
    }
    uVar7 = param_4 >> 1 & 1;
    uVar5 = param_4 << 0x13 & 0x1000000 |
            param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |
            (int)param_4 >> 0x10 & 0x8000U;
    uVar7 = uVar7 & local_3c != 8;
LAB_00046b74:
    uVar10 = 4;
    if ((param_4 & 1) == 0) goto LAB_00046d00;
  }
  else {
    uVar7 = *(uint *)(pbVar3 + 0xc);
    if ((param_2 == 0) || (param_2 == uVar7)) {
LAB_00046b08:
      local_3c = uVar7;
      if (iVar2 != 0) goto LAB_00046b14;
    }
    else {
      if ((uVar7 - 0xe < 3) || (iVar2 != 0)) {
        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);
        FUN_0002a660(uVar4,param_1);
        uVar7 = *(uint *)(pbVar3 + 0xc);
        goto LAB_00046b08;
      }
      if ((uVar7 == 7) || (0x6fffffff < param_2)) {
      }
      else {
        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);
        FUN_0002a660(uVar4,param_1);
      }
    }
    uVar7 = ~*(uint *)(pbVar3 + 0x10) & param_4;
    if ((uVar7 & 0xfffff) == 0) {
LAB_00046ce0:
      param_4 = param_4 | *(uint *)(pbVar3 + 0x10);
      goto LAB_00046b14;
    }
    if (*(int *)(pbVar3 + 0xc) == 7) {
      if ((param_4 - 2 & 0xfffffffd) != 0) {
        if (*(int *)(pbVar3 + 8) == -2) goto LAB_00046cc6;
LAB_00046c82:
        pbVar3 = param_6;
        if (param_6 == (byte *)0x0) {
LAB_00046c8e:
          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);
          FUN_0002a660(uVar4,param_1);
        }
        goto LAB_00046b14;
      }
      goto LAB_00046ce0;
    }
    if (*(int *)(pbVar3 + 8) == -2) {
LAB_00046cc6:
      if ((param_1[*(int *)(pbVar3 + 4)] == 0x2e) && ((uVar7 & 0xffffffcf) == 0)) goto LAB_00046ce0;
    }
    bVar13 = param_4 < 2;
    bVar15 = param_4 == 2;
    if (!bVar15) {
      bVar13 = param_4 < 4;
      bVar15 = param_4 == 4;
      if (!bVar15) goto LAB_00046c82;
      iVar8 = 0x10;
      pbVar11 = param_1;
      pbVar12 = (byte *)".note.GNU-stack";
      do {
        pbVar3 = pbVar11;
        if (iVar8 == 0) break;
        iVar8 = iVar8 + -1;
        pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;
        bVar13 = *pbVar11 < *pbVar12;
        bVar15 = *pbVar11 == *pbVar12;
        pbVar11 = pbVar3;
        pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;
      } while (bVar15);
      if ((!bVar13 && !bVar15) == bVar13) {
        uVar5 = 0x10;
        uVar10 = 0xc;
        uVar7 = 0;
        goto LAB_00046b86;
      }
LAB_00046f32:
      if (param_6 == (byte *)0x0) goto LAB_00046c8e;
      uVar7 = param_4 >> 1 & 1;
      uVar5 = param_4 << 0x13 & 0x1000000 |
              param_4 * 4 & 0x10 | uVar7 | param_4 & 0x400 | param_4 << 0x13 & 0x800000 |
              (int)param_4 >> 0x10 & 0x8000U;
      uVar7 = local_3c != 8 & uVar7;
      goto LAB_00046b74;
    }
    iVar8 = 8;
    pbVar3 = param_1;
    pbVar11 = (byte *)".interp";
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      bVar13 = *pbVar3 < *pbVar11;
      bVar15 = *pbVar3 == *pbVar11;
      pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;
    } while (bVar15);
    bVar14 = false;
    bVar13 = (!bVar13 && !bVar15) == bVar13;
    if (!bVar13) {
      iVar8 = 8;
      pbVar3 = param_1;
      pbVar11 = (byte *)".strtab";
      do {
        if (iVar8 == 0) break;
        iVar8 = iVar8 + -1;
        bVar14 = *pbVar3 < *pbVar11;
        bVar13 = *pbVar3 == *pbVar11;
        pbVar3 = pbVar3 + (uint)bVar16 * -2 + 1;
        pbVar11 = pbVar11 + (uint)bVar16 * -2 + 1;
      } while (bVar13);
      bVar15 = false;
      bVar13 = (!bVar14 && !bVar13) == bVar14;
      if (!bVar13) {
        iVar8 = 8;
        pbVar11 = param_1;
        pbVar12 = (byte *)".symtab";
        do {
          pbVar3 = pbVar11;
          if (iVar8 == 0) break;
          iVar8 = iVar8 + -1;
          pbVar3 = pbVar11 + (uint)bVar16 * -2 + 1;
          bVar15 = *pbVar11 < *pbVar12;
          bVar13 = *pbVar11 == *pbVar12;
          pbVar11 = pbVar3;
          pbVar12 = pbVar12 + (uint)bVar16 * -2 + 1;
        } while (bVar13);
        if ((!bVar15 && !bVar13) != bVar15) goto LAB_00046f32;
      }
    }
    uVar5 = 1;
    uVar7 = (uint)(local_3c != 8);
LAB_00046d00:
    uVar10 = 0xc;
  }
  uVar7 = uVar7 * 2;
LAB_00046b86:
  uVar7 = FUN_00041280(uVar7 | uVar5 | uVar10,param_4,local_3c);
  if (param_7 != 0) {
    uVar7 = uVar7 | 0x20000;
  }
  if (iVar2 == 0) {
    if (local_3c == 0) {
      local_3c = bfd_elf_get_default_section_type(uVar7);
    }
    iVar2 = *(int *)(local_34 + 0x8c);
    *(uint *)(iVar2 + 4) = local_3c;
    *(uint *)(iVar2 + 8) = param_4;
    *(undefined4 *)(iVar2 + 0x20) = param_3;
    if (local_3c == 8) {
      pbVar3 = (byte *)(*(int *)(local_34 + 0x68) + 4);
      *pbVar3 = *pbVar3 | 2;
    }
    bfd_set_section_flags(DAT_00072e64,local_34,uVar7);
    if ((uVar7 & 0x800000) != 0) {
      *(int *)(local_34 + 0x78) = param_5;
    }
    *(byte **)(*(int *)(local_34 + 0x8c) + 0x70) = param_6;
    iVar2 = FUN_000383f0(param_1);
    if (iVar2 != 0) {
      FUN_00039840(iVar2,*(undefined4 *)(local_34 + 0x98));
      return;
    }
    uVar4 = FUN_000348f0(local_34);
    FUN_00035090(uVar4);
  }
  else {
    if ((local_3c != 0) && (*(uint *)(*(int *)(iVar2 + 0x8c) + 4) != local_3c)) {
      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);
      FUN_0002a660(uVar4,param_1);
    }
    if (param_4 != 0) {
      if (((*(uint *)(iVar2 + 0x14) ^ uVar7) & 0x183841b) == 0) {
        *(uint *)(*(int *)(local_34 + 0x8c) + 8) = param_4;
      }
      else {
        uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);
        FUN_0002a660(uVar4,param_1);
      }
      if (((uVar7 & 0x800000) != 0) && (*(int *)(iVar2 + 0x78) != param_5)) {
        uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);
        FUN_0002a660(uVar4,param_1);
      }
    }
  }
  return;
}

