
/* 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;
  int iVar4;
  char *pcVar5;
  section_stack *psVar6;
  symbolS *psVar7;
  uint uVar8;
  subsegT sVar9;
  uint uVar10;
  uint uVar11;
  byte *pbVar12;
  byte *pbVar13;
  bool bVar14;
  bool bVar15;
  bool bVar16;
  byte bVar17;
  uint local_54;
  uint local_50;
  uint local_48;
  segT local_44;
  uint local_3c;
  byte local_38;
  section_match match;
  
  bVar17 = 0;
  local_48 = type;
  paVar3 = now_seg;
  sVar9 = now_subseg;
  if (push != 0) {
    psVar6 = (section_stack *)xmalloc(0x14);
    psVar2 = psVar6;
    psVar6->next = section_stack;
    section_stack = psVar2;
    psVar6->prev_subseg = previous_subsection;
    paVar3 = now_seg;
    psVar6->prev_seg = previous_section;
    psVar6->seg = paVar3;
    sVar9 = now_subseg;
    psVar6->subseg = now_subseg;
  }
  match.group_name = group_name;
  match.info = info;
  previous_subsection = sVar9;
  previous_section = paVar3;
  paVar3 = (segT)bfd_get_section_by_name_if(stdoutput,name,get_section,&match);
  if (paVar3 == (segT)0x0) {
    local_44 = subseg_force_new(name,0);
  }
  else {
    subseg_set(paVar3,0);
    local_44 = paVar3;
  }
  local_50 = (uint)(attr >> 0x20);
  local_54 = (uint)attr;
  iVar4 = (**(code **)((int)stdoutput->xvec->backend_data + 0x68))(stdoutput,local_44);
  if (iVar4 == 0) {
LAB_00049408:
    local_54 = (uint)attr;
    if ((local_54 & 0x1000002) == 0x1000000) {
      pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);
                    /* WARNING: Subroutine does not return */
      as_fatal(pcVar5,name);
    }
    uVar10 = local_54 >> 1 & 1;
    uVar11 = local_54 >> 0x10 & 0x8000 |
             local_54 << 0x13 & 0x1000000 |
             local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar10 | (local_54 & 4) << 2;
    uVar10 = local_48 != 8 & uVar10;
LAB_0004947f:
    local_3c = local_54 & 1;
    uVar8 = 4;
    if (local_3c == 0) goto LAB_00049640;
  }
  else {
    uVar10 = *(uint *)(iVar4 + 0xc);
    if ((type == 0) || (type == uVar10)) {
LAB_00049400:
      local_48 = uVar10;
      if (paVar3 != (segT)0x0) goto LAB_00049408;
    }
    else {
      if ((uVar10 - 0xe < 3) || (paVar3 != (segT)0x0)) {
        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);
        as_warn(pcVar5,name);
        uVar10 = *(uint *)(iVar4 + 0xc);
        goto LAB_00049400;
      }
      if ((uVar10 == 7) || (0x6fffffff < type)) {
      }
      else {
        pcVar5 = (char *)dcgettext(0,"setting incorrect section type for %s",5);
        as_warn(pcVar5,name);
      }
    }
    uVar10 = ~*(uint *)(iVar4 + 0x10) & local_54;
    if ((uVar10 & 0xfffff) == 0) {
LAB_00049610:
      attr = CONCAT44(*(uint *)(iVar4 + 0x14) | local_50,*(uint *)(iVar4 + 0x10) | local_54);
      goto LAB_00049408;
    }
    if (*(int *)(iVar4 + 0xc) == 7) {
      if ((int)(attr - 2 >> 0x20) != 0 || (attr - 2 & 0xfffffffd) != 0) {
        if ((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) goto LAB_000495fd;
LAB_0004994d:
        if (group_name == (char *)0x0) {
LAB_00049959:
          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);
          as_warn(pcVar5,name);
        }
        goto LAB_00049408;
      }
      goto LAB_00049610;
    }
    if ((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) {
LAB_000495fd:
      if ((~*(uint *)(iVar4 + 0x14) & local_50) == 0 && (uVar10 & 0xffffffcf) == 0)
      goto LAB_00049610;
    }
    bVar14 = false;
    bVar16 = attr == 2;
    if (!bVar16) {
      bVar14 = false;
      bVar16 = attr == 4;
      if (attr != 4) goto LAB_0004994d;
      iVar4 = 0x10;
      pbVar12 = (byte *)name;
      pbVar13 = (byte *)".note.GNU-stack";
      do {
        if (iVar4 == 0) break;
        iVar4 = iVar4 + -1;
        bVar14 = *pbVar12 < *pbVar13;
        bVar16 = *pbVar12 == *pbVar13;
        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;
        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;
      } while (bVar16);
      if ((!bVar14 && !bVar16) == bVar14) {
        uVar11 = 0x10;
        uVar8 = 0xc;
        uVar10 = 0;
        goto LAB_00049495;
      }
LAB_000498a2:
      if (group_name == (char *)0x0) goto LAB_00049959;
      uVar10 = local_54 >> 1 & 1;
      uVar11 = local_54 >> 0x10 & 0x8000 |
               local_54 & 0x400 | local_54 * 4 & 0x10 | uVar10 | local_54 << 0x13 & 0x800000 |
               local_54 << 0x13 & 0x1000000;
      local_38 = (byte)uVar10;
      uVar10 = (uint)(local_48 != 8 & local_38);
      goto LAB_0004947f;
    }
    iVar4 = 8;
    pbVar12 = (byte *)name;
    pbVar13 = (byte *)".interp";
    do {
      if (iVar4 == 0) break;
      iVar4 = iVar4 + -1;
      bVar14 = *pbVar12 < *pbVar13;
      bVar16 = *pbVar12 == *pbVar13;
      pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;
      pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;
    } while (bVar16);
    bVar15 = false;
    bVar14 = (!bVar14 && !bVar16) == bVar14;
    if (!bVar14) {
      iVar4 = 8;
      pbVar12 = (byte *)name;
      pbVar13 = (byte *)".strtab";
      do {
        if (iVar4 == 0) break;
        iVar4 = iVar4 + -1;
        bVar15 = *pbVar12 < *pbVar13;
        bVar14 = *pbVar12 == *pbVar13;
        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;
        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;
      } while (bVar14);
      bVar16 = false;
      bVar14 = (!bVar15 && !bVar14) == bVar15;
      if (!bVar14) {
        iVar4 = 8;
        pbVar12 = (byte *)name;
        pbVar13 = (byte *)".symtab";
        do {
          if (iVar4 == 0) break;
          iVar4 = iVar4 + -1;
          bVar16 = *pbVar12 < *pbVar13;
          bVar14 = *pbVar12 == *pbVar13;
          pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;
          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;
        } while (bVar14);
        if ((!bVar16 && !bVar14) != bVar16) goto LAB_000498a2;
      }
    }
    uVar10 = (uint)(local_48 != 8);
    uVar11 = 1;
LAB_00049640:
    uVar8 = 0xc;
  }
  uVar10 = uVar10 * 2;
LAB_00049495:
  uVar10 = uVar11 | uVar8 | uVar10;
  if (linkonce != 0) {
    uVar10 = uVar10 | 0x20000;
  }
  if (paVar3 == (segT)0x0) {
    if (local_48 == 0) {
      local_48 = bfd_elf_get_default_section_type(uVar10);
    }
    pvVar1 = local_44->used_by_bfd;
    *(uint *)((int)pvVar1 + 4) = local_48;
    *(bfd_vma *)((int)pvVar1 + 8) = attr;
    *(uint *)((int)pvVar1 + 0x2c) = info;
    if (local_48 == 8) {
      pbVar12 = (byte *)((int)local_44->userdata + 4);
      *pbVar12 = *pbVar12 | 2;
    }
    bfd_set_section_flags(stdoutput,local_44,uVar10);
    if ((uVar10 & 0x800000) != 0) {
      local_44->entsize = entsize;
    }
    *(char **)((int)local_44->used_by_bfd + 0x84) = group_name;
    psVar7 = symbol_find(name);
    if (psVar7 != (symbolS *)0x0) {
      symbol_set_bfdsym(psVar7,local_44->symbol);
      return;
    }
    psVar7 = section_symbol(local_44);
    symbol_table_insert(psVar7);
  }
  else {
    if ((local_48 != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_48)) {
      pcVar5 = (char *)dcgettext(0,"ignoring changed section type for %s",5);
      as_warn(pcVar5,name);
    }
    if (attr != 0) {
      if (((paVar3->flags ^ uVar10) & 0x183841b) == 0) {
        *(bfd_vma *)((int)local_44->used_by_bfd + 8) = attr;
      }
      else {
        pcVar5 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);
        as_warn(pcVar5,name);
      }
      if (((uVar10 & 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_000492f0(byte *param_1,uint param_2,undefined4 param_3,uint param_4,uint param_5,
                 int param_6,int param_7,int param_8,int param_9)

{
  undefined4 *puVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  undefined4 *puVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  byte *pbVar10;
  byte *pbVar11;
  bool bVar12;
  bool bVar13;
  bool bVar14;
  byte bVar15;
  uint local_54;
  uint local_50;
  uint local_48;
  int local_44;
  uint local_3c;
  byte local_38;
  int local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  bVar15 = 0;
  uStack_14 = 0x492f9;
  local_48 = param_2;
  local_54 = param_4;
  local_50 = param_5;
  uVar4 = DAT_00074d7c;
  uVar7 = DAT_00074ea0;
  if (param_9 != 0) {
    puVar5 = (undefined4 *)xmalloc(0x14);
    puVar1 = puVar5;
    *puVar5 = DAT_00074c78;
    DAT_00074c78 = puVar1;
    puVar5[4] = DAT_00074c7c;
    uVar4 = DAT_00074d7c;
    puVar5[2] = DAT_00074c80;
    puVar5[1] = uVar4;
    uVar7 = DAT_00074ea0;
    puVar5[3] = DAT_00074ea0;
  }
  local_24 = param_7;
  local_20 = param_3;
  DAT_00074c7c = uVar7;
  DAT_00074c80 = uVar4;
  iVar2 = bfd_get_section_by_name_if(DAT_00074f44,param_1,FUN_00047130,&local_24);
  if (iVar2 == 0) {
    local_44 = FUN_00034da0(param_1,0);
  }
  else {
    FUN_00034dd0(iVar2,0);
    local_44 = iVar2;
  }
  iVar3 = (**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))(DAT_00074f44,local_44);
  if (iVar3 == 0) {
LAB_00049408:
    if ((local_54 & 0x1000002) == 0x1000000) {
      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);
                    /* WARNING: Subroutine does not return */
      FUN_0002a4d0(uVar4,param_1);
    }
    local_3c = local_54 & 1;
    uVar8 = local_54 >> 1 & 1;
    uVar9 = local_54 >> 0x10 & 0x8000 |
            local_54 << 0x13 & 0x1000000 |
            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2;
    uVar8 = local_48 != 8 & uVar8;
LAB_0004947f:
    uVar6 = 4;
    if (local_3c == 0) goto LAB_00049640;
  }
  else {
    uVar8 = *(uint *)(iVar3 + 0xc);
    if ((param_2 == 0) || (param_2 == uVar8)) {
LAB_00049400:
      local_48 = uVar8;
      if (iVar2 != 0) goto LAB_00049408;
    }
    else {
      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {
        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);
        FUN_0002a350(uVar4,param_1);
        uVar8 = *(uint *)(iVar3 + 0xc);
        goto LAB_00049400;
      }
      if ((uVar8 == 7) || (0x6fffffff < param_2)) {
      }
      else {
        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);
        FUN_0002a350(uVar4,param_1);
      }
    }
    uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;
    if ((uVar8 & 0xfffff) == 0) {
LAB_00049610:
      local_54 = *(uint *)(iVar3 + 0x10) | param_4;
      local_50 = *(uint *)(iVar3 + 0x14) | param_5;
      goto LAB_00049408;
    }
    if (*(int *)(iVar3 + 0xc) == 7) {
      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {
        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))
        goto LAB_000495fd;
LAB_0004994d:
        if (param_7 == 0) {
LAB_00049959:
          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);
          FUN_0002a350(uVar4,param_1);
        }
        goto LAB_00049408;
      }
      goto LAB_00049610;
    }
    if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {
LAB_000495fd:
      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;
    }
    bVar12 = false;
    bVar14 = param_4 == 2 && param_5 == 0;
    if (param_4 != 2 || param_5 != 0) {
      bVar12 = false;
      bVar14 = param_5 == 0 && param_4 == 4;
      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;
      iVar3 = 0x10;
      pbVar10 = param_1;
      pbVar11 = (byte *)".note.GNU-stack";
      do {
        if (iVar3 == 0) break;
        iVar3 = iVar3 + -1;
        bVar12 = *pbVar10 < *pbVar11;
        bVar14 = *pbVar10 == *pbVar11;
        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;
        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;
      } while (bVar14);
      if ((!bVar12 && !bVar14) == bVar12) {
        uVar9 = 0x10;
        uVar6 = 0xc;
        uVar8 = 0;
        goto LAB_00049495;
      }
LAB_000498a2:
      if (param_7 == 0) goto LAB_00049959;
      local_3c = param_4 & 1;
      uVar8 = param_4 >> 1 & 1;
      uVar9 = param_4 >> 0x10 & 0x8000 |
              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |
              param_4 << 0x13 & 0x1000000;
      local_38 = (byte)uVar8;
      uVar8 = (uint)(local_48 != 8 & local_38);
      goto LAB_0004947f;
    }
    iVar3 = 8;
    pbVar10 = param_1;
    pbVar11 = (byte *)".interp";
    do {
      if (iVar3 == 0) break;
      iVar3 = iVar3 + -1;
      bVar12 = *pbVar10 < *pbVar11;
      bVar14 = *pbVar10 == *pbVar11;
      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;
    } while (bVar14);
    bVar13 = false;
    bVar12 = (!bVar12 && !bVar14) == bVar12;
    if (!bVar12) {
      iVar3 = 8;
      pbVar10 = param_1;
      pbVar11 = (byte *)".strtab";
      do {
        if (iVar3 == 0) break;
        iVar3 = iVar3 + -1;
        bVar13 = *pbVar10 < *pbVar11;
        bVar12 = *pbVar10 == *pbVar11;
        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;
        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;
      } while (bVar12);
      bVar14 = false;
      bVar12 = (!bVar13 && !bVar12) == bVar13;
      if (!bVar12) {
        iVar3 = 8;
        pbVar10 = param_1;
        pbVar11 = (byte *)".symtab";
        do {
          if (iVar3 == 0) break;
          iVar3 = iVar3 + -1;
          bVar14 = *pbVar10 < *pbVar11;
          bVar12 = *pbVar10 == *pbVar11;
          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;
          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;
        } while (bVar12);
        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;
      }
    }
    uVar8 = (uint)(local_48 != 8);
    uVar9 = 1;
LAB_00049640:
    uVar6 = 0xc;
  }
  uVar8 = uVar8 * 2;
LAB_00049495:
  uVar8 = uVar9 | uVar6 | uVar8;
  if (param_8 != 0) {
    uVar8 = uVar8 | 0x20000;
  }
  if (iVar2 == 0) {
    if (local_48 == 0) {
      local_48 = bfd_elf_get_default_section_type(uVar8);
    }
    iVar2 = *(int *)(local_44 + 0xa4);
    *(uint *)(iVar2 + 4) = local_48;
    *(uint *)(iVar2 + 8) = local_54;
    *(uint *)(iVar2 + 0xc) = local_50;
    *(undefined4 *)(iVar2 + 0x2c) = param_3;
    if (local_48 == 8) {
      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);
      *pbVar10 = *pbVar10 | 2;
    }
    bfd_set_section_flags(DAT_00074f44,local_44,uVar8);
    if ((uVar8 & 0x800000) != 0) {
      *(int *)(local_44 + 0x90) = param_6;
    }
    *(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7;
    iVar2 = FUN_00038c10(param_1);
    if (iVar2 != 0) {
      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));
      return;
    }
    uVar4 = FUN_00034e20(local_44);
    FUN_00035600(uVar4);
  }
  else {
    if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {
      if (local_50 == 0 && local_54 == 0) {
        return;
      }
    }
    else {
      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);
      FUN_0002a350(uVar4,param_1);
      if (local_50 == 0 && local_54 == 0) {
        return;
      }
    }
    if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {
      iVar3 = *(int *)(local_44 + 0xa4);
      *(uint *)(iVar3 + 8) = local_54;
      *(uint *)(iVar3 + 0xc) = local_50;
    }
    else {
      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);
      FUN_0002a350(uVar4,param_1);
    }
    if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {
      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);
      FUN_0002a350(uVar4,param_1);
    }
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00015040
ADD EBX,0x22d07
SUB ESP,0x4c
MOV EAX,dword ptr [ESP + 0x6c]
MOV EDX,dword ptr [ESP + 0x70]
MOV ESI,dword ptr [ESP + 0x80]
MOV EDI,dword ptr [ESP + 0x64]
MOV dword ptr [ESP + 0x8],EAX
MOV dword ptr [ESP + 0xc],EDX
TEST ESI,ESI
JNZ 0x00049650
LEA EAX,[EBX + 0x8d7c]
MOV ECX,dword ptr [EAX]
LEA EAX,[EBX + 0x8ea0]
MOV EDX,dword ptr [EAX]
MOV EAX,dword ptr [ESP + 0x78]
MOV dword ptr [EBX + 0x8c80],ECX
MOV dword ptr [EBX + 0x8c7c],EDX
MOV dword ptr [ESP + 0x38],EAX
MOV EAX,dword ptr [ESP + 0x68]
MOV dword ptr [ESP + 0x3c],EAX
LEA EAX,[ESP + 0x38]
PUSH EAX
LEA EAX,[EBX + 0xfffdb130]
PUSH EAX
LEA EAX,[EBX + 0x8f44]
PUSH dword ptr [ESP + 0x68]
MOV dword ptr [ESP + 0x28],EAX
PUSH dword ptr [EAX]
CALL 0x00013050
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x000496a0
SUB ESP,0x8
PUSH 0x0
PUSH EAX
CALL 0x00034dd0
ADD ESP,0x10
MOV dword ptr [ESP + 0x18],EBP
MOV EAX,dword ptr [ESP + 0x1c]
SUB ESP,0x8
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EAX + 0x4]
MOV EDX,dword ptr [EDX + 0x1c0]
PUSH dword ptr [ESP + 0x20]
PUSH EAX
CALL dword ptr [EDX + 0x68]
MOV ESI,EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000496c0
MOV EAX,dword ptr [EAX + 0xc]
MOV dword ptr [ESP + 0x14],EAX
TEST EDI,EDI
JZ 0x00049400
CMP EDI,EAX
JZ 0x00049400
SUB EAX,0xe
CMP EAX,0x2
JBE 0x000493d7
TEST EBP,EBP
JZ 0x00049540
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe9e10]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131a0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x68]
PUSH EAX
CALL 0x0002a350
MOV EAX,dword ptr [ESI + 0xc]
MOV dword ptr [ESP + 0x24],EAX
ADD ESP,0x10
TEST EBP,EBP
JZ 0x00049560
MOV EAX,dword ptr [ESP + 0x8]
AND EAX,0x1000002
CMP EAX,0x1000000
JZ 0x000499bd
MOV ESI,dword ptr [ESP + 0x8]
MOV EDI,dword ptr [ESP + 0xc]
MOV ECX,ESI
MOV EDX,ESI
MOV EAX,ESI
SHRD ESI,EDI,0x1
SHL ECX,0x13
AND EDX,0x1
MOV EDI,ECX
MOV dword ptr [ESP + 0x20],EDX
MOV EDX,ESI
MOV ESI,EAX
AND EDX,0x1
AND EDI,0x800000
AND ESI,0x400
SHL EAX,0x2
OR EDI,EDX
AND EAX,0x10
AND ECX,0x1000000
OR ESI,EDI
MOV EDI,dword ptr [ESP + 0xc]
OR ESI,EAX
OR ECX,ESI
MOV ESI,dword ptr [ESP + 0x8]
SHRD ESI,EDI,0x10
AND ESI,0x8000
OR ESI,ECX
CMP dword ptr [ESP + 0x14],0x8
SETNZ AL
AND EAX,EDX
MOV EDX,dword ptr [ESP + 0x20]
MOV ECX,0x4
TEST EDX,EDX
JZ 0x00049640
AND EAX,0x1
ADD EAX,EAX
OR ESI,ECX
MOV EDI,dword ptr [ESP + 0x7c]
OR ESI,EAX
MOV EAX,ESI
OR EAX,0x20000
TEST EDI,EDI
CMOVNZ ESI,EAX
TEST EBP,EBP
JZ 0x000496d0
MOV ECX,dword ptr [ESP + 0x14]
TEST ECX,ECX
JZ 0x000494c8
MOV EAX,dword ptr [EBP + 0xa4]
CMP dword ptr [EAX + 0x4],ECX
JNZ 0x00049778
MOV EDX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0xc]
MOV EAX,EDX
MOV EDX,ECX
OR EDX,EAX
JZ 0x00049536
MOV EAX,dword ptr [EBP + 0x14]
XOR EAX,ESI
TEST EAX,0x183841b
JNZ 0x000497e8
MOV EAX,dword ptr [ESP + 0x18]
MOV EDX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0xa4]
MOV dword ptr [EAX + 0x8],EDX
MOV dword ptr [EAX + 0xc],ECX
AND ESI,0x800000
JZ 0x00049536
MOV EAX,dword ptr [ESP + 0x74]
CMP dword ptr [EBP + 0x90],EAX
JZ 0x00049536
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe9ee8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131a0
POP ESI
POP EDI
PUSH dword ptr [ESP + 0x68]
PUSH EAX
CALL 0x0002a350
ADD ESP,0x10
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP dword ptr [ESP + 0x14],0x7
JZ 0x00049553
CMP EDI,0x6fffffff
JBE 0x00049980
MOV dword ptr [ESP + 0x14],EDI
LEA ESI,[ESI]
NOP
MOV EDI,dword ptr [ESI + 0x10]
MOV ECX,dword ptr [ESI + 0x14]
MOV EDX,EDI
MOV EAX,ECX
NOT EDX
AND EDX,dword ptr [ESP + 0x8]
NOT EAX
AND EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x20],EDX
AND EDX,0xfffff
MOV dword ptr [ESP + 0x24],EAX
JZ 0x00049610
CMP dword ptr [ESI + 0xc],0x7
JZ 0x00049920
CMP dword ptr [ESI + 0x8],-0x2
JZ 0x000495f0
MOV ESI,dword ptr [ESP + 0x8]
MOV EDI,dword ptr [ESP + 0xc]
MOV EDX,ESI
MOV EAX,EDI
XOR EDX,0x2
OR EDX,EDI
JZ 0x00049848
MOV EDX,dword ptr [ESP + 0x8]
XOR EDX,0x4
OR EAX,EDX
JNZ 0x0004994d
MOV ESI,dword ptr [ESP + 0x60]
MOV ECX,0x10
LEA EDI,[EBX + 0xfffe13ef]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
MOVSX EAX,AL
TEST EAX,EAX
JNZ 0x000498a2
MOV ESI,0x10
MOV ECX,0xc
JMP 0x00049495
MOV ESI,dword ptr [ESI + 0x4]
MOV EAX,dword ptr [ESP + 0x60]
CMP byte ptr [EAX + ESI*0x1],0x2e
JNZ 0x0004959a
MOV EDX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [ESP + 0x24]
AND EDX,0xffffffcf
OR EAX,EDX
JNZ 0x0004959a
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [ESP + 0xc]
OR EDI,EAX
OR ECX,EDX
MOV dword ptr [ESP + 0x8],EDI
MOV dword ptr [ESP + 0xc],ECX
JMP 0x00049408
CMP dword ptr [ESP + 0x14],0x8
MOV ESI,0x1
SETNZ AL
LEA ESI,[ESI]
MOV ECX,0xc
JMP 0x00049490
SUB ESP,0xc
PUSH 0x14
CALL 0x000137c0
MOV EDX,dword ptr [EBX + 0x8c78]
MOV ESI,dword ptr [EBX + 0x8c7c]
ADD ESP,0x10
MOV dword ptr [EBX + 0x8c78],EAX
MOV dword ptr [EAX],EDX
LEA EDX,[EBX + 0x8d7c]
MOV dword ptr [EAX + 0x10],ESI
MOV ECX,dword ptr [EDX]
MOV EDX,dword ptr [EBX + 0x8c80]
MOV dword ptr [EAX + 0x8],EDX
LEA EDX,[EBX + 0x8ea0]
MOV dword ptr [EAX + 0x4],ECX
MOV EDX,dword ptr [EDX]
MOV dword ptr [EAX + 0xc],EDX
JMP 0x00049335
SUB ESP,0x8
PUSH 0x0
PUSH dword ptr [ESP + 0x6c]
CALL 0x00034da0
MOV dword ptr [ESP + 0x28],EAX
ADD ESP,0x10
JMP 0x00049391
MOV dword ptr [ESP + 0x14],EDI
JMP 0x00049408
MOV ECX,dword ptr [ESP + 0x14]
TEST ECX,ECX
JZ 0x00049810
MOV EAX,dword ptr [ESP + 0x18]
MOV ECX,dword ptr [ESP + 0x14]
MOV EDI,dword ptr [ESP + 0x8]
MOV EBP,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0xa4]
MOV EDX,dword ptr [ESP + 0x68]
MOV dword ptr [EAX + 0x4],ECX
MOV dword ptr [EAX + 0x8],EDI
MOV dword ptr [EAX + 0xc],EBP
MOV dword ptr [EAX + 0x2c],EDX
CMP ECX,0x8
JZ 0x000497d0
SUB ESP,0x4
PUSH ESI
MOV EDI,dword ptr [ESP + 0x20]
PUSH EDI
MOV EAX,dword ptr [ESP + 0x28]
PUSH dword ptr [EAX]
CALL 0x00013710
ADD ESP,0x10
AND ESI,0x800000
JNZ 0x000497b8
MOV EDI,dword ptr [ESP + 0x18]
MOV ECX,dword ptr [ESP + 0x78]
SUB ESP,0xc
MOV EAX,dword ptr [EDI + 0xa4]
MOV dword ptr [EAX + 0x84],ECX
PUSH dword ptr [ESP + 0x6c]
CALL 0x00038c10
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00049828
SUB ESP,0x8
PUSH dword ptr [EDI + 0xb0]
PUSH EAX
CALL 0x0003a110
ADD ESP,0x10
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe9e94]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131a0
POP EDI
POP EDX
PUSH dword ptr [ESP + 0x68]
PUSH EAX
CALL 0x0002a350
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
MOV ECX,dword ptr [ESP + 0xc]
MOV EAX,EDX
MOV EDX,ECX
OR EDX,EAX
JZ 0x00049536
JMP 0x000494d8
MOV EAX,dword ptr [ESP + 0x74]
MOV dword ptr [EDI + 0x90],EAX
JMP 0x0004972e
MOV EAX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [EAX + 0x80]
OR byte ptr [EAX + 0x4],0x2
JMP 0x0004970b
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe9ebc]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131a0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x68]
PUSH EAX
CALL 0x0002a350
ADD ESP,0x10
JMP 0x00049500
SUB ESP,0xc
PUSH ESI
CALL 0x000133a0
MOV dword ptr [ESP + 0x24],EAX
ADD ESP,0x10
JMP 0x000496dc
SUB ESP,0xc
PUSH dword ptr [ESP + 0x24]
CALL 0x00034e20
MOV dword ptr [ESP],EAX
CALL 0x00035600
ADD ESP,0x10
JMP 0x00049536
MOV ESI,dword ptr [ESP + 0x60]
MOV ECX,0x8
LEA EDI,[EBX + 0xfffe9912]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00049630
MOV ESI,dword ptr [ESP + 0x60]
MOV ECX,0x8
LEA EDI,[EBX + 0xfffe991a]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00049630
MOV ESI,dword ptr [ESP + 0x60]
MOV ECX,0x8
LEA EDI,[EBX + 0xfffe9922]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00049630
MOV ECX,dword ptr [ESP + 0x78]
TEST ECX,ECX
JZ 0x00049959
MOV ESI,dword ptr [ESP + 0x8]
MOV EDI,dword ptr [ESP + 0xc]
MOV ECX,ESI
MOV EAX,ESI
MOV EDX,ESI
SHRD ESI,EDI,0x1
AND ECX,0x1
MOV EDI,ESI
SHL EDX,0x13
MOV ESI,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x20],ECX
LEA ECX,[EAX*0x4 + 0x0]
AND EDI,0x1
AND EAX,0x400
AND ECX,0x10
MOV dword ptr [ESP + 0x24],EDI
OR ECX,EDI
MOV EDI,dword ptr [ESP + 0xc]
OR EAX,ECX
MOV ECX,EDX
AND EDX,0x1000000
AND ECX,0x800000
SHRD ESI,EDI,0x10
OR EAX,ECX
AND ESI,0x8000
OR EAX,EDX
OR ESI,EAX
CMP dword ptr [ESP + 0x14],0x8
SETNZ AL
AND AL,byte ptr [ESP + 0x24]
JMP 0x0004947f
MOV EAX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [ESP + 0xc]
ADD EAX,-0x2
ADC EDX,-0x1
MOV dword ptr [ESP + 0x28],EAX
MOV dword ptr [ESP + 0x2c],EDX
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x2c]
AND EDX,0xfffffffd
OR EAX,EDX
JZ 0x00049610
CMP dword ptr [ESI + 0x8],-0x2
JZ 0x000499ab
MOV EAX,dword ptr [ESP + 0x78]
TEST EAX,EAX
JNZ 0x00049408
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe9e38]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131a0
POP ESI
POP EDI
PUSH dword ptr [ESP + 0x68]
PUSH EAX
CALL 0x0002a350
ADD ESP,0x10
JMP 0x00049408
SUB ESP,0x4
LEA EAX,[EBX + 0xfffe9de8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131a0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x68]
PUSH EAX
CALL 0x0002a350
ADD ESP,0x10
MOV dword ptr [ESP + 0x14],EDI
JMP 0x00049560
MOV ESI,dword ptr [ESI + 0x4]
MOV EAX,dword ptr [ESP + 0x60]
CMP byte ptr [EAX + ESI*0x1],0x2e
JNZ 0x0004994d
JMP 0x000495fd
PUSH EAX
LEA EAX,[EBX + 0xfffe9e64]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000131a0
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x68]
PUSH EAX
CALL 0x0002a4d0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_000492f0(byte *param_1,uint param_2,undefined4 param_3,uint param_4,uint param_5,\n                 int param_6,int param_7,int param_8,int param_9)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  uint local_54;\n  uint local_50;\n  uint local_48;\n  int local_44;\n  uint local_3c;\n  byte local_38;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0x492f9;\n  local_48 = param_2;\n  local_54 = param_4;\n  local_50 = param_5;\n  uVar4 = DAT_00074d7c;\n  uVar7 = DAT_00074ea0;\n  if (param_9 != 0) {\n    puVar5 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar5;\n    *puVar5 = DAT_00074c78;\n    DAT_00074c78 = puVar1;\n    puVar5[4] = DAT_00074c7c;\n    uVar4 = DAT_00074d7c;\n    puVar5[2] = DAT_00074c80;\n    puVar5[1] = uVar4;\n    uVar7 = DAT_00074ea0;\n    puVar5[3] = DAT_00074ea0;\n  }\n  local_24 = param_7;\n  local_20 = param_3;\n  DAT_00074c7c = uVar7;\n  DAT_00074c80 = uVar4;\n  iVar2 = bfd_get_section_by_name_if(DAT_00074f44,param_1,FUN_00047130,&local_24);\n  if (iVar2 == 0) {\n    local_44 = FUN_00034da0(param_1,0);\n  }\n  else {\n    FUN_00034dd0(iVar2,0);\n    local_44 = iVar2;\n  }\n  iVar3 = (**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))(DAT_00074f44,local_44);\n  if (iVar3 == 0) {\nLAB_00049408:\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a4d0(uVar4,param_1);\n    }\n    local_3c = local_54 & 1;\n    uVar8 = local_54 >> 1 & 1;\n    uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2;\n    uVar8 = local_48 != 8 & uVar8;\nLAB_0004947f:\n    uVar6 = 4;\n    if (local_3c == 0) goto LAB_00049640;\n  }\n  else {\n    uVar8 = *(uint *)(iVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }\n    uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }\n    bVar12 = false;\n    bVar14 = param_4 == 2 && param_5 == 0;\n    if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar3 = 8;\n    pbVar10 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    bVar13 = false;\n    bVar12 = (!bVar12 && !bVar14) == bVar12;\n    if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }\n    uVar8 = (uint)(local_48 != 8);\n    uVar9 = 1;\nLAB_00049640:\n    uVar6 = 0xc;\n  }\n  uVar8 = uVar8 * 2;\nLAB_00049495:\n  uVar8 = uVar9 | uVar6 | uVar8;\n  if (param_8 != 0) {\n    uVar8 = uVar8 | 0x20000;\n  }\n  if (iVar2 == 0) {\n    if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }\n    iVar2 = *(int *)(local_44 + 0xa4);\n    *(uint *)(iVar2 + 4) = local_48;\n    *(uint *)(iVar2 + 8) = local_54;\n    *(uint *)(iVar2 + 0xc) = local_50;\n    *(undefined4 *)(iVar2 + 0x2c) = param_3;\n    if (local_48 == 8) {\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }\n    bfd_set_section_flags(DAT_00074f44,local_44,uVar8);\n    if ((uVar8 & 0x800000) != 0) {\n      *(int *)(local_44 + 0x90) = param_6;\n    }\n    *(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7;\n    iVar2 = FUN_00038c10(param_1);\n    if (iVar2 != 0) {\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }\n    uVar4 = FUN_00034e20(local_44);\n    FUN_00035600(uVar4);\n  }\n  else {\n    if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n    if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_000492f0(byte *param_1,uint param_2,undefined4 param_3,uint param_4,uint param_5,\n                 int param_6,int param_7,int param_8,int param_9)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  uint local_54;\n  uint local_50;\n  uint local_48;\n  int local_44;\n  uint local_3c;\n  byte local_38;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0x492f9;\n  local_48 = param_2;\n  local_54 = param_4;\n  local_50 = param_5;\n  uVar4 = DAT_00074d7c;\n  uVar7 = DAT_00074ea0;\n  if (param_9 != 0) {\n    puVar5 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar5;\n    *puVar5 = DAT_00074c78;\n    DAT_00074c78 = puVar1;\n    puVar5[4] = DAT_00074c7c;\n    uVar4 = DAT_00074d7c;\n    puVar5[2] = DAT_00074c80;\n    puVar5[1] = uVar4;\n    uVar7 = DAT_00074ea0;\n    puVar5[3] = DAT_00074ea0;\n  }\n  local_24 = param_7;\n  local_20 = param_3;\n  DAT_00074c7c = uVar7;\n  DAT_00074c80 = uVar4;\n  iVar2 = bfd_get_section_by_name_if(DAT_00074f44,param_1,FUN_00047130,&local_24);\n  if (iVar2 == 0) {\n    local_44 = FUN_00034da0(param_1,0);\n  }\n  else {\n    FUN_00034dd0(iVar2,0);\n    local_44 = iVar2;\n  }\n  iVar3 = (**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))(DAT_00074f44,local_44);\n  if (iVar3 == 0) {\nLAB_00049408:\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a4d0(uVar4,param_1);\n    }\n    local_3c = local_54 & 1;\n    uVar8 = local_54 >> 1 & 1;\n    uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2;\n    uVar8 = local_48 != 8 & uVar8;\nLAB_0004947f:\n    uVar6 = 4;\n    if (local_3c == 0) goto LAB_00049640;\n  }\n  else {\n    uVar8 = *(uint *)(iVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }\n    uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }\n    bVar12 = false;\n    bVar14 = param_4 == 2 && param_5 == 0;\n    if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar3 = 8;\n    pbVar10 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    bVar13 = false;\n    bVar12 = (!bVar12 && !bVar14) == bVar12;\n    if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }\n    uVar8 = (uint)(local_48 != 8);\n    uVar9 = 1;\nLAB_00049640:\n    uVar6 = 0xc;\n  }\n  uVar8 = uVar8 * 2;\nLAB_00049495:\n  uVar8 = uVar9 | uVar6 | uVar8;\n  if (param_8 != 0) {\n    uVar8 = uVar8 | 0x20000;\n  }\n  if (iVar2 == 0) {\n    if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }\n    iVar2 = *(int *)(local_44 + 0xa4);\n    *(uint *)(iVar2 + 4) = local_48;\n    *(uint *)(iVar2 + 8) = local_54;\n    *(uint *)(iVar2 + 0xc) = local_50;\n    *(undefined4 *)(iVar2 + 0x2c) = param_3;\n    if (local_48 == 8) {\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }\n    bfd_set_section_flags(DAT_00074f44,local_44,uVar8);\n    if ((uVar8 & 0x800000) != 0) {\n      *(int *)(local_44 + 0x90) = param_6;\n    }\n    *(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7;\n    iVar2 = FUN_00038c10(param_1);\n    if (iVar2 != 0) {\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }\n    uVar4 = FUN_00034e20(local_44);\n    FUN_00035600(uVar4);\n  }\n  else {\n    if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n    if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000492f0(byte *param_1,uint param_2,undefined4 param_3,uint param_4,uint param_5,\n                 int param_6,int param_7,int param_8,int param_9)" identifier (parameter_list "(byte *param_1,uint param_2,undefined4 param_3,uint param_4,uint param_5,\n                 int param_6,int param_7,int param_8,int param_9)" ( (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 "uint param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "int param_9" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  uint local_54;\n  uint local_50;\n  uint local_48;\n  int local_44;\n  uint local_3c;\n  byte local_38;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0x492f9;\n  local_48 = param_2;\n  local_54 = param_4;\n  local_50 = param_5;\n  uVar4 = DAT_00074d7c;\n  uVar7 = DAT_00074ea0;\n  if (param_9 != 0) {\n    puVar5 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar5;\n    *puVar5 = DAT_00074c78;\n    DAT_00074c78 = puVar1;\n    puVar5[4] = DAT_00074c7c;\n    uVar4 = DAT_00074d7c;\n    puVar5[2] = DAT_00074c80;\n    puVar5[1] = uVar4;\n    uVar7 = DAT_00074ea0;\n    puVar5[3] = DAT_00074ea0;\n  }\n  local_24 = param_7;\n  local_20 = param_3;\n  DAT_00074c7c = uVar7;\n  DAT_00074c80 = uVar4;\n  iVar2 = bfd_get_section_by_name_if(DAT_00074f44,param_1,FUN_00047130,&local_24);\n  if (iVar2 == 0) {\n    local_44 = FUN_00034da0(param_1,0);\n  }\n  else {\n    FUN_00034dd0(iVar2,0);\n    local_44 = iVar2;\n  }\n  iVar3 = (**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))(DAT_00074f44,local_44);\n  if (iVar3 == 0) {\nLAB_00049408:\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a4d0(uVar4,param_1);\n    }\n    local_3c = local_54 & 1;\n    uVar8 = local_54 >> 1 & 1;\n    uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2;\n    uVar8 = local_48 != 8 & uVar8;\nLAB_0004947f:\n    uVar6 = 4;\n    if (local_3c == 0) goto LAB_00049640;\n  }\n  else {\n    uVar8 = *(uint *)(iVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }\n    uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }\n    bVar12 = false;\n    bVar14 = param_4 == 2 && param_5 == 0;\n    if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar3 = 8;\n    pbVar10 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    bVar13 = false;\n    bVar12 = (!bVar12 && !bVar14) == bVar12;\n    if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }\n    uVar8 = (uint)(local_48 != 8);\n    uVar9 = 1;\nLAB_00049640:\n    uVar6 = 0xc;\n  }\n  uVar8 = uVar8 * 2;\nLAB_00049495:\n  uVar8 = uVar9 | uVar6 | uVar8;\n  if (param_8 != 0) {\n    uVar8 = uVar8 | 0x20000;\n  }\n  if (iVar2 == 0) {\n    if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }\n    iVar2 = *(int *)(local_44 + 0xa4);\n    *(uint *)(iVar2 + 4) = local_48;\n    *(uint *)(iVar2 + 8) = local_54;\n    *(uint *)(iVar2 + 0xc) = local_50;\n    *(undefined4 *)(iVar2 + 0x2c) = param_3;\n    if (local_48 == 8) {\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }\n    bfd_set_section_flags(DAT_00074f44,local_44,uVar8);\n    if ((uVar8 & 0x800000) != 0) {\n      *(int *)(local_44 + 0x90) = param_6;\n    }\n    *(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7;\n    iVar2 = FUN_00038c10(param_1);\n    if (iVar2 != 0) {\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }\n    uVar4 = FUN_00034e20(local_44);\n    FUN_00035600(uVar4);\n  }\n  else {\n    if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n    if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n  }\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "byte local_38;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x492f9;" (assignment_expression "uStack_14 = 0x492f9" identifier = number_literal) ;) (expression_statement "local_48 = param_2;" (assignment_expression "local_48 = param_2" identifier = identifier) ;) (expression_statement "local_54 = param_4;" (assignment_expression "local_54 = param_4" identifier = identifier) ;) (expression_statement "local_50 = param_5;" (assignment_expression "local_50 = param_5" identifier = identifier) ;) (expression_statement "uVar4 = DAT_00074d7c;" (assignment_expression "uVar4 = DAT_00074d7c" identifier = identifier) ;) (expression_statement "uVar7 = DAT_00074ea0;" (assignment_expression "uVar7 = DAT_00074ea0" identifier = identifier) ;) (if_statement "if (param_9 != 0) {\n    puVar5 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar5;\n    *puVar5 = DAT_00074c78;\n    DAT_00074c78 = puVar1;\n    puVar5[4] = DAT_00074c7c;\n    uVar4 = DAT_00074d7c;\n    puVar5[2] = DAT_00074c80;\n    puVar5[1] = uVar4;\n    uVar7 = DAT_00074ea0;\n    puVar5[3] = DAT_00074ea0;\n  }" if (parenthesized_expression "(param_9 != 0)" ( (binary_expression "param_9 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar5 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar5;\n    *puVar5 = DAT_00074c78;\n    DAT_00074c78 = puVar1;\n    puVar5[4] = DAT_00074c7c;\n    uVar4 = DAT_00074d7c;\n    puVar5[2] = DAT_00074c80;\n    puVar5[1] = uVar4;\n    uVar7 = DAT_00074ea0;\n    puVar5[3] = DAT_00074ea0;\n  }" { (expression_statement "puVar5 = (undefined4 *)xmalloc(0x14);" (assignment_expression "puVar5 = (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 = puVar5;" (assignment_expression "puVar1 = puVar5" identifier = identifier) ;) (expression_statement "*puVar5 = DAT_00074c78;" (assignment_expression "*puVar5 = DAT_00074c78" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "DAT_00074c78 = puVar1;" (assignment_expression "DAT_00074c78 = puVar1" identifier = identifier) ;) (expression_statement "puVar5[4] = DAT_00074c7c;" (assignment_expression "puVar5[4] = DAT_00074c7c" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = DAT_00074d7c;" (assignment_expression "uVar4 = DAT_00074d7c" identifier = identifier) ;) (expression_statement "puVar5[2] = DAT_00074c80;" (assignment_expression "puVar5[2] = DAT_00074c80" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[1] = uVar4;" (assignment_expression "puVar5[1] = uVar4" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar7 = DAT_00074ea0;" (assignment_expression "uVar7 = DAT_00074ea0" identifier = identifier) ;) (expression_statement "puVar5[3] = DAT_00074ea0;" (assignment_expression "puVar5[3] = DAT_00074ea0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "local_24 = param_7;" (assignment_expression "local_24 = param_7" identifier = identifier) ;) (expression_statement "local_20 = param_3;" (assignment_expression "local_20 = param_3" identifier = identifier) ;) (expression_statement "DAT_00074c7c = uVar7;" (assignment_expression "DAT_00074c7c = uVar7" identifier = identifier) ;) (expression_statement "DAT_00074c80 = uVar4;" (assignment_expression "DAT_00074c80 = uVar4" identifier = identifier) ;) (expression_statement "iVar2 = bfd_get_section_by_name_if(DAT_00074f44,param_1,FUN_00047130,&local_24);" (assignment_expression "iVar2 = bfd_get_section_by_name_if(DAT_00074f44,param_1,FUN_00047130,&local_24)" identifier = (call_expression "bfd_get_section_by_name_if(DAT_00074f44,param_1,FUN_00047130,&local_24)" identifier (argument_list "(DAT_00074f44,param_1,FUN_00047130,&local_24)" ( identifier , identifier , identifier , (pointer_expression "&local_24" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n    local_44 = FUN_00034da0(param_1,0);\n  }\n  else {\n    FUN_00034dd0(iVar2,0);\n    local_44 = iVar2;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    local_44 = FUN_00034da0(param_1,0);\n  }" { (expression_statement "local_44 = FUN_00034da0(param_1,0);" (assignment_expression "local_44 = FUN_00034da0(param_1,0)" identifier = (call_expression "FUN_00034da0(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n    FUN_00034dd0(iVar2,0);\n    local_44 = iVar2;\n  }" else (compound_statement "{\n    FUN_00034dd0(iVar2,0);\n    local_44 = iVar2;\n  }" { (expression_statement "FUN_00034dd0(iVar2,0);" (call_expression "FUN_00034dd0(iVar2,0)" identifier (argument_list "(iVar2,0)" ( identifier , number_literal ))) ;) (expression_statement "local_44 = iVar2;" (assignment_expression "local_44 = iVar2" identifier = identifier) ;) }))) (expression_statement "iVar3 = (**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))(DAT_00074f44,local_44);" (assignment_expression "iVar3 = (**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))(DAT_00074f44,local_44)" identifier = (call_expression "(**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))(DAT_00074f44,local_44)" (parenthesized_expression "(**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))" ( (pointer_expression "**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68)" * (pointer_expression "*(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68)" * (cast_expression "(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68)" ( (binary_expression "*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68" (pointer_expression "*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0)" * (cast_expression "(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00074f44 + 4) + 0x1c0)" ( (binary_expression "*(int *)(DAT_00074f44 + 4) + 0x1c0" (pointer_expression "*(int *)(DAT_00074f44 + 4)" * (cast_expression "(int *)(DAT_00074f44 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00074f44 + 4)" ( (binary_expression "DAT_00074f44 + 4" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_00074f44,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\nLAB_00049408:\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a4d0(uVar4,param_1);\n    }\n    local_3c = local_54 & 1;\n    uVar8 = local_54 >> 1 & 1;\n    uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2;\n    uVar8 = local_48 != 8 & uVar8;\nLAB_0004947f:\n    uVar6 = 4;\n    if (local_3c == 0) goto LAB_00049640;\n  }\n  else {\n    uVar8 = *(uint *)(iVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }\n    uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }\n    bVar12 = false;\n    bVar14 = param_4 == 2 && param_5 == 0;\n    if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar3 = 8;\n    pbVar10 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    bVar13 = false;\n    bVar12 = (!bVar12 && !bVar14) == bVar12;\n    if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }\n    uVar8 = (uint)(local_48 != 8);\n    uVar9 = 1;\nLAB_00049640:\n    uVar6 = 0xc;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00049408:\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a4d0(uVar4,param_1);\n    }\n    local_3c = local_54 & 1;\n    uVar8 = local_54 >> 1 & 1;\n    uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2;\n    uVar8 = local_48 != 8 & uVar8;\nLAB_0004947f:\n    uVar6 = 4;\n    if (local_3c == 0) goto LAB_00049640;\n  }" { (labeled_statement "LAB_00049408:\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a4d0(uVar4,param_1);\n    }" statement_identifier : (if_statement "if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a4d0(uVar4,param_1);\n    }" if (parenthesized_expression "((local_54 & 0x1000002) == 0x1000000)" ( (binary_expression "(local_54 & 0x1000002) == 0x1000000" (parenthesized_expression "(local_54 & 0x1000002)" ( (binary_expression "local_54 & 0x1000002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a4d0(uVar4,param_1);\n    }" { (expression_statement "uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);" (assignment_expression "uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000)" identifier = (call_expression "dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000)" identifier (argument_list "(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000)" ( number_literal , (string_literal ""SHF_ALLOC isn\'t set for GNU_MBIND section: %s"" " string_content escape_sequence string_content ") , number_literal , number_literal )))) ;) comment (expression_statement "FUN_0002a4d0(uVar4,param_1);" (call_expression "FUN_0002a4d0(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) }))) (expression_statement "local_3c = local_54 & 1;" (assignment_expression "local_3c = local_54 & 1" identifier = (binary_expression "local_54 & 1" identifier & number_literal)) ;) (expression_statement "uVar8 = local_54 >> 1 & 1;" (assignment_expression "uVar8 = local_54 >> 1 & 1" identifier = (binary_expression "local_54 >> 1 & 1" (binary_expression "local_54 >> 1" identifier >> number_literal) & number_literal)) ;) (expression_statement "uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2;" (assignment_expression "uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2" identifier = (binary_expression "local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2" (binary_expression "local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8" (binary_expression "local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000" (binary_expression "local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400" (binary_expression "local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000" (binary_expression "local_54 >> 0x10 & 0x8000" (binary_expression "local_54 >> 0x10" identifier >> number_literal) & number_literal) | (binary_expression "local_54 << 0x13 & 0x1000000" (binary_expression "local_54 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "local_54 & 0x400" identifier & number_literal)) | (binary_expression "local_54 << 0x13 & 0x800000" (binary_expression "local_54 << 0x13" identifier << number_literal) & number_literal)) | identifier) | (binary_expression "(local_54 & 4) << 2" (parenthesized_expression "(local_54 & 4)" ( (binary_expression "local_54 & 4" identifier & number_literal) )) << number_literal))) ;) (expression_statement "uVar8 = local_48 != 8 & uVar8;" (assignment_expression "uVar8 = local_48 != 8 & uVar8" identifier = (binary_expression "local_48 != 8 & uVar8" (binary_expression "local_48 != 8" identifier != number_literal) & identifier)) ;) (labeled_statement "LAB_0004947f:\n    uVar6 = 4;" statement_identifier : (expression_statement "uVar6 = 4;" (assignment_expression "uVar6 = 4" identifier = number_literal) ;)) (if_statement "if (local_3c == 0) goto LAB_00049640;" if (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) )) (goto_statement "goto LAB_00049640;" goto statement_identifier ;)) }) (else_clause "else {\n    uVar8 = *(uint *)(iVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }\n    uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }\n    bVar12 = false;\n    bVar14 = param_4 == 2 && param_5 == 0;\n    if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar3 = 8;\n    pbVar10 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    bVar13 = false;\n    bVar12 = (!bVar12 && !bVar14) == bVar12;\n    if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }\n    uVar8 = (uint)(local_48 != 8);\n    uVar9 = 1;\nLAB_00049640:\n    uVar6 = 0xc;\n  }" else (compound_statement "{\n    uVar8 = *(uint *)(iVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }\n    uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }\n    bVar12 = false;\n    bVar14 = param_4 == 2 && param_5 == 0;\n    if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar3 = 8;\n    pbVar10 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    bVar13 = false;\n    bVar12 = (!bVar12 && !bVar14) == bVar12;\n    if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }\n    uVar8 = (uint)(local_48 != 8);\n    uVar9 = 1;\nLAB_00049640:\n    uVar6 = 0xc;\n  }" { (expression_statement "uVar8 = *(uint *)(iVar3 + 0xc);" (assignment_expression "uVar8 = *(uint *)(iVar3 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar3 + 0xc)" * (cast_expression "(uint *)(iVar3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }" if (parenthesized_expression "((param_2 == 0) || (param_2 == uVar8))" ( (binary_expression "(param_2 == 0) || (param_2 == uVar8)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_2 == uVar8)" ( (binary_expression "param_2 == uVar8" identifier == identifier) ))) )) (compound_statement "{\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }" { (labeled_statement "LAB_00049400:\n      local_48 = uVar8;" statement_identifier : (expression_statement "local_48 = uVar8;" (assignment_expression "local_48 = uVar8" identifier = identifier) ;)) (if_statement "if (iVar2 != 0) goto LAB_00049408;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00049408;" goto statement_identifier ;)) }) (else_clause "else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }" else (compound_statement "{\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }" { (if_statement "if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }" if (parenthesized_expression "((uVar8 - 0xe < 3) || (iVar2 != 0))" ( (binary_expression "(uVar8 - 0xe < 3) || (iVar2 != 0)" (parenthesized_expression "(uVar8 - 0xe < 3)" ( (binary_expression "uVar8 - 0xe < 3" (binary_expression "uVar8 - 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_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\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_0002a350(uVar4,param_1);" (call_expression "FUN_0002a350(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) (expression_statement "uVar8 = *(uint *)(iVar3 + 0xc);" (assignment_expression "uVar8 = *(uint *)(iVar3 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar3 + 0xc)" * (cast_expression "(uint *)(iVar3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00049400;" goto statement_identifier ;) })) (if_statement "if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }" if (parenthesized_expression "((uVar8 == 7) || (0x6fffffff < param_2))" ( (binary_expression "(uVar8 == 7) || (0x6fffffff < param_2)" (parenthesized_expression "(uVar8 == 7)" ( (binary_expression "uVar8 == 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_0002a350(uVar4,param_1);\n      }" else (compound_statement "{\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(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_0002a350(uVar4,param_1);" (call_expression "FUN_0002a350(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) }))) }))) (expression_statement "uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;" (assignment_expression "uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4" identifier = (binary_expression "~*(uint *)(iVar3 + 0x10) & param_4" (unary_expression "~*(uint *)(iVar3 + 0x10)" ~ (pointer_expression "*(uint *)(iVar3 + 0x10)" * (cast_expression "(uint *)(iVar3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) ))))) & identifier)) ;) (if_statement "if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }" if (parenthesized_expression "((uVar8 & 0xfffff) == 0)" ( (binary_expression "(uVar8 & 0xfffff) == 0" (parenthesized_expression "(uVar8 & 0xfffff)" ( (binary_expression "uVar8 & 0xfffff" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }" { (labeled_statement "LAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;" statement_identifier : (expression_statement "local_54 = *(uint *)(iVar3 + 0x10) | param_4;" (assignment_expression "local_54 = *(uint *)(iVar3 + 0x10) | param_4" identifier = (binary_expression "*(uint *)(iVar3 + 0x10) | param_4" (pointer_expression "*(uint *)(iVar3 + 0x10)" * (cast_expression "(uint *)(iVar3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) | identifier)) ;)) (expression_statement "local_50 = *(uint *)(iVar3 + 0x14) | param_5;" (assignment_expression "local_50 = *(uint *)(iVar3 + 0x14) | param_5" identifier = (binary_expression "*(uint *)(iVar3 + 0x14) | param_5" (pointer_expression "*(uint *)(iVar3 + 0x14)" * (cast_expression "(uint *)(iVar3 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) | identifier)) ;) (goto_statement "goto LAB_00049408;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }" if (parenthesized_expression "(*(int *)(iVar3 + 0xc) == 7)" ( (binary_expression "*(int *)(iVar3 + 0xc) == 7" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }" { (if_statement "if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }" if (parenthesized_expression "((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0)" ( (binary_expression "(param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0" (binary_expression "(param_5 - 1) + (uint)(1 < param_4) != 0" (binary_expression "(param_5 - 1) + (uint)(1 < param_4)" (parenthesized_expression "(param_5 - 1)" ( (binary_expression "param_5 - 1" identifier - number_literal) )) + (call_expression "(uint)(1 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < param_4)" ( (binary_expression "1 < param_4" number_literal < identifier) )))) != number_literal) || (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 *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }" { (if_statement "if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;" if (parenthesized_expression "((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))" ( (binary_expression "(*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)" (parenthesized_expression "(*(int *)(iVar3 + 8) == -2)" ( (binary_expression "*(int *)(iVar3 + 8) == -2" (pointer_expression "*(int *)(iVar3 + 8)" * (cast_expression "(int *)(iVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(param_1[*(int *)(iVar3 + 4)] == 0x2e)" ( (binary_expression "param_1[*(int *)(iVar3 + 4)] == 0x2e" (subscript_expression "param_1[*(int *)(iVar3 + 4)]" identifier [ (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) ]) == number_literal) ))) )) (goto_statement "goto LAB_000495fd;" goto statement_identifier ;)) (labeled_statement "LAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }" statement_identifier : (if_statement "if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }" if (parenthesized_expression "(param_7 == 0)" ( (binary_expression "param_7 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }" { (labeled_statement "LAB_00049959:\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_0002a350(uVar4,param_1);" (call_expression "FUN_0002a350(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) }))) (goto_statement "goto LAB_00049408;" goto statement_identifier ;) })) (goto_statement "goto LAB_00049610;" goto statement_identifier ;) })) (if_statement "if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }" if (parenthesized_expression "((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))" ( (binary_expression "(*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)" (parenthesized_expression "(*(int *)(iVar3 + 8) == -2)" ( (binary_expression "*(int *)(iVar3 + 8) == -2" (pointer_expression "*(int *)(iVar3 + 8)" * (cast_expression "(int *)(iVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(param_1[*(int *)(iVar3 + 4)] == 0x2e)" ( (binary_expression "param_1[*(int *)(iVar3 + 4)] == 0x2e" (subscript_expression "param_1[*(int *)(iVar3 + 4)]" identifier [ (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) ]) == number_literal) ))) )) (compound_statement "{\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }" { (labeled_statement "LAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;" statement_identifier : (if_statement "if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;" if (parenthesized_expression "((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0)" ( (binary_expression "(~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0" (binary_expression "(~*(uint *)(iVar3 + 0x14) & param_5) == 0" (parenthesized_expression "(~*(uint *)(iVar3 + 0x14) & param_5)" ( (binary_expression "~*(uint *)(iVar3 + 0x14) & param_5" (unary_expression "~*(uint *)(iVar3 + 0x14)" ~ (pointer_expression "*(uint *)(iVar3 + 0x14)" * (cast_expression "(uint *)(iVar3 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) ))))) & identifier) )) == number_literal) && (binary_expression "(uVar8 & 0xffffffcf) == 0" (parenthesized_expression "(uVar8 & 0xffffffcf)" ( (binary_expression "uVar8 & 0xffffffcf" identifier & number_literal) )) == number_literal)) )) (goto_statement "goto LAB_00049610;" goto statement_identifier ;))) })) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar14 = param_4 == 2 && param_5 == 0;" (assignment_expression "bVar14 = param_4 == 2 && param_5 == 0" identifier = (binary_expression "param_4 == 2 && param_5 == 0" (binary_expression "param_4 == 2" identifier == number_literal) && (binary_expression "param_5 == 0" identifier == number_literal))) ;) (if_statement "if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }" if (parenthesized_expression "(param_4 != 2 || param_5 != 0)" ( (binary_expression "param_4 != 2 || param_5 != 0" (binary_expression "param_4 != 2" identifier != number_literal) || (binary_expression "param_5 != 0" identifier != number_literal)) )) (compound_statement "{\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }" { (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar14 = param_5 == 0 && param_4 == 4;" (assignment_expression "bVar14 = param_5 == 0 && param_4 == 4" identifier = (binary_expression "param_5 == 0 && param_4 == 4" (binary_expression "param_5 == 0" identifier == number_literal) && (binary_expression "param_4 == 4" identifier == number_literal))) ;) (if_statement "if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;" if (parenthesized_expression "(param_5 != 0 || param_4 != 4)" ( (binary_expression "param_5 != 0 || param_4 != 4" (binary_expression "param_5 != 0" identifier != number_literal) || (binary_expression "param_4 != 4" identifier != number_literal)) )) (goto_statement "goto LAB_0004994d;" goto statement_identifier ;)) (expression_statement "iVar3 = 0x10;" (assignment_expression "iVar3 = 0x10" identifier = number_literal) ;) (expression_statement "pbVar10 = param_1;" (assignment_expression "pbVar10 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)".note.GNU-stack";" (assignment_expression "pbVar11 = (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        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);" do (compound_statement "{\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar10 < *pbVar11;" (assignment_expression "bVar12 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar14 = *pbVar10 == *pbVar11;" (assignment_expression "bVar14 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) (if_statement "if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }" if (parenthesized_expression "((!bVar12 && !bVar14) == bVar12)" ( (binary_expression "(!bVar12 && !bVar14) == bVar12" (parenthesized_expression "(!bVar12 && !bVar14)" ( (binary_expression "!bVar12 && !bVar14" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar14" ! identifier)) )) == identifier) )) (compound_statement "{\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }" { (expression_statement "uVar9 = 0x10;" (assignment_expression "uVar9 = 0x10" identifier = number_literal) ;) (expression_statement "uVar6 = 0xc;" (assignment_expression "uVar6 = 0xc" identifier = number_literal) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00049495;" goto statement_identifier ;) })) (labeled_statement "LAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;" statement_identifier : (if_statement "if (param_7 == 0) goto LAB_00049959;" if (parenthesized_expression "(param_7 == 0)" ( (binary_expression "param_7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00049959;" goto statement_identifier ;))) (expression_statement "local_3c = param_4 & 1;" (assignment_expression "local_3c = param_4 & 1" identifier = (binary_expression "param_4 & 1" identifier & number_literal)) ;) (expression_statement "uVar8 = param_4 >> 1 & 1;" (assignment_expression "uVar8 = param_4 >> 1 & 1" identifier = (binary_expression "param_4 >> 1 & 1" (binary_expression "param_4 >> 1" identifier >> number_literal) & number_literal)) ;) (expression_statement "uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;" (assignment_expression "uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000" identifier = (binary_expression "param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000" (binary_expression "param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000" (binary_expression "param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8" (binary_expression "param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10" (binary_expression "param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400" (binary_expression "param_4 >> 0x10 & 0x8000" (binary_expression "param_4 >> 0x10" identifier >> number_literal) & number_literal) | (binary_expression "param_4 & 0x400" identifier & number_literal)) | (binary_expression "param_4 * 4 & 0x10" (binary_expression "param_4 * 4" identifier * number_literal) & number_literal)) | identifier) | (binary_expression "param_4 << 0x13 & 0x800000" (binary_expression "param_4 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "param_4 << 0x13 & 0x1000000" (binary_expression "param_4 << 0x13" identifier << number_literal) & number_literal))) ;) (expression_statement "local_38 = (byte)uVar8;" (assignment_expression "local_38 = (byte)uVar8" identifier = (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uVar8 = (uint)(local_48 != 8 & local_38);" (assignment_expression "uVar8 = (uint)(local_48 != 8 & local_38)" identifier = (call_expression "(uint)(local_48 != 8 & local_38)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_48 != 8 & local_38)" ( (binary_expression "local_48 != 8 & local_38" (binary_expression "local_48 != 8" identifier != number_literal) & identifier) )))) ;) (goto_statement "goto LAB_0004947f;" goto statement_identifier ;) })) (expression_statement "iVar3 = 8;" (assignment_expression "iVar3 = 8" identifier = number_literal) ;) (expression_statement "pbVar10 = param_1;" (assignment_expression "pbVar10 = 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 (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);" do (compound_statement "{\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar10 < *pbVar11;" (assignment_expression "bVar12 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar14 = *pbVar10 == *pbVar11;" (assignment_expression "bVar14 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "bVar12 = (!bVar12 && !bVar14) == bVar12;" (assignment_expression "bVar12 = (!bVar12 && !bVar14) == bVar12" identifier = (binary_expression "(!bVar12 && !bVar14) == bVar12" (parenthesized_expression "(!bVar12 && !bVar14)" ( (binary_expression "!bVar12 && !bVar14" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar14" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (compound_statement "{\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }" { (expression_statement "iVar3 = 8;" (assignment_expression "iVar3 = 8" identifier = number_literal) ;) (expression_statement "pbVar10 = param_1;" (assignment_expression "pbVar10 = 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 (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);" do (compound_statement "{\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar10 < *pbVar11;" (assignment_expression "bVar13 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar10 == *pbVar11;" (assignment_expression "bVar12 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar12 = (!bVar13 && !bVar12) == bVar13;" (assignment_expression "bVar12 = (!bVar13 && !bVar12) == bVar13" identifier = (binary_expression "(!bVar13 && !bVar12) == bVar13" (parenthesized_expression "(!bVar13 && !bVar12)" ( (binary_expression "!bVar13 && !bVar12" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (compound_statement "{\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }" { (expression_statement "iVar3 = 8;" (assignment_expression "iVar3 = 8" identifier = number_literal) ;) (expression_statement "pbVar10 = param_1;" (assignment_expression "pbVar10 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)".symtab";" (assignment_expression "pbVar11 = (byte *)".symtab"" identifier = (cast_expression "(byte *)".symtab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".symtab"" " string_content "))) ;) (do_statement "do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);" do (compound_statement "{\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar10 < *pbVar11;" (assignment_expression "bVar14 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar10 == *pbVar11;" (assignment_expression "bVar12 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (if_statement "if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;" if (parenthesized_expression "((!bVar14 && !bVar12) != bVar14)" ( (binary_expression "(!bVar14 && !bVar12) != bVar14" (parenthesized_expression "(!bVar14 && !bVar12)" ( (binary_expression "!bVar14 && !bVar12" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_000498a2;" goto statement_identifier ;)) })) })) (expression_statement "uVar8 = (uint)(local_48 != 8);" (assignment_expression "uVar8 = (uint)(local_48 != 8)" identifier = (call_expression "(uint)(local_48 != 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_48 != 8)" ( (binary_expression "local_48 != 8" identifier != number_literal) )))) ;) (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00049640:\n    uVar6 = 0xc;" statement_identifier : (expression_statement "uVar6 = 0xc;" (assignment_expression "uVar6 = 0xc" identifier = number_literal) ;)) }))) (expression_statement "uVar8 = uVar8 * 2;" (assignment_expression "uVar8 = uVar8 * 2" identifier = (binary_expression "uVar8 * 2" identifier * number_literal)) ;) (labeled_statement "LAB_00049495:\n  uVar8 = uVar9 | uVar6 | uVar8;" statement_identifier : (expression_statement "uVar8 = uVar9 | uVar6 | uVar8;" (assignment_expression "uVar8 = uVar9 | uVar6 | uVar8" identifier = (binary_expression "uVar9 | uVar6 | uVar8" (binary_expression "uVar9 | uVar6" identifier | identifier) | identifier)) ;)) (if_statement "if (param_8 != 0) {\n    uVar8 = uVar8 | 0x20000;\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar8 = uVar8 | 0x20000;\n  }" { (expression_statement "uVar8 = uVar8 | 0x20000;" (assignment_expression "uVar8 = uVar8 | 0x20000" identifier = (binary_expression "uVar8 | 0x20000" identifier | number_literal)) ;) })) (if_statement "if (iVar2 == 0) {\n    if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }\n    iVar2 = *(int *)(local_44 + 0xa4);\n    *(uint *)(iVar2 + 4) = local_48;\n    *(uint *)(iVar2 + 8) = local_54;\n    *(uint *)(iVar2 + 0xc) = local_50;\n    *(undefined4 *)(iVar2 + 0x2c) = param_3;\n    if (local_48 == 8) {\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }\n    bfd_set_section_flags(DAT_00074f44,local_44,uVar8);\n    if ((uVar8 & 0x800000) != 0) {\n      *(int *)(local_44 + 0x90) = param_6;\n    }\n    *(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7;\n    iVar2 = FUN_00038c10(param_1);\n    if (iVar2 != 0) {\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }\n    uVar4 = FUN_00034e20(local_44);\n    FUN_00035600(uVar4);\n  }\n  else {\n    if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n    if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }\n    iVar2 = *(int *)(local_44 + 0xa4);\n    *(uint *)(iVar2 + 4) = local_48;\n    *(uint *)(iVar2 + 8) = local_54;\n    *(uint *)(iVar2 + 0xc) = local_50;\n    *(undefined4 *)(iVar2 + 0x2c) = param_3;\n    if (local_48 == 8) {\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }\n    bfd_set_section_flags(DAT_00074f44,local_44,uVar8);\n    if ((uVar8 & 0x800000) != 0) {\n      *(int *)(local_44 + 0x90) = param_6;\n    }\n    *(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7;\n    iVar2 = FUN_00038c10(param_1);\n    if (iVar2 != 0) {\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }\n    uVar4 = FUN_00034e20(local_44);\n    FUN_00035600(uVar4);\n  }" { (if_statement "if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (compound_statement "{\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }" { (expression_statement "local_48 = bfd_elf_get_default_section_type(uVar8);" (assignment_expression "local_48 = bfd_elf_get_default_section_type(uVar8)" identifier = (call_expression "bfd_elf_get_default_section_type(uVar8)" identifier (argument_list "(uVar8)" ( identifier )))) ;) })) (expression_statement "iVar2 = *(int *)(local_44 + 0xa4);" (assignment_expression "iVar2 = *(int *)(local_44 + 0xa4)" identifier = (pointer_expression "*(int *)(local_44 + 0xa4)" * (cast_expression "(int *)(local_44 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44 + 0xa4)" ( (binary_expression "local_44 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar2 + 4) = local_48;" (assignment_expression "*(uint *)(iVar2 + 4) = local_48" (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) = local_54;" (assignment_expression "*(uint *)(iVar2 + 8) = local_54" (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 "*(uint *)(iVar2 + 0xc) = local_50;" (assignment_expression "*(uint *)(iVar2 + 0xc) = local_50" (pointer_expression "*(uint *)(iVar2 + 0xc)" * (cast_expression "(uint *)(iVar2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x2c) = param_3;" (assignment_expression "*(undefined4 *)(iVar2 + 0x2c) = param_3" (pointer_expression "*(undefined4 *)(iVar2 + 0x2c)" * (cast_expression "(undefined4 *)(iVar2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (local_48 == 8) {\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }" if (parenthesized_expression "(local_48 == 8)" ( (binary_expression "local_48 == 8" identifier == number_literal) )) (compound_statement "{\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }" { (expression_statement "pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);" (assignment_expression "pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4)" identifier = (cast_expression "(byte *)(*(int *)(local_44 + 0x80) + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_44 + 0x80) + 4)" ( (binary_expression "*(int *)(local_44 + 0x80) + 4" (pointer_expression "*(int *)(local_44 + 0x80)" * (cast_expression "(int *)(local_44 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44 + 0x80)" ( (binary_expression "local_44 + 0x80" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar10 = *pbVar10 | 2;" (assignment_expression "*pbVar10 = *pbVar10 | 2" (pointer_expression "*pbVar10" * identifier) = (binary_expression "*pbVar10 | 2" (pointer_expression "*pbVar10" * identifier) | number_literal)) ;) })) (expression_statement "bfd_set_section_flags(DAT_00074f44,local_44,uVar8);" (call_expression "bfd_set_section_flags(DAT_00074f44,local_44,uVar8)" identifier (argument_list "(DAT_00074f44,local_44,uVar8)" ( identifier , identifier , identifier ))) ;) (if_statement "if ((uVar8 & 0x800000) != 0) {\n      *(int *)(local_44 + 0x90) = param_6;\n    }" if (parenthesized_expression "((uVar8 & 0x800000) != 0)" ( (binary_expression "(uVar8 & 0x800000) != 0" (parenthesized_expression "(uVar8 & 0x800000)" ( (binary_expression "uVar8 & 0x800000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      *(int *)(local_44 + 0x90) = param_6;\n    }" { (expression_statement "*(int *)(local_44 + 0x90) = param_6;" (assignment_expression "*(int *)(local_44 + 0x90) = param_6" (pointer_expression "*(int *)(local_44 + 0x90)" * (cast_expression "(int *)(local_44 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44 + 0x90)" ( (binary_expression "local_44 + 0x90" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7;" (assignment_expression "*(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7" (pointer_expression "*(int *)(*(int *)(local_44 + 0xa4) + 0x84)" * (cast_expression "(int *)(*(int *)(local_44 + 0xa4) + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_44 + 0xa4) + 0x84)" ( (binary_expression "*(int *)(local_44 + 0xa4) + 0x84" (pointer_expression "*(int *)(local_44 + 0xa4)" * (cast_expression "(int *)(local_44 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44 + 0xa4)" ( (binary_expression "local_44 + 0xa4" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "iVar2 = FUN_00038c10(param_1);" (assignment_expression "iVar2 = FUN_00038c10(param_1)" identifier = (call_expression "FUN_00038c10(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }" { (expression_statement "FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));" (call_expression "FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0))" identifier (argument_list "(iVar2,*(undefined4 *)(local_44 + 0xb0))" ( identifier , (pointer_expression "*(undefined4 *)(local_44 + 0xb0)" * (cast_expression "(undefined4 *)(local_44 + 0xb0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44 + 0xb0)" ( (binary_expression "local_44 + 0xb0" identifier + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar4 = FUN_00034e20(local_44);" (assignment_expression "uVar4 = FUN_00034e20(local_44)" identifier = (call_expression "FUN_00034e20(local_44)" identifier (argument_list "(local_44)" ( identifier )))) ;) (expression_statement "FUN_00035600(uVar4);" (call_expression "FUN_00035600(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) }) (else_clause "else {\n    if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n    if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n  }" else (compound_statement "{\n    if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n    if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n  }" { (if_statement "if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }" if (parenthesized_expression "((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48))" ( (binary_expression "(local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)" (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)" ( (binary_expression "*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48" (pointer_expression "*(uint *)(*(int *)(iVar2 + 0xa4) + 4)" * (cast_expression "(uint *)(*(int *)(iVar2 + 0xa4) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 0xa4) + 4)" ( (binary_expression "*(int *)(iVar2 + 0xa4) + 4" (pointer_expression "*(int *)(iVar2 + 0xa4)" * (cast_expression "(int *)(iVar2 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xa4)" ( (binary_expression "iVar2 + 0xa4" identifier + number_literal) )))) + number_literal) )))) == identifier) ))) )) (compound_statement "{\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }" { (if_statement "if (local_50 == 0 && local_54 == 0) {\n        return;\n      }" if (parenthesized_expression "(local_50 == 0 && local_54 == 0)" ( (binary_expression "local_50 == 0 && local_54 == 0" (binary_expression "local_50 == 0" identifier == number_literal) && (binary_expression "local_54 == 0" identifier == number_literal)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) }) (else_clause "else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }" else (compound_statement "{\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\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_0002a350(uVar4,param_1);" (call_expression "FUN_0002a350(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) (if_statement "if (local_50 == 0 && local_54 == 0) {\n        return;\n      }" if (parenthesized_expression "(local_50 == 0 && local_54 == 0)" ( (binary_expression "local_50 == 0 && local_54 == 0" (binary_expression "local_50 == 0" identifier == number_literal) && (binary_expression "local_54 == 0" identifier == number_literal)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) }))) (if_statement "if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }" if (parenthesized_expression "(((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0)" ( (binary_expression "((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0" (parenthesized_expression "((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b)" ( (binary_expression "(*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b" (parenthesized_expression "(*(uint *)(iVar2 + 0x14) ^ uVar8)" ( (binary_expression "*(uint *)(iVar2 + 0x14) ^ uVar8" (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      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }" { (expression_statement "iVar3 = *(int *)(local_44 + 0xa4);" (assignment_expression "iVar3 = *(int *)(local_44 + 0xa4)" identifier = (pointer_expression "*(int *)(local_44 + 0xa4)" * (cast_expression "(int *)(local_44 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44 + 0xa4)" ( (binary_expression "local_44 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar3 + 8) = local_54;" (assignment_expression "*(uint *)(iVar3 + 8) = local_54" (pointer_expression "*(uint *)(iVar3 + 8)" * (cast_expression "(uint *)(iVar3 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar3 + 0xc) = local_50;" (assignment_expression "*(uint *)(iVar3 + 0xc) = local_50" (pointer_expression "*(uint *)(iVar3 + 0xc)" * (cast_expression "(uint *)(iVar3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }" else (compound_statement "{\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(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_0002a350(uVar4,param_1);" (call_expression "FUN_0002a350(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) }))) (if_statement "if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }" if (parenthesized_expression "(((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6))" ( (binary_expression "((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)" (parenthesized_expression "((uVar8 & 0x800000) != 0)" ( (binary_expression "(uVar8 & 0x800000) != 0" (parenthesized_expression "(uVar8 & 0x800000)" ( (binary_expression "uVar8 & 0x800000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar2 + 0x90) != param_6)" ( (binary_expression "*(int *)(iVar2 + 0x90) != param_6" (pointer_expression "*(int *)(iVar2 + 0x90)" * (cast_expression "(int *)(iVar2 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x90)" ( (binary_expression "iVar2 + 0x90" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(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_0002a350(uVar4,param_1);" (call_expression "FUN_0002a350(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  int iVar4;\n  char *pcVar5;\n  section_stack *psVar6;\n  symbolS *psVar7;\n  uint uVar8;\n  subsegT sVar9;\n  uint uVar10;\n  uint uVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  uint local_54;\n  uint local_50;\n  uint local_48;\n  segT local_44;\n  uint local_3c;\n  byte local_38;\n  section_match match;\n  \n  bVar17 = 0;\n  local_48 = type;\n  paVar3 = now_seg;\n  sVar9 = now_subseg;\n  if (push != 0) {\n    psVar6 = (section_stack *)xmalloc(0x14);\n    psVar2 = psVar6;\n    psVar6->next = section_stack;\n    section_stack = psVar2;\n    psVar6->prev_subseg = previous_subsection;\n    paVar3 = now_seg;\n    psVar6->prev_seg = previous_section;\n    psVar6->seg = paVar3;\n    sVar9 = now_subseg;\n    psVar6->subseg = now_subseg;\n  }\n  match.group_name = group_name;\n  match.info = info;\n  previous_subsection = sVar9;\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_44 = subseg_force_new(name,0);\n  }\n  else {\n    subseg_set(paVar3,0);\n    local_44 = paVar3;\n  }\n  local_50 = (uint)(attr >> 0x20);\n  local_54 = (uint)attr;\n  iVar4 = (**(code **)((int)stdoutput->xvec->backend_data + 0x68))(stdoutput,local_44);\n  if (iVar4 == 0) {\nLAB_00049408:\n    local_54 = (uint)attr;\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar5,name);\n    }\n    uVar10 = local_54 >> 1 & 1;\n    uVar11 = local_54 >> 0x10 & 0x8000 |\n             local_54 << 0x13 & 0x1000000 |\n             local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar10 | (local_54 & 4) << 2;\n    uVar10 = local_48 != 8 & uVar10;\nLAB_0004947f:\n    local_3c = local_54 & 1;\n    uVar8 = 4;\n    if (local_3c == 0) goto LAB_00049640;\n  }\n  else {\n    uVar10 = *(uint *)(iVar4 + 0xc);\n    if ((type == 0) || (type == uVar10)) {\nLAB_00049400:\n      local_48 = uVar10;\n      if (paVar3 != (segT)0x0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar10 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar10 = *(uint *)(iVar4 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar10 == 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    uVar10 = ~*(uint *)(iVar4 + 0x10) & local_54;\n    if ((uVar10 & 0xfffff) == 0) {\nLAB_00049610:\n      attr = CONCAT44(*(uint *)(iVar4 + 0x14) | local_50,*(uint *)(iVar4 + 0x10) | local_54);\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar4 + 0xc) == 7) {\n      if ((int)(attr - 2 >> 0x20) != 0 || (attr - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) goto LAB_000495fd;\nLAB_0004994d:\n        if (group_name == (char *)0x0) {\nLAB_00049959:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar4 + 0x14) & local_50) == 0 && (uVar10 & 0xffffffcf) == 0)\n      goto LAB_00049610;\n    }\n    bVar14 = false;\n    bVar16 = attr == 2;\n    if (!bVar16) {\n      bVar14 = false;\n      bVar16 = attr == 4;\n      if (attr != 4) goto LAB_0004994d;\n      iVar4 = 0x10;\n      pbVar12 = (byte *)name;\n      pbVar13 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar14 = *pbVar12 < *pbVar13;\n        bVar16 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar14 && !bVar16) == bVar14) {\n        uVar11 = 0x10;\n        uVar8 = 0xc;\n        uVar10 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (group_name == (char *)0x0) goto LAB_00049959;\n      uVar10 = local_54 >> 1 & 1;\n      uVar11 = local_54 >> 0x10 & 0x8000 |\n               local_54 & 0x400 | local_54 * 4 & 0x10 | uVar10 | local_54 << 0x13 & 0x800000 |\n               local_54 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar10;\n      uVar10 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar4 = 8;\n    pbVar12 = (byte *)name;\n    pbVar13 = (byte *)".interp";\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (!bVar14) {\n      iVar4 = 8;\n      pbVar12 = (byte *)name;\n      pbVar13 = (byte *)".strtab";\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar15 = *pbVar12 < *pbVar13;\n        bVar14 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar14);\n      bVar16 = false;\n      bVar14 = (!bVar15 && !bVar14) == bVar15;\n      if (!bVar14) {\n        iVar4 = 8;\n        pbVar12 = (byte *)name;\n        pbVar13 = (byte *)".symtab";\n        do {\n          if (iVar4 == 0) break;\n          iVar4 = iVar4 + -1;\n          bVar16 = *pbVar12 < *pbVar13;\n          bVar14 = *pbVar12 == *pbVar13;\n          pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);\n        if ((!bVar16 && !bVar14) != bVar16) goto LAB_000498a2;\n      }\n    }\n    uVar10 = (uint)(local_48 != 8);\n    uVar11 = 1;\nLAB_00049640:\n    uVar8 = 0xc;\n  }\n  uVar10 = uVar10 * 2;\nLAB_00049495:\n  uVar10 = uVar11 | uVar8 | uVar10;\n  if (linkonce != 0) {\n    uVar10 = uVar10 | 0x20000;\n  }\n  if (paVar3 == (segT)0x0) {\n    if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar10);\n    }\n    pvVar1 = local_44->used_by_bfd;\n    *(uint *)((int)pvVar1 + 4) = local_48;\n    *(bfd_vma *)((int)pvVar1 + 8) = attr;\n    *(uint *)((int)pvVar1 + 0x2c) = info;\n    if (local_48 == 8) {\n      pbVar12 = (byte *)((int)local_44->userdata + 4);\n      *pbVar12 = *pbVar12 | 2;\n    }\n    bfd_set_section_flags(stdoutput,local_44,uVar10);\n    if ((uVar10 & 0x800000) != 0) {\n      local_44->entsize = entsize;\n    }\n    *(char **)((int)local_44->used_by_bfd + 0x84) = group_name;\n    psVar7 = symbol_find(name);\n    if (psVar7 != (symbolS *)0x0) {\n      symbol_set_bfdsym(psVar7,local_44->symbol);\n      return;\n    }\n    psVar7 = section_symbol(local_44);\n    symbol_table_insert(psVar7);\n  }\n  else {\n    if ((local_48 != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_48)) {\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 ^ uVar10) & 0x183841b) == 0) {\n        *(bfd_vma *)((int)local_44->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 (((uVar10 & 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  int iVar4;\n  char *pcVar5;\n  section_stack *psVar6;\n  symbolS *psVar7;\n  uint uVar8;\n  subsegT sVar9;\n  uint uVar10;\n  uint uVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  uint local_54;\n  uint local_50;\n  uint local_48;\n  segT local_44;\n  uint local_3c;\n  byte local_38;\n  section_match match;\n  \n  bVar17 = 0;\n  local_48 = type;\n  paVar3 = now_seg;\n  sVar9 = now_subseg;\n  if (push != 0) {\n    psVar6 = (section_stack *)xmalloc(0x14);\n    psVar2 = psVar6;\n    psVar6->next = section_stack;\n    section_stack = psVar2;\n    psVar6->prev_subseg = previous_subsection;\n    paVar3 = now_seg;\n    psVar6->prev_seg = previous_section;\n    psVar6->seg = paVar3;\n    sVar9 = now_subseg;\n    psVar6->subseg = now_subseg;\n  }\n  match.group_name = group_name;\n  match.info = info;\n  previous_subsection = sVar9;\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_44 = subseg_force_new(name,0);\n  }\n  else {\n    subseg_set(paVar3,0);\n    local_44 = paVar3;\n  }\n  local_50 = (uint)(attr >> 0x20);\n  local_54 = (uint)attr;\n  iVar4 = (**(code **)((int)stdoutput->xvec->backend_data + 0x68))(stdoutput,local_44);\n  if (iVar4 == 0) {\nLAB_00049408:\n    local_54 = (uint)attr;\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar5,name);\n    }\n    uVar10 = local_54 >> 1 & 1;\n    uVar11 = local_54 >> 0x10 & 0x8000 |\n             local_54 << 0x13 & 0x1000000 |\n             local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar10 | (local_54 & 4) << 2;\n    uVar10 = local_48 != 8 & uVar10;\nLAB_0004947f:\n    local_3c = local_54 & 1;\n    uVar8 = 4;\n    if (local_3c == 0) goto LAB_00049640;\n  }\n  else {\n    uVar10 = *(uint *)(iVar4 + 0xc);\n    if ((type == 0) || (type == uVar10)) {\nLAB_00049400:\n      local_48 = uVar10;\n      if (paVar3 != (segT)0x0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar10 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar10 = *(uint *)(iVar4 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar10 == 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    uVar10 = ~*(uint *)(iVar4 + 0x10) & local_54;\n    if ((uVar10 & 0xfffff) == 0) {\nLAB_00049610:\n      attr = CONCAT44(*(uint *)(iVar4 + 0x14) | local_50,*(uint *)(iVar4 + 0x10) | local_54);\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar4 + 0xc) == 7) {\n      if ((int)(attr - 2 >> 0x20) != 0 || (attr - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) goto LAB_000495fd;\nLAB_0004994d:\n        if (group_name == (char *)0x0) {\nLAB_00049959:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar4 + 0x14) & local_50) == 0 && (uVar10 & 0xffffffcf) == 0)\n      goto LAB_00049610;\n    }\n    bVar14 = false;\n    bVar16 = attr == 2;\n    if (!bVar16) {\n      bVar14 = false;\n      bVar16 = attr == 4;\n      if (attr != 4) goto LAB_0004994d;\n      iVar4 = 0x10;\n      pbVar12 = (byte *)name;\n      pbVar13 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar14 = *pbVar12 < *pbVar13;\n        bVar16 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar14 && !bVar16) == bVar14) {\n        uVar11 = 0x10;\n        uVar8 = 0xc;\n        uVar10 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (group_name == (char *)0x0) goto LAB_00049959;\n      uVar10 = local_54 >> 1 & 1;\n      uVar11 = local_54 >> 0x10 & 0x8000 |\n               local_54 & 0x400 | local_54 * 4 & 0x10 | uVar10 | local_54 << 0x13 & 0x800000 |\n               local_54 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar10;\n      uVar10 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar4 = 8;\n    pbVar12 = (byte *)name;\n    pbVar13 = (byte *)".interp";\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (!bVar14) {\n      iVar4 = 8;\n      pbVar12 = (byte *)name;\n      pbVar13 = (byte *)".strtab";\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar15 = *pbVar12 < *pbVar13;\n        bVar14 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar14);\n      bVar16 = false;\n      bVar14 = (!bVar15 && !bVar14) == bVar15;\n      if (!bVar14) {\n        iVar4 = 8;\n        pbVar12 = (byte *)name;\n        pbVar13 = (byte *)".symtab";\n        do {\n          if (iVar4 == 0) break;\n          iVar4 = iVar4 + -1;\n          bVar16 = *pbVar12 < *pbVar13;\n          bVar14 = *pbVar12 == *pbVar13;\n          pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);\n        if ((!bVar16 && !bVar14) != bVar16) goto LAB_000498a2;\n      }\n    }\n    uVar10 = (uint)(local_48 != 8);\n    uVar11 = 1;\nLAB_00049640:\n    uVar8 = 0xc;\n  }\n  uVar10 = uVar10 * 2;\nLAB_00049495:\n  uVar10 = uVar11 | uVar8 | uVar10;\n  if (linkonce != 0) {\n    uVar10 = uVar10 | 0x20000;\n  }\n  if (paVar3 == (segT)0x0) {\n    if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar10);\n    }\n    pvVar1 = local_44->used_by_bfd;\n    *(uint *)((int)pvVar1 + 4) = local_48;\n    *(bfd_vma *)((int)pvVar1 + 8) = attr;\n    *(uint *)((int)pvVar1 + 0x2c) = info;\n    if (local_48 == 8) {\n      pbVar12 = (byte *)((int)local_44->userdata + 4);\n      *pbVar12 = *pbVar12 | 2;\n    }\n    bfd_set_section_flags(stdoutput,local_44,uVar10);\n    if ((uVar10 & 0x800000) != 0) {\n      local_44->entsize = entsize;\n    }\n    *(char **)((int)local_44->used_by_bfd + 0x84) = group_name;\n    psVar7 = symbol_find(name);\n    if (psVar7 != (symbolS *)0x0) {\n      symbol_set_bfdsym(psVar7,local_44->symbol);\n      return;\n    }\n    psVar7 = section_symbol(local_44);\n    symbol_table_insert(psVar7);\n  }\n  else {\n    if ((local_48 != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_48)) {\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 ^ uVar10) & 0x183841b) == 0) {\n        *(bfd_vma *)((int)local_44->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 (((uVar10 & 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  int iVar4;\n  char *pcVar5;\n  section_stack *psVar6;\n  symbolS *psVar7;\n  uint uVar8;\n  subsegT sVar9;\n  uint uVar10;\n  uint uVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  bool bVar14;\n  bool bVar15;\n  bool bVar16;\n  byte bVar17;\n  uint local_54;\n  uint local_50;\n  uint local_48;\n  segT local_44;\n  uint local_3c;\n  byte local_38;\n  section_match match;\n  \n  bVar17 = 0;\n  local_48 = type;\n  paVar3 = now_seg;\n  sVar9 = now_subseg;\n  if (push != 0) {\n    psVar6 = (section_stack *)xmalloc(0x14);\n    psVar2 = psVar6;\n    psVar6->next = section_stack;\n    section_stack = psVar2;\n    psVar6->prev_subseg = previous_subsection;\n    paVar3 = now_seg;\n    psVar6->prev_seg = previous_section;\n    psVar6->seg = paVar3;\n    sVar9 = now_subseg;\n    psVar6->subseg = now_subseg;\n  }\n  match.group_name = group_name;\n  match.info = info;\n  previous_subsection = sVar9;\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_44 = subseg_force_new(name,0);\n  }\n  else {\n    subseg_set(paVar3,0);\n    local_44 = paVar3;\n  }\n  local_50 = (uint)(attr >> 0x20);\n  local_54 = (uint)attr;\n  iVar4 = (**(code **)((int)stdoutput->xvec->backend_data + 0x68))(stdoutput,local_44);\n  if (iVar4 == 0) {\nLAB_00049408:\n    local_54 = (uint)attr;\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar5,name);\n    }\n    uVar10 = local_54 >> 1 & 1;\n    uVar11 = local_54 >> 0x10 & 0x8000 |\n             local_54 << 0x13 & 0x1000000 |\n             local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar10 | (local_54 & 4) << 2;\n    uVar10 = local_48 != 8 & uVar10;\nLAB_0004947f:\n    local_3c = local_54 & 1;\n    uVar8 = 4;\n    if (local_3c == 0) goto LAB_00049640;\n  }\n  else {\n    uVar10 = *(uint *)(iVar4 + 0xc);\n    if ((type == 0) || (type == uVar10)) {\nLAB_00049400:\n      local_48 = uVar10;\n      if (paVar3 != (segT)0x0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar10 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar10 = *(uint *)(iVar4 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar10 == 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    uVar10 = ~*(uint *)(iVar4 + 0x10) & local_54;\n    if ((uVar10 & 0xfffff) == 0) {\nLAB_00049610:\n      attr = CONCAT44(*(uint *)(iVar4 + 0x14) | local_50,*(uint *)(iVar4 + 0x10) | local_54);\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar4 + 0xc) == 7) {\n      if ((int)(attr - 2 >> 0x20) != 0 || (attr - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) goto LAB_000495fd;\nLAB_0004994d:\n        if (group_name == (char *)0x0) {\nLAB_00049959:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar4 + 0x14) & local_50) == 0 && (uVar10 & 0xffffffcf) == 0)\n      goto LAB_00049610;\n    }\n    bVar14 = false;\n    bVar16 = attr == 2;\n    if (!bVar16) {\n      bVar14 = false;\n      bVar16 = attr == 4;\n      if (attr != 4) goto LAB_0004994d;\n      iVar4 = 0x10;\n      pbVar12 = (byte *)name;\n      pbVar13 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar14 = *pbVar12 < *pbVar13;\n        bVar16 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar14 && !bVar16) == bVar14) {\n        uVar11 = 0x10;\n        uVar8 = 0xc;\n        uVar10 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (group_name == (char *)0x0) goto LAB_00049959;\n      uVar10 = local_54 >> 1 & 1;\n      uVar11 = local_54 >> 0x10 & 0x8000 |\n               local_54 & 0x400 | local_54 * 4 & 0x10 | uVar10 | local_54 << 0x13 & 0x800000 |\n               local_54 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar10;\n      uVar10 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar4 = 8;\n    pbVar12 = (byte *)name;\n    pbVar13 = (byte *)".interp";\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (!bVar14) {\n      iVar4 = 8;\n      pbVar12 = (byte *)name;\n      pbVar13 = (byte *)".strtab";\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar15 = *pbVar12 < *pbVar13;\n        bVar14 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar14);\n      bVar16 = false;\n      bVar14 = (!bVar15 && !bVar14) == bVar15;\n      if (!bVar14) {\n        iVar4 = 8;\n        pbVar12 = (byte *)name;\n        pbVar13 = (byte *)".symtab";\n        do {\n          if (iVar4 == 0) break;\n          iVar4 = iVar4 + -1;\n          bVar16 = *pbVar12 < *pbVar13;\n          bVar14 = *pbVar12 == *pbVar13;\n          pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);\n        if ((!bVar16 && !bVar14) != bVar16) goto LAB_000498a2;\n      }\n    }\n    uVar10 = (uint)(local_48 != 8);\n    uVar11 = 1;\nLAB_00049640:\n    uVar8 = 0xc;\n  }\n  uVar10 = uVar10 * 2;\nLAB_00049495:\n  uVar10 = uVar11 | uVar8 | uVar10;\n  if (linkonce != 0) {\n    uVar10 = uVar10 | 0x20000;\n  }\n  if (paVar3 == (segT)0x0) {\n    if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar10);\n    }\n    pvVar1 = local_44->used_by_bfd;\n    *(uint *)((int)pvVar1 + 4) = local_48;\n    *(bfd_vma *)((int)pvVar1 + 8) = attr;\n    *(uint *)((int)pvVar1 + 0x2c) = info;\n    if (local_48 == 8) {\n      pbVar12 = (byte *)((int)local_44->userdata + 4);\n      *pbVar12 = *pbVar12 | 2;\n    }\n    bfd_set_section_flags(stdoutput,local_44,uVar10);\n    if ((uVar10 & 0x800000) != 0) {\n      local_44->entsize = entsize;\n    }\n    *(char **)((int)local_44->used_by_bfd + 0x84) = group_name;\n    psVar7 = symbol_find(name);\n    if (psVar7 != (symbolS *)0x0) {\n      symbol_set_bfdsym(psVar7,local_44->symbol);\n      return;\n    }\n    psVar7 = section_symbol(local_44);\n    symbol_table_insert(psVar7);\n  }\n  else {\n    if ((local_48 != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_48)) {\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 ^ uVar10) & 0x183841b) == 0) {\n        *(bfd_vma *)((int)local_44->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 (((uVar10 & 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 "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "section_stack *psVar6;" type_identifier (pointer_declarator "*psVar6" * identifier) ;) (declaration "symbolS *psVar7;" type_identifier (pointer_declarator "*psVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "subsegT sVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "segT local_44;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "byte local_38;" type_identifier identifier ;) (declaration "section_match match;" type_identifier identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "local_48 = type;" (assignment_expression "local_48 = type" identifier = identifier) ;) (expression_statement "paVar3 = now_seg;" (assignment_expression "paVar3 = now_seg" identifier = identifier) ;) (expression_statement "sVar9 = now_subseg;" (assignment_expression "sVar9 = now_subseg" identifier = identifier) ;) (if_statement "if (push != 0) {\n    psVar6 = (section_stack *)xmalloc(0x14);\n    psVar2 = psVar6;\n    psVar6->next = section_stack;\n    section_stack = psVar2;\n    psVar6->prev_subseg = previous_subsection;\n    paVar3 = now_seg;\n    psVar6->prev_seg = previous_section;\n    psVar6->seg = paVar3;\n    sVar9 = now_subseg;\n    psVar6->subseg = now_subseg;\n  }" if (parenthesized_expression "(push != 0)" ( (binary_expression "push != 0" identifier != number_literal) )) (compound_statement "{\n    psVar6 = (section_stack *)xmalloc(0x14);\n    psVar2 = psVar6;\n    psVar6->next = section_stack;\n    section_stack = psVar2;\n    psVar6->prev_subseg = previous_subsection;\n    paVar3 = now_seg;\n    psVar6->prev_seg = previous_section;\n    psVar6->seg = paVar3;\n    sVar9 = now_subseg;\n    psVar6->subseg = now_subseg;\n  }" { (expression_statement "psVar6 = (section_stack *)xmalloc(0x14);" (assignment_expression "psVar6 = (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 = psVar6;" (assignment_expression "psVar2 = psVar6" identifier = identifier) ;) (expression_statement "psVar6->next = section_stack;" (assignment_expression "psVar6->next = section_stack" (field_expression "psVar6->next" identifier -> field_identifier) = identifier) ;) (expression_statement "section_stack = psVar2;" (assignment_expression "section_stack = psVar2" identifier = identifier) ;) (expression_statement "psVar6->prev_subseg = previous_subsection;" (assignment_expression "psVar6->prev_subseg = previous_subsection" (field_expression "psVar6->prev_subseg" identifier -> field_identifier) = identifier) ;) (expression_statement "paVar3 = now_seg;" (assignment_expression "paVar3 = now_seg" identifier = identifier) ;) (expression_statement "psVar6->prev_seg = previous_section;" (assignment_expression "psVar6->prev_seg = previous_section" (field_expression "psVar6->prev_seg" identifier -> field_identifier) = identifier) ;) (expression_statement "psVar6->seg = paVar3;" (assignment_expression "psVar6->seg = paVar3" (field_expression "psVar6->seg" identifier -> field_identifier) = identifier) ;) (expression_statement "sVar9 = now_subseg;" (assignment_expression "sVar9 = now_subseg" identifier = identifier) ;) (expression_statement "psVar6->subseg = now_subseg;" (assignment_expression "psVar6->subseg = now_subseg" (field_expression "psVar6->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 = sVar9;" (assignment_expression "previous_subsection = sVar9" 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_44 = subseg_force_new(name,0);\n  }\n  else {\n    subseg_set(paVar3,0);\n    local_44 = 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_44 = subseg_force_new(name,0);\n  }" { (expression_statement "local_44 = subseg_force_new(name,0);" (assignment_expression "local_44 = 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_44 = paVar3;\n  }" else (compound_statement "{\n    subseg_set(paVar3,0);\n    local_44 = 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_44 = paVar3;" (assignment_expression "local_44 = paVar3" identifier = identifier) ;) }))) (expression_statement "local_50 = (uint)(attr >> 0x20);" (assignment_expression "local_50 = (uint)(attr >> 0x20)" identifier = (call_expression "(uint)(attr >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(attr >> 0x20)" ( (binary_expression "attr >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_54 = (uint)attr;" (assignment_expression "local_54 = (uint)attr" identifier = (cast_expression "(uint)attr" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar4 = (**(code **)((int)stdoutput->xvec->backend_data + 0x68))(stdoutput,local_44);" (assignment_expression "iVar4 = (**(code **)((int)stdoutput->xvec->backend_data + 0x68))(stdoutput,local_44)" identifier = (call_expression "(**(code **)((int)stdoutput->xvec->backend_data + 0x68))(stdoutput,local_44)" (parenthesized_expression "(**(code **)((int)stdoutput->xvec->backend_data + 0x68))" ( (pointer_expression "**(code **)((int)stdoutput->xvec->backend_data + 0x68)" * (pointer_expression "*(code **)((int)stdoutput->xvec->backend_data + 0x68)" * (cast_expression "(code **)((int)stdoutput->xvec->backend_data + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)stdoutput->xvec->backend_data + 0x68)" ( (binary_expression "(int)stdoutput->xvec->backend_data + 0x68" (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_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) {\nLAB_00049408:\n    local_54 = (uint)attr;\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar5,name);\n    }\n    uVar10 = local_54 >> 1 & 1;\n    uVar11 = local_54 >> 0x10 & 0x8000 |\n             local_54 << 0x13 & 0x1000000 |\n             local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar10 | (local_54 & 4) << 2;\n    uVar10 = local_48 != 8 & uVar10;\nLAB_0004947f:\n    local_3c = local_54 & 1;\n    uVar8 = 4;\n    if (local_3c == 0) goto LAB_00049640;\n  }\n  else {\n    uVar10 = *(uint *)(iVar4 + 0xc);\n    if ((type == 0) || (type == uVar10)) {\nLAB_00049400:\n      local_48 = uVar10;\n      if (paVar3 != (segT)0x0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar10 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar10 = *(uint *)(iVar4 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar10 == 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    uVar10 = ~*(uint *)(iVar4 + 0x10) & local_54;\n    if ((uVar10 & 0xfffff) == 0) {\nLAB_00049610:\n      attr = CONCAT44(*(uint *)(iVar4 + 0x14) | local_50,*(uint *)(iVar4 + 0x10) | local_54);\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar4 + 0xc) == 7) {\n      if ((int)(attr - 2 >> 0x20) != 0 || (attr - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) goto LAB_000495fd;\nLAB_0004994d:\n        if (group_name == (char *)0x0) {\nLAB_00049959:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar4 + 0x14) & local_50) == 0 && (uVar10 & 0xffffffcf) == 0)\n      goto LAB_00049610;\n    }\n    bVar14 = false;\n    bVar16 = attr == 2;\n    if (!bVar16) {\n      bVar14 = false;\n      bVar16 = attr == 4;\n      if (attr != 4) goto LAB_0004994d;\n      iVar4 = 0x10;\n      pbVar12 = (byte *)name;\n      pbVar13 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar14 = *pbVar12 < *pbVar13;\n        bVar16 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar14 && !bVar16) == bVar14) {\n        uVar11 = 0x10;\n        uVar8 = 0xc;\n        uVar10 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (group_name == (char *)0x0) goto LAB_00049959;\n      uVar10 = local_54 >> 1 & 1;\n      uVar11 = local_54 >> 0x10 & 0x8000 |\n               local_54 & 0x400 | local_54 * 4 & 0x10 | uVar10 | local_54 << 0x13 & 0x800000 |\n               local_54 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar10;\n      uVar10 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar4 = 8;\n    pbVar12 = (byte *)name;\n    pbVar13 = (byte *)".interp";\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (!bVar14) {\n      iVar4 = 8;\n      pbVar12 = (byte *)name;\n      pbVar13 = (byte *)".strtab";\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar15 = *pbVar12 < *pbVar13;\n        bVar14 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar14);\n      bVar16 = false;\n      bVar14 = (!bVar15 && !bVar14) == bVar15;\n      if (!bVar14) {\n        iVar4 = 8;\n        pbVar12 = (byte *)name;\n        pbVar13 = (byte *)".symtab";\n        do {\n          if (iVar4 == 0) break;\n          iVar4 = iVar4 + -1;\n          bVar16 = *pbVar12 < *pbVar13;\n          bVar14 = *pbVar12 == *pbVar13;\n          pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);\n        if ((!bVar16 && !bVar14) != bVar16) goto LAB_000498a2;\n      }\n    }\n    uVar10 = (uint)(local_48 != 8);\n    uVar11 = 1;\nLAB_00049640:\n    uVar8 = 0xc;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00049408:\n    local_54 = (uint)attr;\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar5,name);\n    }\n    uVar10 = local_54 >> 1 & 1;\n    uVar11 = local_54 >> 0x10 & 0x8000 |\n             local_54 << 0x13 & 0x1000000 |\n             local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar10 | (local_54 & 4) << 2;\n    uVar10 = local_48 != 8 & uVar10;\nLAB_0004947f:\n    local_3c = local_54 & 1;\n    uVar8 = 4;\n    if (local_3c == 0) goto LAB_00049640;\n  }" { (labeled_statement "LAB_00049408:\n    local_54 = (uint)attr;" statement_identifier : (expression_statement "local_54 = (uint)attr;" (assignment_expression "local_54 = (uint)attr" identifier = (cast_expression "(uint)attr" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (if_statement "if ((local_54 & 0x1000002) == 0x1000000) {\n      pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar5,name);\n    }" if (parenthesized_expression "((local_54 & 0x1000002) == 0x1000000)" ( (binary_expression "(local_54 & 0x1000002) == 0x1000000" (parenthesized_expression "(local_54 & 0x1000002)" ( (binary_expression "local_54 & 0x1000002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\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,0x1000000);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000)" identifier = (cast_expression "(char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000)" identifier (argument_list "(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000)" ( number_literal , (string_literal ""SHF_ALLOC isn\'t set for GNU_MBIND section: %s"" " string_content escape_sequence string_content ") , number_literal , number_literal ))))) ;) comment (expression_statement "as_fatal(pcVar5,name);" (call_expression "as_fatal(pcVar5,name)" identifier (argument_list "(pcVar5,name)" ( identifier , identifier ))) ;) })) (expression_statement "uVar10 = local_54 >> 1 & 1;" (assignment_expression "uVar10 = local_54 >> 1 & 1" identifier = (binary_expression "local_54 >> 1 & 1" (binary_expression "local_54 >> 1" identifier >> number_literal) & number_literal)) ;) (expression_statement "uVar11 = local_54 >> 0x10 & 0x8000 |\n             local_54 << 0x13 & 0x1000000 |\n             local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar10 | (local_54 & 4) << 2;" (assignment_expression "uVar11 = local_54 >> 0x10 & 0x8000 |\n             local_54 << 0x13 & 0x1000000 |\n             local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar10 | (local_54 & 4) << 2" identifier = (binary_expression "local_54 >> 0x10 & 0x8000 |\n             local_54 << 0x13 & 0x1000000 |\n             local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar10 | (local_54 & 4) << 2" (binary_expression "local_54 >> 0x10 & 0x8000 |\n             local_54 << 0x13 & 0x1000000 |\n             local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar10" (binary_expression "local_54 >> 0x10 & 0x8000 |\n             local_54 << 0x13 & 0x1000000 |\n             local_54 & 0x400 | local_54 << 0x13 & 0x800000" (binary_expression "local_54 >> 0x10 & 0x8000 |\n             local_54 << 0x13 & 0x1000000 |\n             local_54 & 0x400" (binary_expression "local_54 >> 0x10 & 0x8000 |\n             local_54 << 0x13 & 0x1000000" (binary_expression "local_54 >> 0x10 & 0x8000" (binary_expression "local_54 >> 0x10" identifier >> number_literal) & number_literal) | (binary_expression "local_54 << 0x13 & 0x1000000" (binary_expression "local_54 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "local_54 & 0x400" identifier & number_literal)) | (binary_expression "local_54 << 0x13 & 0x800000" (binary_expression "local_54 << 0x13" identifier << number_literal) & number_literal)) | identifier) | (binary_expression "(local_54 & 4) << 2" (parenthesized_expression "(local_54 & 4)" ( (binary_expression "local_54 & 4" identifier & number_literal) )) << number_literal))) ;) (expression_statement "uVar10 = local_48 != 8 & uVar10;" (assignment_expression "uVar10 = local_48 != 8 & uVar10" identifier = (binary_expression "local_48 != 8 & uVar10" (binary_expression "local_48 != 8" identifier != number_literal) & identifier)) ;) (labeled_statement "LAB_0004947f:\n    local_3c = local_54 & 1;" statement_identifier : (expression_statement "local_3c = local_54 & 1;" (assignment_expression "local_3c = local_54 & 1" identifier = (binary_expression "local_54 & 1" identifier & number_literal)) ;)) (expression_statement "uVar8 = 4;" (assignment_expression "uVar8 = 4" identifier = number_literal) ;) (if_statement "if (local_3c == 0) goto LAB_00049640;" if (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) )) (goto_statement "goto LAB_00049640;" goto statement_identifier ;)) }) (else_clause "else {\n    uVar10 = *(uint *)(iVar4 + 0xc);\n    if ((type == 0) || (type == uVar10)) {\nLAB_00049400:\n      local_48 = uVar10;\n      if (paVar3 != (segT)0x0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar10 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar10 = *(uint *)(iVar4 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar10 == 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    uVar10 = ~*(uint *)(iVar4 + 0x10) & local_54;\n    if ((uVar10 & 0xfffff) == 0) {\nLAB_00049610:\n      attr = CONCAT44(*(uint *)(iVar4 + 0x14) | local_50,*(uint *)(iVar4 + 0x10) | local_54);\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar4 + 0xc) == 7) {\n      if ((int)(attr - 2 >> 0x20) != 0 || (attr - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) goto LAB_000495fd;\nLAB_0004994d:\n        if (group_name == (char *)0x0) {\nLAB_00049959:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar4 + 0x14) & local_50) == 0 && (uVar10 & 0xffffffcf) == 0)\n      goto LAB_00049610;\n    }\n    bVar14 = false;\n    bVar16 = attr == 2;\n    if (!bVar16) {\n      bVar14 = false;\n      bVar16 = attr == 4;\n      if (attr != 4) goto LAB_0004994d;\n      iVar4 = 0x10;\n      pbVar12 = (byte *)name;\n      pbVar13 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar14 = *pbVar12 < *pbVar13;\n        bVar16 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar14 && !bVar16) == bVar14) {\n        uVar11 = 0x10;\n        uVar8 = 0xc;\n        uVar10 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (group_name == (char *)0x0) goto LAB_00049959;\n      uVar10 = local_54 >> 1 & 1;\n      uVar11 = local_54 >> 0x10 & 0x8000 |\n               local_54 & 0x400 | local_54 * 4 & 0x10 | uVar10 | local_54 << 0x13 & 0x800000 |\n               local_54 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar10;\n      uVar10 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar4 = 8;\n    pbVar12 = (byte *)name;\n    pbVar13 = (byte *)".interp";\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (!bVar14) {\n      iVar4 = 8;\n      pbVar12 = (byte *)name;\n      pbVar13 = (byte *)".strtab";\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar15 = *pbVar12 < *pbVar13;\n        bVar14 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar14);\n      bVar16 = false;\n      bVar14 = (!bVar15 && !bVar14) == bVar15;\n      if (!bVar14) {\n        iVar4 = 8;\n        pbVar12 = (byte *)name;\n        pbVar13 = (byte *)".symtab";\n        do {\n          if (iVar4 == 0) break;\n          iVar4 = iVar4 + -1;\n          bVar16 = *pbVar12 < *pbVar13;\n          bVar14 = *pbVar12 == *pbVar13;\n          pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);\n        if ((!bVar16 && !bVar14) != bVar16) goto LAB_000498a2;\n      }\n    }\n    uVar10 = (uint)(local_48 != 8);\n    uVar11 = 1;\nLAB_00049640:\n    uVar8 = 0xc;\n  }" else (compound_statement "{\n    uVar10 = *(uint *)(iVar4 + 0xc);\n    if ((type == 0) || (type == uVar10)) {\nLAB_00049400:\n      local_48 = uVar10;\n      if (paVar3 != (segT)0x0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar10 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar10 = *(uint *)(iVar4 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar10 == 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    uVar10 = ~*(uint *)(iVar4 + 0x10) & local_54;\n    if ((uVar10 & 0xfffff) == 0) {\nLAB_00049610:\n      attr = CONCAT44(*(uint *)(iVar4 + 0x14) | local_50,*(uint *)(iVar4 + 0x10) | local_54);\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar4 + 0xc) == 7) {\n      if ((int)(attr - 2 >> 0x20) != 0 || (attr - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) goto LAB_000495fd;\nLAB_0004994d:\n        if (group_name == (char *)0x0) {\nLAB_00049959:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar4 + 0x14) & local_50) == 0 && (uVar10 & 0xffffffcf) == 0)\n      goto LAB_00049610;\n    }\n    bVar14 = false;\n    bVar16 = attr == 2;\n    if (!bVar16) {\n      bVar14 = false;\n      bVar16 = attr == 4;\n      if (attr != 4) goto LAB_0004994d;\n      iVar4 = 0x10;\n      pbVar12 = (byte *)name;\n      pbVar13 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar14 = *pbVar12 < *pbVar13;\n        bVar16 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar14 && !bVar16) == bVar14) {\n        uVar11 = 0x10;\n        uVar8 = 0xc;\n        uVar10 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (group_name == (char *)0x0) goto LAB_00049959;\n      uVar10 = local_54 >> 1 & 1;\n      uVar11 = local_54 >> 0x10 & 0x8000 |\n               local_54 & 0x400 | local_54 * 4 & 0x10 | uVar10 | local_54 << 0x13 & 0x800000 |\n               local_54 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar10;\n      uVar10 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar4 = 8;\n    pbVar12 = (byte *)name;\n    pbVar13 = (byte *)".interp";\n    do {\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n    } while (bVar16);\n    bVar15 = false;\n    bVar14 = (!bVar14 && !bVar16) == bVar14;\n    if (!bVar14) {\n      iVar4 = 8;\n      pbVar12 = (byte *)name;\n      pbVar13 = (byte *)".strtab";\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar15 = *pbVar12 < *pbVar13;\n        bVar14 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar14);\n      bVar16 = false;\n      bVar14 = (!bVar15 && !bVar14) == bVar15;\n      if (!bVar14) {\n        iVar4 = 8;\n        pbVar12 = (byte *)name;\n        pbVar13 = (byte *)".symtab";\n        do {\n          if (iVar4 == 0) break;\n          iVar4 = iVar4 + -1;\n          bVar16 = *pbVar12 < *pbVar13;\n          bVar14 = *pbVar12 == *pbVar13;\n          pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);\n        if ((!bVar16 && !bVar14) != bVar16) goto LAB_000498a2;\n      }\n    }\n    uVar10 = (uint)(local_48 != 8);\n    uVar11 = 1;\nLAB_00049640:\n    uVar8 = 0xc;\n  }" { (expression_statement "uVar10 = *(uint *)(iVar4 + 0xc);" (assignment_expression "uVar10 = *(uint *)(iVar4 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar4 + 0xc)" * (cast_expression "(uint *)(iVar4 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((type == 0) || (type == uVar10)) {\nLAB_00049400:\n      local_48 = uVar10;\n      if (paVar3 != (segT)0x0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar10 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar10 = *(uint *)(iVar4 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar10 == 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 == uVar10))" ( (binary_expression "(type == 0) || (type == uVar10)" (parenthesized_expression "(type == 0)" ( (binary_expression "type == 0" identifier == number_literal) )) || (parenthesized_expression "(type == uVar10)" ( (binary_expression "type == uVar10" identifier == identifier) ))) )) (compound_statement "{\nLAB_00049400:\n      local_48 = uVar10;\n      if (paVar3 != (segT)0x0) goto LAB_00049408;\n    }" { (labeled_statement "LAB_00049400:\n      local_48 = uVar10;" statement_identifier : (expression_statement "local_48 = uVar10;" (assignment_expression "local_48 = uVar10" identifier = identifier) ;)) (if_statement "if (paVar3 != (segT)0x0) goto LAB_00049408;" 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_00049408;" goto statement_identifier ;)) }) (else_clause "else {\n      if ((uVar10 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar10 = *(uint *)(iVar4 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar10 == 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 ((uVar10 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar10 = *(uint *)(iVar4 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar10 == 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 ((uVar10 - 0xe < 3) || (paVar3 != (segT)0x0)) {\n        pcVar5 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar5,name);\n        uVar10 = *(uint *)(iVar4 + 0xc);\n        goto LAB_00049400;\n      }" if (parenthesized_expression "((uVar10 - 0xe < 3) || (paVar3 != (segT)0x0))" ( (binary_expression "(uVar10 - 0xe < 3) || (paVar3 != (segT)0x0)" (parenthesized_expression "(uVar10 - 0xe < 3)" ( (binary_expression "uVar10 - 0xe < 3" (binary_expression "uVar10 - 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        uVar10 = *(uint *)(iVar4 + 0xc);\n        goto LAB_00049400;\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 "uVar10 = *(uint *)(iVar4 + 0xc);" (assignment_expression "uVar10 = *(uint *)(iVar4 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar4 + 0xc)" * (cast_expression "(uint *)(iVar4 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00049400;" goto statement_identifier ;) })) (if_statement "if ((uVar10 == 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 "((uVar10 == 7) || (0x6fffffff < type))" ( (binary_expression "(uVar10 == 7) || (0x6fffffff < type)" (parenthesized_expression "(uVar10 == 7)" ( (binary_expression "uVar10 == 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 "uVar10 = ~*(uint *)(iVar4 + 0x10) & local_54;" (assignment_expression "uVar10 = ~*(uint *)(iVar4 + 0x10) & local_54" identifier = (binary_expression "~*(uint *)(iVar4 + 0x10) & local_54" (unary_expression "~*(uint *)(iVar4 + 0x10)" ~ (pointer_expression "*(uint *)(iVar4 + 0x10)" * (cast_expression "(uint *)(iVar4 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) ))))) & identifier)) ;) (if_statement "if ((uVar10 & 0xfffff) == 0) {\nLAB_00049610:\n      attr = CONCAT44(*(uint *)(iVar4 + 0x14) | local_50,*(uint *)(iVar4 + 0x10) | local_54);\n      goto LAB_00049408;\n    }" if (parenthesized_expression "((uVar10 & 0xfffff) == 0)" ( (binary_expression "(uVar10 & 0xfffff) == 0" (parenthesized_expression "(uVar10 & 0xfffff)" ( (binary_expression "uVar10 & 0xfffff" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00049610:\n      attr = CONCAT44(*(uint *)(iVar4 + 0x14) | local_50,*(uint *)(iVar4 + 0x10) | local_54);\n      goto LAB_00049408;\n    }" { (labeled_statement "LAB_00049610:\n      attr = CONCAT44(*(uint *)(iVar4 + 0x14) | local_50,*(uint *)(iVar4 + 0x10) | local_54);" statement_identifier : (expression_statement "attr = CONCAT44(*(uint *)(iVar4 + 0x14) | local_50,*(uint *)(iVar4 + 0x10) | local_54);" (assignment_expression "attr = CONCAT44(*(uint *)(iVar4 + 0x14) | local_50,*(uint *)(iVar4 + 0x10) | local_54)" identifier = (call_expression "CONCAT44(*(uint *)(iVar4 + 0x14) | local_50,*(uint *)(iVar4 + 0x10) | local_54)" identifier (argument_list "(*(uint *)(iVar4 + 0x14) | local_50,*(uint *)(iVar4 + 0x10) | local_54)" ( (binary_expression "*(uint *)(iVar4 + 0x14) | local_50" (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) | identifier) , (binary_expression "*(uint *)(iVar4 + 0x10) | local_54" (pointer_expression "*(uint *)(iVar4 + 0x10)" * (cast_expression "(uint *)(iVar4 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) | identifier) )))) ;)) (goto_statement "goto LAB_00049408;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar4 + 0xc) == 7) {\n      if ((int)(attr - 2 >> 0x20) != 0 || (attr - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) goto LAB_000495fd;\nLAB_0004994d:\n        if (group_name == (char *)0x0) {\nLAB_00049959:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }" if (parenthesized_expression "(*(int *)(iVar4 + 0xc) == 7)" ( (binary_expression "*(int *)(iVar4 + 0xc) == 7" (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if ((int)(attr - 2 >> 0x20) != 0 || (attr - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) goto LAB_000495fd;\nLAB_0004994d:\n        if (group_name == (char *)0x0) {\nLAB_00049959:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }" { (if_statement "if ((int)(attr - 2 >> 0x20) != 0 || (attr - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) goto LAB_000495fd;\nLAB_0004994d:\n        if (group_name == (char *)0x0) {\nLAB_00049959:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00049408;\n      }" if (parenthesized_expression "((int)(attr - 2 >> 0x20) != 0 || (attr - 2 & 0xfffffffd) != 0)" ( (binary_expression "(int)(attr - 2 >> 0x20) != 0 || (attr - 2 & 0xfffffffd) != 0" (binary_expression "(int)(attr - 2 >> 0x20) != 0" (cast_expression "(int)(attr - 2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(attr - 2 >> 0x20)" ( (binary_expression "attr - 2 >> 0x20" (binary_expression "attr - 2" identifier - number_literal) >> number_literal) ))) != number_literal) || (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 *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) goto LAB_000495fd;\nLAB_0004994d:\n        if (group_name == (char *)0x0) {\nLAB_00049959:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }\n        goto LAB_00049408;\n      }" { (if_statement "if ((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) goto LAB_000495fd;" if (parenthesized_expression "((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.'))" ( (binary_expression "(*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')" (parenthesized_expression "(*(int *)(iVar4 + 8) == -2)" ( (binary_expression "*(int *)(iVar4 + 8) == -2" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(name[*(int *)(iVar4 + 4)] == '.')" ( (binary_expression "name[*(int *)(iVar4 + 4)] == '.'" (subscript_expression "name[*(int *)(iVar4 + 4)]" identifier [ (pointer_expression "*(int *)(iVar4 + 4)" * (cast_expression "(int *)(iVar4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) ]) == (char_literal "'.'" ' character ')) ))) )) (goto_statement "goto LAB_000495fd;" goto statement_identifier ;)) (labeled_statement "LAB_0004994d:\n        if (group_name == (char *)0x0) {\nLAB_00049959:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }" statement_identifier : (if_statement "if (group_name == (char *)0x0) {\nLAB_00049959:\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_00049959:\n          pcVar5 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar5,name);\n        }" { (labeled_statement "LAB_00049959:\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_00049408;" goto statement_identifier ;) })) (goto_statement "goto LAB_00049610;" goto statement_identifier ;) })) (if_statement "if ((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar4 + 0x14) & local_50) == 0 && (uVar10 & 0xffffffcf) == 0)\n      goto LAB_00049610;\n    }" if (parenthesized_expression "((*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.'))" ( (binary_expression "(*(int *)(iVar4 + 8) == -2) && (name[*(int *)(iVar4 + 4)] == '.')" (parenthesized_expression "(*(int *)(iVar4 + 8) == -2)" ( (binary_expression "*(int *)(iVar4 + 8) == -2" (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(name[*(int *)(iVar4 + 4)] == '.')" ( (binary_expression "name[*(int *)(iVar4 + 4)] == '.'" (subscript_expression "name[*(int *)(iVar4 + 4)]" identifier [ (pointer_expression "*(int *)(iVar4 + 4)" * (cast_expression "(int *)(iVar4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) ]) == (char_literal "'.'" ' character ')) ))) )) (compound_statement "{\nLAB_000495fd:\n      if ((~*(uint *)(iVar4 + 0x14) & local_50) == 0 && (uVar10 & 0xffffffcf) == 0)\n      goto LAB_00049610;\n    }" { (labeled_statement "LAB_000495fd:\n      if ((~*(uint *)(iVar4 + 0x14) & local_50) == 0 && (uVar10 & 0xffffffcf) == 0)\n      goto LAB_00049610;" statement_identifier : (if_statement "if ((~*(uint *)(iVar4 + 0x14) & local_50) == 0 && (uVar10 & 0xffffffcf) == 0)\n      goto LAB_00049610;" if (parenthesized_expression "((~*(uint *)(iVar4 + 0x14) & local_50) == 0 && (uVar10 & 0xffffffcf) == 0)" ( (binary_expression "(~*(uint *)(iVar4 + 0x14) & local_50) == 0 && (uVar10 & 0xffffffcf) == 0" (binary_expression "(~*(uint *)(iVar4 + 0x14) & local_50) == 0" (parenthesized_expression "(~*(uint *)(iVar4 + 0x14) & local_50)" ( (binary_expression "~*(uint *)(iVar4 + 0x14) & local_50" (unary_expression "~*(uint *)(iVar4 + 0x14)" ~ (pointer_expression "*(uint *)(iVar4 + 0x14)" * (cast_expression "(uint *)(iVar4 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) ))))) & identifier) )) == number_literal) && (binary_expression "(uVar10 & 0xffffffcf) == 0" (parenthesized_expression "(uVar10 & 0xffffffcf)" ( (binary_expression "uVar10 & 0xffffffcf" identifier & number_literal) )) == number_literal)) )) (goto_statement "goto LAB_00049610;" goto statement_identifier ;))) })) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar16 = attr == 2;" (assignment_expression "bVar16 = attr == 2" identifier = (binary_expression "attr == 2" identifier == number_literal)) ;) (if_statement "if (!bVar16) {\n      bVar14 = false;\n      bVar16 = attr == 4;\n      if (attr != 4) goto LAB_0004994d;\n      iVar4 = 0x10;\n      pbVar12 = (byte *)name;\n      pbVar13 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar14 = *pbVar12 < *pbVar13;\n        bVar16 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar14 && !bVar16) == bVar14) {\n        uVar11 = 0x10;\n        uVar8 = 0xc;\n        uVar10 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (group_name == (char *)0x0) goto LAB_00049959;\n      uVar10 = local_54 >> 1 & 1;\n      uVar11 = local_54 >> 0x10 & 0x8000 |\n               local_54 & 0x400 | local_54 * 4 & 0x10 | uVar10 | local_54 << 0x13 & 0x800000 |\n               local_54 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar10;\n      uVar10 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n      bVar14 = false;\n      bVar16 = attr == 4;\n      if (attr != 4) goto LAB_0004994d;\n      iVar4 = 0x10;\n      pbVar12 = (byte *)name;\n      pbVar13 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar14 = *pbVar12 < *pbVar13;\n        bVar16 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar16);\n      if ((!bVar14 && !bVar16) == bVar14) {\n        uVar11 = 0x10;\n        uVar8 = 0xc;\n        uVar10 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (group_name == (char *)0x0) goto LAB_00049959;\n      uVar10 = local_54 >> 1 & 1;\n      uVar11 = local_54 >> 0x10 & 0x8000 |\n               local_54 & 0x400 | local_54 * 4 & 0x10 | uVar10 | local_54 << 0x13 & 0x800000 |\n               local_54 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar10;\n      uVar10 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }" { (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar16 = attr == 4;" (assignment_expression "bVar16 = attr == 4" identifier = (binary_expression "attr == 4" identifier == number_literal)) ;) (if_statement "if (attr != 4) goto LAB_0004994d;" if (parenthesized_expression "(attr != 4)" ( (binary_expression "attr != 4" identifier != number_literal) )) (goto_statement "goto LAB_0004994d;" goto statement_identifier ;)) (expression_statement "iVar4 = 0x10;" (assignment_expression "iVar4 = 0x10" identifier = number_literal) ;) (expression_statement "pbVar12 = (byte *)name;" (assignment_expression "pbVar12 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar13 = (byte *)".note.GNU-stack";" (assignment_expression "pbVar13 = (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        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar14 = *pbVar12 < *pbVar13;\n        bVar16 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar16);" do (compound_statement "{\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar14 = *pbVar12 < *pbVar13;\n        bVar16 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      }" { (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar12 < *pbVar13;" (assignment_expression "bVar14 = *pbVar12 < *pbVar13" identifier = (binary_expression "*pbVar12 < *pbVar13" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar16 = *pbVar12 == *pbVar13;" (assignment_expression "bVar16 = *pbVar12 == *pbVar13" identifier = (binary_expression "*pbVar12 == *pbVar13" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar14 && !bVar16) == bVar14) {\n        uVar11 = 0x10;\n        uVar8 = 0xc;\n        uVar10 = 0;\n        goto LAB_00049495;\n      }" if (parenthesized_expression "((!bVar14 && !bVar16) == bVar14)" ( (binary_expression "(!bVar14 && !bVar16) == bVar14" (parenthesized_expression "(!bVar14 && !bVar16)" ( (binary_expression "!bVar14 && !bVar16" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier) )) (compound_statement "{\n        uVar11 = 0x10;\n        uVar8 = 0xc;\n        uVar10 = 0;\n        goto LAB_00049495;\n      }" { (expression_statement "uVar11 = 0x10;" (assignment_expression "uVar11 = 0x10" identifier = number_literal) ;) (expression_statement "uVar8 = 0xc;" (assignment_expression "uVar8 = 0xc" identifier = number_literal) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00049495;" goto statement_identifier ;) })) (labeled_statement "LAB_000498a2:\n      if (group_name == (char *)0x0) goto LAB_00049959;" statement_identifier : (if_statement "if (group_name == (char *)0x0) goto LAB_00049959;" 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_00049959;" goto statement_identifier ;))) (expression_statement "uVar10 = local_54 >> 1 & 1;" (assignment_expression "uVar10 = local_54 >> 1 & 1" identifier = (binary_expression "local_54 >> 1 & 1" (binary_expression "local_54 >> 1" identifier >> number_literal) & number_literal)) ;) (expression_statement "uVar11 = local_54 >> 0x10 & 0x8000 |\n               local_54 & 0x400 | local_54 * 4 & 0x10 | uVar10 | local_54 << 0x13 & 0x800000 |\n               local_54 << 0x13 & 0x1000000;" (assignment_expression "uVar11 = local_54 >> 0x10 & 0x8000 |\n               local_54 & 0x400 | local_54 * 4 & 0x10 | uVar10 | local_54 << 0x13 & 0x800000 |\n               local_54 << 0x13 & 0x1000000" identifier = (binary_expression "local_54 >> 0x10 & 0x8000 |\n               local_54 & 0x400 | local_54 * 4 & 0x10 | uVar10 | local_54 << 0x13 & 0x800000 |\n               local_54 << 0x13 & 0x1000000" (binary_expression "local_54 >> 0x10 & 0x8000 |\n               local_54 & 0x400 | local_54 * 4 & 0x10 | uVar10 | local_54 << 0x13 & 0x800000" (binary_expression "local_54 >> 0x10 & 0x8000 |\n               local_54 & 0x400 | local_54 * 4 & 0x10 | uVar10" (binary_expression "local_54 >> 0x10 & 0x8000 |\n               local_54 & 0x400 | local_54 * 4 & 0x10" (binary_expression "local_54 >> 0x10 & 0x8000 |\n               local_54 & 0x400" (binary_expression "local_54 >> 0x10 & 0x8000" (binary_expression "local_54 >> 0x10" identifier >> number_literal) & number_literal) | (binary_expression "local_54 & 0x400" identifier & number_literal)) | (binary_expression "local_54 * 4 & 0x10" (binary_expression "local_54 * 4" identifier * number_literal) & number_literal)) | identifier) | (binary_expression "local_54 << 0x13 & 0x800000" (binary_expression "local_54 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "local_54 << 0x13 & 0x1000000" (binary_expression "local_54 << 0x13" identifier << number_literal) & number_literal))) ;) (expression_statement "local_38 = (byte)uVar10;" (assignment_expression "local_38 = (byte)uVar10" identifier = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uVar10 = (uint)(local_48 != 8 & local_38);" (assignment_expression "uVar10 = (uint)(local_48 != 8 & local_38)" identifier = (call_expression "(uint)(local_48 != 8 & local_38)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_48 != 8 & local_38)" ( (binary_expression "local_48 != 8 & local_38" (binary_expression "local_48 != 8" identifier != number_literal) & identifier) )))) ;) (goto_statement "goto LAB_0004947f;" goto statement_identifier ;) })) (expression_statement "iVar4 = 8;" (assignment_expression "iVar4 = 8" identifier = number_literal) ;) (expression_statement "pbVar12 = (byte *)name;" (assignment_expression "pbVar12 = (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 (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n    } while (bVar16);" do (compound_statement "{\n      if (iVar4 == 0) break;\n      iVar4 = iVar4 + -1;\n      bVar14 = *pbVar12 < *pbVar13;\n      bVar16 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n    }" { (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar12 < *pbVar13;" (assignment_expression "bVar14 = *pbVar12 < *pbVar13" identifier = (binary_expression "*pbVar12 < *pbVar13" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar16 = *pbVar12 == *pbVar13;" (assignment_expression "bVar16 = *pbVar12 == *pbVar13" identifier = (binary_expression "*pbVar12 == *pbVar13" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (expression_statement "bVar14 = (!bVar14 && !bVar16) == bVar14;" (assignment_expression "bVar14 = (!bVar14 && !bVar16) == bVar14" identifier = (binary_expression "(!bVar14 && !bVar16) == bVar14" (parenthesized_expression "(!bVar14 && !bVar16)" ( (binary_expression "!bVar14 && !bVar16" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar14) {\n      iVar4 = 8;\n      pbVar12 = (byte *)name;\n      pbVar13 = (byte *)".strtab";\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar15 = *pbVar12 < *pbVar13;\n        bVar14 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar14);\n      bVar16 = false;\n      bVar14 = (!bVar15 && !bVar14) == bVar15;\n      if (!bVar14) {\n        iVar4 = 8;\n        pbVar12 = (byte *)name;\n        pbVar13 = (byte *)".symtab";\n        do {\n          if (iVar4 == 0) break;\n          iVar4 = iVar4 + -1;\n          bVar16 = *pbVar12 < *pbVar13;\n          bVar14 = *pbVar12 == *pbVar13;\n          pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);\n        if ((!bVar16 && !bVar14) != bVar16) goto LAB_000498a2;\n      }\n    }" if (parenthesized_expression "(!bVar14)" ( (unary_expression "!bVar14" ! identifier) )) (compound_statement "{\n      iVar4 = 8;\n      pbVar12 = (byte *)name;\n      pbVar13 = (byte *)".strtab";\n      do {\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar15 = *pbVar12 < *pbVar13;\n        bVar14 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar14);\n      bVar16 = false;\n      bVar14 = (!bVar15 && !bVar14) == bVar15;\n      if (!bVar14) {\n        iVar4 = 8;\n        pbVar12 = (byte *)name;\n        pbVar13 = (byte *)".symtab";\n        do {\n          if (iVar4 == 0) break;\n          iVar4 = iVar4 + -1;\n          bVar16 = *pbVar12 < *pbVar13;\n          bVar14 = *pbVar12 == *pbVar13;\n          pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);\n        if ((!bVar16 && !bVar14) != bVar16) goto LAB_000498a2;\n      }\n    }" { (expression_statement "iVar4 = 8;" (assignment_expression "iVar4 = 8" identifier = number_literal) ;) (expression_statement "pbVar12 = (byte *)name;" (assignment_expression "pbVar12 = (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 (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar15 = *pbVar12 < *pbVar13;\n        bVar14 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      } while (bVar14);" do (compound_statement "{\n        if (iVar4 == 0) break;\n        iVar4 = iVar4 + -1;\n        bVar15 = *pbVar12 < *pbVar13;\n        bVar14 = *pbVar12 == *pbVar13;\n        pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n        pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n      }" { (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar15 = *pbVar12 < *pbVar13;" (assignment_expression "bVar15 = *pbVar12 < *pbVar13" identifier = (binary_expression "*pbVar12 < *pbVar13" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar14 = *pbVar12 == *pbVar13;" (assignment_expression "bVar14 = *pbVar12 == *pbVar13" identifier = (binary_expression "*pbVar12 == *pbVar13" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) (expression_statement "bVar16 = false;" (assignment_expression "bVar16 = false" identifier = false) ;) (expression_statement "bVar14 = (!bVar15 && !bVar14) == bVar15;" (assignment_expression "bVar14 = (!bVar15 && !bVar14) == bVar15" identifier = (binary_expression "(!bVar15 && !bVar14) == bVar15" (parenthesized_expression "(!bVar15 && !bVar14)" ( (binary_expression "!bVar15 && !bVar14" (unary_expression "!bVar15" ! identifier) && (unary_expression "!bVar14" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar14) {\n        iVar4 = 8;\n        pbVar12 = (byte *)name;\n        pbVar13 = (byte *)".symtab";\n        do {\n          if (iVar4 == 0) break;\n          iVar4 = iVar4 + -1;\n          bVar16 = *pbVar12 < *pbVar13;\n          bVar14 = *pbVar12 == *pbVar13;\n          pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);\n        if ((!bVar16 && !bVar14) != bVar16) goto LAB_000498a2;\n      }" if (parenthesized_expression "(!bVar14)" ( (unary_expression "!bVar14" ! identifier) )) (compound_statement "{\n        iVar4 = 8;\n        pbVar12 = (byte *)name;\n        pbVar13 = (byte *)".symtab";\n        do {\n          if (iVar4 == 0) break;\n          iVar4 = iVar4 + -1;\n          bVar16 = *pbVar12 < *pbVar13;\n          bVar14 = *pbVar12 == *pbVar13;\n          pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);\n        if ((!bVar16 && !bVar14) != bVar16) goto LAB_000498a2;\n      }" { (expression_statement "iVar4 = 8;" (assignment_expression "iVar4 = 8" identifier = number_literal) ;) (expression_statement "pbVar12 = (byte *)name;" (assignment_expression "pbVar12 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar13 = (byte *)".symtab";" (assignment_expression "pbVar13 = (byte *)".symtab"" identifier = (cast_expression "(byte *)".symtab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".symtab"" " string_content "))) ;) (do_statement "do {\n          if (iVar4 == 0) break;\n          iVar4 = iVar4 + -1;\n          bVar16 = *pbVar12 < *pbVar13;\n          bVar14 = *pbVar12 == *pbVar13;\n          pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        } while (bVar14);" do (compound_statement "{\n          if (iVar4 == 0) break;\n          iVar4 = iVar4 + -1;\n          bVar16 = *pbVar12 < *pbVar13;\n          bVar14 = *pbVar12 == *pbVar13;\n          pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;\n          pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;\n        }" { (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar12 < *pbVar13;" (assignment_expression "bVar16 = *pbVar12 < *pbVar13" identifier = (binary_expression "*pbVar12 < *pbVar13" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar14 = *pbVar12 == *pbVar13;" (assignment_expression "bVar14 = *pbVar12 == *pbVar13" identifier = (binary_expression "*pbVar12 == *pbVar13" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar17 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar17 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar17 * -2" identifier + (binary_expression "(uint)bVar17 * -2" (cast_expression "(uint)bVar17" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) (if_statement "if ((!bVar16 && !bVar14) != bVar16) goto LAB_000498a2;" if (parenthesized_expression "((!bVar16 && !bVar14) != bVar16)" ( (binary_expression "(!bVar16 && !bVar14) != bVar16" (parenthesized_expression "(!bVar16 && !bVar14)" ( (binary_expression "!bVar16 && !bVar14" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar14" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_000498a2;" goto statement_identifier ;)) })) })) (expression_statement "uVar10 = (uint)(local_48 != 8);" (assignment_expression "uVar10 = (uint)(local_48 != 8)" identifier = (call_expression "(uint)(local_48 != 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_48 != 8)" ( (binary_expression "local_48 != 8" identifier != number_literal) )))) ;) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00049640:\n    uVar8 = 0xc;" statement_identifier : (expression_statement "uVar8 = 0xc;" (assignment_expression "uVar8 = 0xc" identifier = number_literal) ;)) }))) (expression_statement "uVar10 = uVar10 * 2;" (assignment_expression "uVar10 = uVar10 * 2" identifier = (binary_expression "uVar10 * 2" identifier * number_literal)) ;) (labeled_statement "LAB_00049495:\n  uVar10 = uVar11 | uVar8 | uVar10;" statement_identifier : (expression_statement "uVar10 = uVar11 | uVar8 | uVar10;" (assignment_expression "uVar10 = uVar11 | uVar8 | uVar10" identifier = (binary_expression "uVar11 | uVar8 | uVar10" (binary_expression "uVar11 | uVar8" identifier | identifier) | identifier)) ;)) (if_statement "if (linkonce != 0) {\n    uVar10 = uVar10 | 0x20000;\n  }" if (parenthesized_expression "(linkonce != 0)" ( (binary_expression "linkonce != 0" identifier != number_literal) )) (compound_statement "{\n    uVar10 = uVar10 | 0x20000;\n  }" { (expression_statement "uVar10 = uVar10 | 0x20000;" (assignment_expression "uVar10 = uVar10 | 0x20000" identifier = (binary_expression "uVar10 | 0x20000" identifier | number_literal)) ;) })) (if_statement "if (paVar3 == (segT)0x0) {\n    if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar10);\n    }\n    pvVar1 = local_44->used_by_bfd;\n    *(uint *)((int)pvVar1 + 4) = local_48;\n    *(bfd_vma *)((int)pvVar1 + 8) = attr;\n    *(uint *)((int)pvVar1 + 0x2c) = info;\n    if (local_48 == 8) {\n      pbVar12 = (byte *)((int)local_44->userdata + 4);\n      *pbVar12 = *pbVar12 | 2;\n    }\n    bfd_set_section_flags(stdoutput,local_44,uVar10);\n    if ((uVar10 & 0x800000) != 0) {\n      local_44->entsize = entsize;\n    }\n    *(char **)((int)local_44->used_by_bfd + 0x84) = group_name;\n    psVar7 = symbol_find(name);\n    if (psVar7 != (symbolS *)0x0) {\n      symbol_set_bfdsym(psVar7,local_44->symbol);\n      return;\n    }\n    psVar7 = section_symbol(local_44);\n    symbol_table_insert(psVar7);\n  }\n  else {\n    if ((local_48 != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_48)) {\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 ^ uVar10) & 0x183841b) == 0) {\n        *(bfd_vma *)((int)local_44->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 (((uVar10 & 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_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar10);\n    }\n    pvVar1 = local_44->used_by_bfd;\n    *(uint *)((int)pvVar1 + 4) = local_48;\n    *(bfd_vma *)((int)pvVar1 + 8) = attr;\n    *(uint *)((int)pvVar1 + 0x2c) = info;\n    if (local_48 == 8) {\n      pbVar12 = (byte *)((int)local_44->userdata + 4);\n      *pbVar12 = *pbVar12 | 2;\n    }\n    bfd_set_section_flags(stdoutput,local_44,uVar10);\n    if ((uVar10 & 0x800000) != 0) {\n      local_44->entsize = entsize;\n    }\n    *(char **)((int)local_44->used_by_bfd + 0x84) = group_name;\n    psVar7 = symbol_find(name);\n    if (psVar7 != (symbolS *)0x0) {\n      symbol_set_bfdsym(psVar7,local_44->symbol);\n      return;\n    }\n    psVar7 = section_symbol(local_44);\n    symbol_table_insert(psVar7);\n  }" { (if_statement "if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar10);\n    }" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (compound_statement "{\n      local_48 = bfd_elf_get_default_section_type(uVar10);\n    }" { (expression_statement "local_48 = bfd_elf_get_default_section_type(uVar10);" (assignment_expression "local_48 = bfd_elf_get_default_section_type(uVar10)" identifier = (call_expression "bfd_elf_get_default_section_type(uVar10)" identifier (argument_list "(uVar10)" ( identifier )))) ;) })) (expression_statement "pvVar1 = local_44->used_by_bfd;" (assignment_expression "pvVar1 = local_44->used_by_bfd" identifier = (field_expression "local_44->used_by_bfd" identifier -> field_identifier)) ;) (expression_statement "*(uint *)((int)pvVar1 + 4) = local_48;" (assignment_expression "*(uint *)((int)pvVar1 + 4) = local_48" (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 + 0x2c) = info;" (assignment_expression "*(uint *)((int)pvVar1 + 0x2c) = info" (pointer_expression "*(uint *)((int)pvVar1 + 0x2c)" * (cast_expression "(uint *)((int)pvVar1 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar1 + 0x2c)" ( (binary_expression "(int)pvVar1 + 0x2c" (cast_expression "(int)pvVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (local_48 == 8) {\n      pbVar12 = (byte *)((int)local_44->userdata + 4);\n      *pbVar12 = *pbVar12 | 2;\n    }" if (parenthesized_expression "(local_48 == 8)" ( (binary_expression "local_48 == 8" identifier == number_literal) )) (compound_statement "{\n      pbVar12 = (byte *)((int)local_44->userdata + 4);\n      *pbVar12 = *pbVar12 | 2;\n    }" { (expression_statement "pbVar12 = (byte *)((int)local_44->userdata + 4);" (assignment_expression "pbVar12 = (byte *)((int)local_44->userdata + 4)" identifier = (cast_expression "(byte *)((int)local_44->userdata + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44->userdata + 4)" ( (binary_expression "(int)local_44->userdata + 4" (cast_expression "(int)local_44->userdata" ( (type_descriptor "int" primitive_type) ) (field_expression "local_44->userdata" identifier -> field_identifier)) + number_literal) )))) ;) (expression_statement "*pbVar12 = *pbVar12 | 2;" (assignment_expression "*pbVar12 = *pbVar12 | 2" (pointer_expression "*pbVar12" * identifier) = (binary_expression "*pbVar12 | 2" (pointer_expression "*pbVar12" * identifier) | number_literal)) ;) })) (expression_statement "bfd_set_section_flags(stdoutput,local_44,uVar10);" (call_expression "bfd_set_section_flags(stdoutput,local_44,uVar10)" identifier (argument_list "(stdoutput,local_44,uVar10)" ( identifier , identifier , identifier ))) ;) (if_statement "if ((uVar10 & 0x800000) != 0) {\n      local_44->entsize = entsize;\n    }" if (parenthesized_expression "((uVar10 & 0x800000) != 0)" ( (binary_expression "(uVar10 & 0x800000) != 0" (parenthesized_expression "(uVar10 & 0x800000)" ( (binary_expression "uVar10 & 0x800000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      local_44->entsize = entsize;\n    }" { (expression_statement "local_44->entsize = entsize;" (assignment_expression "local_44->entsize = entsize" (field_expression "local_44->entsize" identifier -> field_identifier) = identifier) ;) })) (expression_statement "*(char **)((int)local_44->used_by_bfd + 0x84) = group_name;" (assignment_expression "*(char **)((int)local_44->used_by_bfd + 0x84) = group_name" (pointer_expression "*(char **)((int)local_44->used_by_bfd + 0x84)" * (cast_expression "(char **)((int)local_44->used_by_bfd + 0x84)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_44->used_by_bfd + 0x84)" ( (binary_expression "(int)local_44->used_by_bfd + 0x84" (cast_expression "(int)local_44->used_by_bfd" ( (type_descriptor "int" primitive_type) ) (field_expression "local_44->used_by_bfd" identifier -> field_identifier)) + number_literal) )))) = identifier) ;) (expression_statement "psVar7 = symbol_find(name);" (assignment_expression "psVar7 = symbol_find(name)" identifier = (call_expression "symbol_find(name)" identifier (argument_list "(name)" ( identifier )))) ;) (if_statement "if (psVar7 != (symbolS *)0x0) {\n      symbol_set_bfdsym(psVar7,local_44->symbol);\n      return;\n    }" if (parenthesized_expression "(psVar7 != (symbolS *)0x0)" ( (binary_expression "psVar7 != (symbolS *)0x0" identifier != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      symbol_set_bfdsym(psVar7,local_44->symbol);\n      return;\n    }" { (expression_statement "symbol_set_bfdsym(psVar7,local_44->symbol);" (call_expression "symbol_set_bfdsym(psVar7,local_44->symbol)" identifier (argument_list "(psVar7,local_44->symbol)" ( identifier , (field_expression "local_44->symbol" identifier -> field_identifier) ))) ;) (return_statement "return;" return ;) })) (expression_statement "psVar7 = section_symbol(local_44);" (assignment_expression "psVar7 = section_symbol(local_44)" identifier = (call_expression "section_symbol(local_44)" identifier (argument_list "(local_44)" ( identifier )))) ;) (expression_statement "symbol_table_insert(psVar7);" (call_expression "symbol_table_insert(psVar7)" identifier (argument_list "(psVar7)" ( identifier ))) ;) }) (else_clause "else {\n    if ((local_48 != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_48)) {\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 ^ uVar10) & 0x183841b) == 0) {\n        *(bfd_vma *)((int)local_44->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 (((uVar10 & 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_48 != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_48)) {\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 ^ uVar10) & 0x183841b) == 0) {\n        *(bfd_vma *)((int)local_44->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 (((uVar10 & 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_48 != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_48)) {\n      pcVar5 = (char *)dcgettext(0,"ignoring changed section type for %s",5);\n      as_warn(pcVar5,name);\n    }" if (parenthesized_expression "((local_48 != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_48))" ( (binary_expression "(local_48 != 0) && (*(uint *)((int)paVar3->used_by_bfd + 4) != local_48)" (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(uint *)((int)paVar3->used_by_bfd + 4) != local_48)" ( (binary_expression "*(uint *)((int)paVar3->used_by_bfd + 4) != local_48" (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 ^ uVar10) & 0x183841b) == 0) {\n        *(bfd_vma *)((int)local_44->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 (((uVar10 & 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 ^ uVar10) & 0x183841b) == 0) {\n        *(bfd_vma *)((int)local_44->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 (((uVar10 & 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 ^ uVar10) & 0x183841b) == 0) {\n        *(bfd_vma *)((int)local_44->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 ^ uVar10) & 0x183841b) == 0)" ( (binary_expression "((paVar3->flags ^ uVar10) & 0x183841b) == 0" (parenthesized_expression "((paVar3->flags ^ uVar10) & 0x183841b)" ( (binary_expression "(paVar3->flags ^ uVar10) & 0x183841b" (parenthesized_expression "(paVar3->flags ^ uVar10)" ( (binary_expression "paVar3->flags ^ uVar10" (field_expression "paVar3->flags" identifier -> field_identifier) ^ identifier) )) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(bfd_vma *)((int)local_44->used_by_bfd + 8) = attr;\n      }" { (expression_statement "*(bfd_vma *)((int)local_44->used_by_bfd + 8) = attr;" (assignment_expression "*(bfd_vma *)((int)local_44->used_by_bfd + 8) = attr" (pointer_expression "*(bfd_vma *)((int)local_44->used_by_bfd + 8)" * (cast_expression "(bfd_vma *)((int)local_44->used_by_bfd + 8)" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_44->used_by_bfd + 8)" ( (binary_expression "(int)local_44->used_by_bfd + 8" (cast_expression "(int)local_44->used_by_bfd" ( (type_descriptor "int" primitive_type) ) (field_expression "local_44->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 (((uVar10 & 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 "(((uVar10 & 0x800000) != 0) && (paVar3->entsize != entsize))" ( (binary_expression "((uVar10 & 0x800000) != 0) && (paVar3->entsize != entsize)" (parenthesized_expression "((uVar10 & 0x800000) != 0)" ( (binary_expression "(uVar10 & 0x800000) != 0" (parenthesized_expression "(uVar10 & 0x800000)" ( (binary_expression "uVar10 & 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_000492f0(byte *param_1,uint param_2,undefined4 param_3,uint param_4,uint param_5,\n                 int param_6,int param_7,int param_8,int param_9)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  uint local_54;\n  uint local_50;\n  uint local_48;\n  int local_44;\n  uint local_3c;\n  byte local_38;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0x492f9;\n  local_48 = param_2;\n  local_54 = param_4;\n  local_50 = param_5;\n  uVar4 = DAT_00074d7c;\n  uVar7 = DAT_00074ea0;\n  if (param_9 != 0) {\n    puVar5 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar5;\n    *puVar5 = DAT_00074c78;\n    DAT_00074c78 = puVar1;\n    puVar5[4] = DAT_00074c7c;\n    uVar4 = DAT_00074d7c;\n    puVar5[2] = DAT_00074c80;\n    puVar5[1] = uVar4;\n    uVar7 = DAT_00074ea0;\n    puVar5[3] = DAT_00074ea0;\n  }\n  local_24 = param_7;\n  local_20 = param_3;\n  DAT_00074c7c = uVar7;\n  DAT_00074c80 = uVar4;\n  iVar2 = bfd_get_section_by_name_if(DAT_00074f44,param_1,FUN_00047130,&local_24);\n  if (iVar2 == 0) {\n    local_44 = FUN_00034da0(param_1,0);\n  }\n  else {\n    FUN_00034dd0(iVar2,0);\n    local_44 = iVar2;\n  }\n  iVar3 = (**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))(DAT_00074f44,local_44);\n  if (iVar3 == 0) {\nLAB_00049408:\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    \n      FUN_0002a4d0(uVar4,param_1);\n    }\n    local_3c = local_54 & 1;\n    uVar8 = local_54 >> 1 & 1;\n    uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2;\n    uVar8 = local_48 != 8 & uVar8;\nLAB_0004947f:\n    uVar6 = 4;\n    if (local_3c == 0) goto LAB_00049640;\n  }\n  else {\n    uVar8 = *(uint *)(iVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }\n    uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }\n    bVar12 = false;\n    bVar14 = param_4 == 2 && param_5 == 0;\n    if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar3 = 8;\n    pbVar10 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    bVar13 = false;\n    bVar12 = (!bVar12 && !bVar14) == bVar12;\n    if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }\n    uVar8 = (uint)(local_48 != 8);\n    uVar9 = 1;\nLAB_00049640:\n    uVar6 = 0xc;\n  }\n  uVar8 = uVar8 * 2;\nLAB_00049495:\n  uVar8 = uVar9 | uVar6 | uVar8;\n  if (param_8 != 0) {\n    uVar8 = uVar8 | 0x20000;\n  }\n  if (iVar2 == 0) {\n    if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }\n    iVar2 = *(int *)(local_44 + 0xa4);\n    *(uint *)(iVar2 + 4) = local_48;\n    *(uint *)(iVar2 + 8) = local_54;\n    *(uint *)(iVar2 + 0xc) = local_50;\n    *(undefined4 *)(iVar2 + 0x2c) = param_3;\n    if (local_48 == 8) {\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }\n    bfd_set_section_flags(DAT_00074f44,local_44,uVar8);\n    if ((uVar8 & 0x800000) != 0) {\n      *(int *)(local_44 + 0x90) = param_6;\n    }\n    *(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7;\n    iVar2 = FUN_00038c10(param_1);\n    if (iVar2 != 0) {\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }\n    uVar4 = FUN_00034e20(local_44);\n    FUN_00035600(uVar4);\n  }\n  else {\n    if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n    if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_000492f0(byte *param_1,uint param_2,undefined4 param_3,uint param_4,uint param_5,\n                 int param_6,int param_7,int param_8,int param_9)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  uint local_54;\n  uint local_50;\n  uint local_48;\n  int local_44;\n  uint local_3c;\n  byte local_38;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0x492f9;\n  local_48 = param_2;\n  local_54 = param_4;\n  local_50 = param_5;\n  uVar4 = DAT_00074d7c;\n  uVar7 = DAT_00074ea0;\n  if (param_9 != 0) {\n    puVar5 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar5;\n    *puVar5 = DAT_00074c78;\n    DAT_00074c78 = puVar1;\n    puVar5[4] = DAT_00074c7c;\n    uVar4 = DAT_00074d7c;\n    puVar5[2] = DAT_00074c80;\n    puVar5[1] = uVar4;\n    uVar7 = DAT_00074ea0;\n    puVar5[3] = DAT_00074ea0;\n  }\n  local_24 = param_7;\n  local_20 = param_3;\n  DAT_00074c7c = uVar7;\n  DAT_00074c80 = uVar4;\n  iVar2 = bfd_get_section_by_name_if(DAT_00074f44,param_1,FUN_00047130,&local_24);\n  if (iVar2 == 0) {\n    local_44 = FUN_00034da0(param_1,0);\n  }\n  else {\n    FUN_00034dd0(iVar2,0);\n    local_44 = iVar2;\n  }\n  iVar3 = (**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))(DAT_00074f44,local_44);\n  if (iVar3 == 0) {\nLAB_00049408:\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    \n      FUN_0002a4d0(uVar4,param_1);\n    }\n    local_3c = local_54 & 1;\n    uVar8 = local_54 >> 1 & 1;\n    uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2;\n    uVar8 = local_48 != 8 & uVar8;\nLAB_0004947f:\n    uVar6 = 4;\n    if (local_3c == 0) goto LAB_00049640;\n  }\n  else {\n    uVar8 = *(uint *)(iVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }\n    uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }\n    bVar12 = false;\n    bVar14 = param_4 == 2 && param_5 == 0;\n    if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar3 = 8;\n    pbVar10 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    bVar13 = false;\n    bVar12 = (!bVar12 && !bVar14) == bVar12;\n    if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }\n    uVar8 = (uint)(local_48 != 8);\n    uVar9 = 1;\nLAB_00049640:\n    uVar6 = 0xc;\n  }\n  uVar8 = uVar8 * 2;\nLAB_00049495:\n  uVar8 = uVar9 | uVar6 | uVar8;\n  if (param_8 != 0) {\n    uVar8 = uVar8 | 0x20000;\n  }\n  if (iVar2 == 0) {\n    if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }\n    iVar2 = *(int *)(local_44 + 0xa4);\n    *(uint *)(iVar2 + 4) = local_48;\n    *(uint *)(iVar2 + 8) = local_54;\n    *(uint *)(iVar2 + 0xc) = local_50;\n    *(undefined4 *)(iVar2 + 0x2c) = param_3;\n    if (local_48 == 8) {\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }\n    bfd_set_section_flags(DAT_00074f44,local_44,uVar8);\n    if ((uVar8 & 0x800000) != 0) {\n      *(int *)(local_44 + 0x90) = param_6;\n    }\n    *(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7;\n    iVar2 = FUN_00038c10(param_1);\n    if (iVar2 != 0) {\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }\n    uVar4 = FUN_00034e20(local_44);\n    FUN_00035600(uVar4);\n  }\n  else {\n    if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n    if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000492f0(byte *param_1,uint param_2,undefined4 param_3,uint param_4,uint param_5,\n                 int param_6,int param_7,int param_8,int param_9)" identifier (parameter_list "(byte *param_1,uint param_2,undefined4 param_3,uint param_4,uint param_5,\n                 int param_6,int param_7,int param_8,int param_9)" ( (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 "uint param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "int param_8" primitive_type identifier) , (parameter_declaration "int param_9" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  uint local_54;\n  uint local_50;\n  uint local_48;\n  int local_44;\n  uint local_3c;\n  byte local_38;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0x492f9;\n  local_48 = param_2;\n  local_54 = param_4;\n  local_50 = param_5;\n  uVar4 = DAT_00074d7c;\n  uVar7 = DAT_00074ea0;\n  if (param_9 != 0) {\n    puVar5 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar5;\n    *puVar5 = DAT_00074c78;\n    DAT_00074c78 = puVar1;\n    puVar5[4] = DAT_00074c7c;\n    uVar4 = DAT_00074d7c;\n    puVar5[2] = DAT_00074c80;\n    puVar5[1] = uVar4;\n    uVar7 = DAT_00074ea0;\n    puVar5[3] = DAT_00074ea0;\n  }\n  local_24 = param_7;\n  local_20 = param_3;\n  DAT_00074c7c = uVar7;\n  DAT_00074c80 = uVar4;\n  iVar2 = bfd_get_section_by_name_if(DAT_00074f44,param_1,FUN_00047130,&local_24);\n  if (iVar2 == 0) {\n    local_44 = FUN_00034da0(param_1,0);\n  }\n  else {\n    FUN_00034dd0(iVar2,0);\n    local_44 = iVar2;\n  }\n  iVar3 = (**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))(DAT_00074f44,local_44);\n  if (iVar3 == 0) {\nLAB_00049408:\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    \n      FUN_0002a4d0(uVar4,param_1);\n    }\n    local_3c = local_54 & 1;\n    uVar8 = local_54 >> 1 & 1;\n    uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2;\n    uVar8 = local_48 != 8 & uVar8;\nLAB_0004947f:\n    uVar6 = 4;\n    if (local_3c == 0) goto LAB_00049640;\n  }\n  else {\n    uVar8 = *(uint *)(iVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }\n    uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }\n    bVar12 = false;\n    bVar14 = param_4 == 2 && param_5 == 0;\n    if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar3 = 8;\n    pbVar10 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    bVar13 = false;\n    bVar12 = (!bVar12 && !bVar14) == bVar12;\n    if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }\n    uVar8 = (uint)(local_48 != 8);\n    uVar9 = 1;\nLAB_00049640:\n    uVar6 = 0xc;\n  }\n  uVar8 = uVar8 * 2;\nLAB_00049495:\n  uVar8 = uVar9 | uVar6 | uVar8;\n  if (param_8 != 0) {\n    uVar8 = uVar8 | 0x20000;\n  }\n  if (iVar2 == 0) {\n    if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }\n    iVar2 = *(int *)(local_44 + 0xa4);\n    *(uint *)(iVar2 + 4) = local_48;\n    *(uint *)(iVar2 + 8) = local_54;\n    *(uint *)(iVar2 + 0xc) = local_50;\n    *(undefined4 *)(iVar2 + 0x2c) = param_3;\n    if (local_48 == 8) {\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }\n    bfd_set_section_flags(DAT_00074f44,local_44,uVar8);\n    if ((uVar8 & 0x800000) != 0) {\n      *(int *)(local_44 + 0x90) = param_6;\n    }\n    *(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7;\n    iVar2 = FUN_00038c10(param_1);\n    if (iVar2 != 0) {\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }\n    uVar4 = FUN_00034e20(local_44);\n    FUN_00035600(uVar4);\n  }\n  else {\n    if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n    if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n  }\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (declaration "byte local_38;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x492f9;" (assignment_expression "uStack_14 = 0x492f9" identifier = number_literal) ;) (expression_statement "local_48 = param_2;" (assignment_expression "local_48 = param_2" identifier = identifier) ;) (expression_statement "local_54 = param_4;" (assignment_expression "local_54 = param_4" identifier = identifier) ;) (expression_statement "local_50 = param_5;" (assignment_expression "local_50 = param_5" identifier = identifier) ;) (expression_statement "uVar4 = DAT_00074d7c;" (assignment_expression "uVar4 = DAT_00074d7c" identifier = identifier) ;) (expression_statement "uVar7 = DAT_00074ea0;" (assignment_expression "uVar7 = DAT_00074ea0" identifier = identifier) ;) (if_statement "if (param_9 != 0) {\n    puVar5 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar5;\n    *puVar5 = DAT_00074c78;\n    DAT_00074c78 = puVar1;\n    puVar5[4] = DAT_00074c7c;\n    uVar4 = DAT_00074d7c;\n    puVar5[2] = DAT_00074c80;\n    puVar5[1] = uVar4;\n    uVar7 = DAT_00074ea0;\n    puVar5[3] = DAT_00074ea0;\n  }" if (parenthesized_expression "(param_9 != 0)" ( (binary_expression "param_9 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar5 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar5;\n    *puVar5 = DAT_00074c78;\n    DAT_00074c78 = puVar1;\n    puVar5[4] = DAT_00074c7c;\n    uVar4 = DAT_00074d7c;\n    puVar5[2] = DAT_00074c80;\n    puVar5[1] = uVar4;\n    uVar7 = DAT_00074ea0;\n    puVar5[3] = DAT_00074ea0;\n  }" { (expression_statement "puVar5 = (undefined4 *)xmalloc(0x14);" (assignment_expression "puVar5 = (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 = puVar5;" (assignment_expression "puVar1 = puVar5" identifier = identifier) ;) (expression_statement "*puVar5 = DAT_00074c78;" (assignment_expression "*puVar5 = DAT_00074c78" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "DAT_00074c78 = puVar1;" (assignment_expression "DAT_00074c78 = puVar1" identifier = identifier) ;) (expression_statement "puVar5[4] = DAT_00074c7c;" (assignment_expression "puVar5[4] = DAT_00074c7c" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = DAT_00074d7c;" (assignment_expression "uVar4 = DAT_00074d7c" identifier = identifier) ;) (expression_statement "puVar5[2] = DAT_00074c80;" (assignment_expression "puVar5[2] = DAT_00074c80" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[1] = uVar4;" (assignment_expression "puVar5[1] = uVar4" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar7 = DAT_00074ea0;" (assignment_expression "uVar7 = DAT_00074ea0" identifier = identifier) ;) (expression_statement "puVar5[3] = DAT_00074ea0;" (assignment_expression "puVar5[3] = DAT_00074ea0" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "local_24 = param_7;" (assignment_expression "local_24 = param_7" identifier = identifier) ;) (expression_statement "local_20 = param_3;" (assignment_expression "local_20 = param_3" identifier = identifier) ;) (expression_statement "DAT_00074c7c = uVar7;" (assignment_expression "DAT_00074c7c = uVar7" identifier = identifier) ;) (expression_statement "DAT_00074c80 = uVar4;" (assignment_expression "DAT_00074c80 = uVar4" identifier = identifier) ;) (expression_statement "iVar2 = bfd_get_section_by_name_if(DAT_00074f44,param_1,FUN_00047130,&local_24);" (assignment_expression "iVar2 = bfd_get_section_by_name_if(DAT_00074f44,param_1,FUN_00047130,&local_24)" identifier = (call_expression "bfd_get_section_by_name_if(DAT_00074f44,param_1,FUN_00047130,&local_24)" identifier (argument_list "(DAT_00074f44,param_1,FUN_00047130,&local_24)" ( identifier , identifier , identifier , (pointer_expression "&local_24" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n    local_44 = FUN_00034da0(param_1,0);\n  }\n  else {\n    FUN_00034dd0(iVar2,0);\n    local_44 = iVar2;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    local_44 = FUN_00034da0(param_1,0);\n  }" { (expression_statement "local_44 = FUN_00034da0(param_1,0);" (assignment_expression "local_44 = FUN_00034da0(param_1,0)" identifier = (call_expression "FUN_00034da0(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n    FUN_00034dd0(iVar2,0);\n    local_44 = iVar2;\n  }" else (compound_statement "{\n    FUN_00034dd0(iVar2,0);\n    local_44 = iVar2;\n  }" { (expression_statement "FUN_00034dd0(iVar2,0);" (call_expression "FUN_00034dd0(iVar2,0)" identifier (argument_list "(iVar2,0)" ( identifier , number_literal ))) ;) (expression_statement "local_44 = iVar2;" (assignment_expression "local_44 = iVar2" identifier = identifier) ;) }))) (expression_statement "iVar3 = (**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))(DAT_00074f44,local_44);" (assignment_expression "iVar3 = (**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))(DAT_00074f44,local_44)" identifier = (call_expression "(**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))(DAT_00074f44,local_44)" (parenthesized_expression "(**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))" ( (pointer_expression "**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68)" * (pointer_expression "*(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68)" * (cast_expression "(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68)" ( (binary_expression "*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68" (pointer_expression "*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0)" * (cast_expression "(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00074f44 + 4) + 0x1c0)" ( (binary_expression "*(int *)(DAT_00074f44 + 4) + 0x1c0" (pointer_expression "*(int *)(DAT_00074f44 + 4)" * (cast_expression "(int *)(DAT_00074f44 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00074f44 + 4)" ( (binary_expression "DAT_00074f44 + 4" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_00074f44,local_44)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\nLAB_00049408:\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    \n      FUN_0002a4d0(uVar4,param_1);\n    }\n    local_3c = local_54 & 1;\n    uVar8 = local_54 >> 1 & 1;\n    uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2;\n    uVar8 = local_48 != 8 & uVar8;\nLAB_0004947f:\n    uVar6 = 4;\n    if (local_3c == 0) goto LAB_00049640;\n  }\n  else {\n    uVar8 = *(uint *)(iVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }\n    uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }\n    bVar12 = false;\n    bVar14 = param_4 == 2 && param_5 == 0;\n    if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar3 = 8;\n    pbVar10 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    bVar13 = false;\n    bVar12 = (!bVar12 && !bVar14) == bVar12;\n    if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }\n    uVar8 = (uint)(local_48 != 8);\n    uVar9 = 1;\nLAB_00049640:\n    uVar6 = 0xc;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00049408:\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    \n      FUN_0002a4d0(uVar4,param_1);\n    }\n    local_3c = local_54 & 1;\n    uVar8 = local_54 >> 1 & 1;\n    uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2;\n    uVar8 = local_48 != 8 & uVar8;\nLAB_0004947f:\n    uVar6 = 4;\n    if (local_3c == 0) goto LAB_00049640;\n  }" { (labeled_statement "LAB_00049408:\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    \n      FUN_0002a4d0(uVar4,param_1);\n    }" statement_identifier : (if_statement "if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    \n      FUN_0002a4d0(uVar4,param_1);\n    }" if (parenthesized_expression "((local_54 & 0x1000002) == 0x1000000)" ( (binary_expression "(local_54 & 0x1000002) == 0x1000000" (parenthesized_expression "(local_54 & 0x1000002)" ( (binary_expression "local_54 & 0x1000002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    \n      FUN_0002a4d0(uVar4,param_1);\n    }" { (expression_statement "uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);" (assignment_expression "uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000)" identifier = (call_expression "dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000)" identifier (argument_list "(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000)" ( number_literal , (string_literal ""SHF_ALLOC isn\'t set for GNU_MBIND section: %s"" " string_content escape_sequence string_content ") , number_literal , number_literal )))) ;) (expression_statement "FUN_0002a4d0(uVar4,param_1);" (call_expression "FUN_0002a4d0(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) }))) (expression_statement "local_3c = local_54 & 1;" (assignment_expression "local_3c = local_54 & 1" identifier = (binary_expression "local_54 & 1" identifier & number_literal)) ;) (expression_statement "uVar8 = local_54 >> 1 & 1;" (assignment_expression "uVar8 = local_54 >> 1 & 1" identifier = (binary_expression "local_54 >> 1 & 1" (binary_expression "local_54 >> 1" identifier >> number_literal) & number_literal)) ;) (expression_statement "uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2;" (assignment_expression "uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2" identifier = (binary_expression "local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2" (binary_expression "local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8" (binary_expression "local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000" (binary_expression "local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400" (binary_expression "local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000" (binary_expression "local_54 >> 0x10 & 0x8000" (binary_expression "local_54 >> 0x10" identifier >> number_literal) & number_literal) | (binary_expression "local_54 << 0x13 & 0x1000000" (binary_expression "local_54 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "local_54 & 0x400" identifier & number_literal)) | (binary_expression "local_54 << 0x13 & 0x800000" (binary_expression "local_54 << 0x13" identifier << number_literal) & number_literal)) | identifier) | (binary_expression "(local_54 & 4) << 2" (parenthesized_expression "(local_54 & 4)" ( (binary_expression "local_54 & 4" identifier & number_literal) )) << number_literal))) ;) (expression_statement "uVar8 = local_48 != 8 & uVar8;" (assignment_expression "uVar8 = local_48 != 8 & uVar8" identifier = (binary_expression "local_48 != 8 & uVar8" (binary_expression "local_48 != 8" identifier != number_literal) & identifier)) ;) (labeled_statement "LAB_0004947f:\n    uVar6 = 4;" statement_identifier : (expression_statement "uVar6 = 4;" (assignment_expression "uVar6 = 4" identifier = number_literal) ;)) (if_statement "if (local_3c == 0) goto LAB_00049640;" if (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) )) (goto_statement "goto LAB_00049640;" goto statement_identifier ;)) }) (else_clause "else {\n    uVar8 = *(uint *)(iVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }\n    uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }\n    bVar12 = false;\n    bVar14 = param_4 == 2 && param_5 == 0;\n    if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar3 = 8;\n    pbVar10 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    bVar13 = false;\n    bVar12 = (!bVar12 && !bVar14) == bVar12;\n    if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }\n    uVar8 = (uint)(local_48 != 8);\n    uVar9 = 1;\nLAB_00049640:\n    uVar6 = 0xc;\n  }" else (compound_statement "{\n    uVar8 = *(uint *)(iVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }\n    uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }\n    bVar12 = false;\n    bVar14 = param_4 == 2 && param_5 == 0;\n    if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar3 = 8;\n    pbVar10 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    bVar13 = false;\n    bVar12 = (!bVar12 && !bVar14) == bVar12;\n    if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }\n    uVar8 = (uint)(local_48 != 8);\n    uVar9 = 1;\nLAB_00049640:\n    uVar6 = 0xc;\n  }" { (expression_statement "uVar8 = *(uint *)(iVar3 + 0xc);" (assignment_expression "uVar8 = *(uint *)(iVar3 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar3 + 0xc)" * (cast_expression "(uint *)(iVar3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }" if (parenthesized_expression "((param_2 == 0) || (param_2 == uVar8))" ( (binary_expression "(param_2 == 0) || (param_2 == uVar8)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_2 == uVar8)" ( (binary_expression "param_2 == uVar8" identifier == identifier) ))) )) (compound_statement "{\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }" { (labeled_statement "LAB_00049400:\n      local_48 = uVar8;" statement_identifier : (expression_statement "local_48 = uVar8;" (assignment_expression "local_48 = uVar8" identifier = identifier) ;)) (if_statement "if (iVar2 != 0) goto LAB_00049408;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00049408;" goto statement_identifier ;)) }) (else_clause "else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }" else (compound_statement "{\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }" { (if_statement "if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }" if (parenthesized_expression "((uVar8 - 0xe < 3) || (iVar2 != 0))" ( (binary_expression "(uVar8 - 0xe < 3) || (iVar2 != 0)" (parenthesized_expression "(uVar8 - 0xe < 3)" ( (binary_expression "uVar8 - 0xe < 3" (binary_expression "uVar8 - 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_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\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_0002a350(uVar4,param_1);" (call_expression "FUN_0002a350(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) (expression_statement "uVar8 = *(uint *)(iVar3 + 0xc);" (assignment_expression "uVar8 = *(uint *)(iVar3 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar3 + 0xc)" * (cast_expression "(uint *)(iVar3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00049400;" goto statement_identifier ;) })) (if_statement "if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }" if (parenthesized_expression "((uVar8 == 7) || (0x6fffffff < param_2))" ( (binary_expression "(uVar8 == 7) || (0x6fffffff < param_2)" (parenthesized_expression "(uVar8 == 7)" ( (binary_expression "uVar8 == 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_0002a350(uVar4,param_1);\n      }" else (compound_statement "{\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(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_0002a350(uVar4,param_1);" (call_expression "FUN_0002a350(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) }))) }))) (expression_statement "uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;" (assignment_expression "uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4" identifier = (binary_expression "~*(uint *)(iVar3 + 0x10) & param_4" (unary_expression "~*(uint *)(iVar3 + 0x10)" ~ (pointer_expression "*(uint *)(iVar3 + 0x10)" * (cast_expression "(uint *)(iVar3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) ))))) & identifier)) ;) (if_statement "if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }" if (parenthesized_expression "((uVar8 & 0xfffff) == 0)" ( (binary_expression "(uVar8 & 0xfffff) == 0" (parenthesized_expression "(uVar8 & 0xfffff)" ( (binary_expression "uVar8 & 0xfffff" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }" { (labeled_statement "LAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;" statement_identifier : (expression_statement "local_54 = *(uint *)(iVar3 + 0x10) | param_4;" (assignment_expression "local_54 = *(uint *)(iVar3 + 0x10) | param_4" identifier = (binary_expression "*(uint *)(iVar3 + 0x10) | param_4" (pointer_expression "*(uint *)(iVar3 + 0x10)" * (cast_expression "(uint *)(iVar3 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) | identifier)) ;)) (expression_statement "local_50 = *(uint *)(iVar3 + 0x14) | param_5;" (assignment_expression "local_50 = *(uint *)(iVar3 + 0x14) | param_5" identifier = (binary_expression "*(uint *)(iVar3 + 0x14) | param_5" (pointer_expression "*(uint *)(iVar3 + 0x14)" * (cast_expression "(uint *)(iVar3 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) | identifier)) ;) (goto_statement "goto LAB_00049408;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }" if (parenthesized_expression "(*(int *)(iVar3 + 0xc) == 7)" ( (binary_expression "*(int *)(iVar3 + 0xc) == 7" (pointer_expression "*(int *)(iVar3 + 0xc)" * (cast_expression "(int *)(iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }" { (if_statement "if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }" if (parenthesized_expression "((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0)" ( (binary_expression "(param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0" (binary_expression "(param_5 - 1) + (uint)(1 < param_4) != 0" (binary_expression "(param_5 - 1) + (uint)(1 < param_4)" (parenthesized_expression "(param_5 - 1)" ( (binary_expression "param_5 - 1" identifier - number_literal) )) + (call_expression "(uint)(1 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < param_4)" ( (binary_expression "1 < param_4" number_literal < identifier) )))) != number_literal) || (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 *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }" { (if_statement "if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;" if (parenthesized_expression "((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))" ( (binary_expression "(*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)" (parenthesized_expression "(*(int *)(iVar3 + 8) == -2)" ( (binary_expression "*(int *)(iVar3 + 8) == -2" (pointer_expression "*(int *)(iVar3 + 8)" * (cast_expression "(int *)(iVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(param_1[*(int *)(iVar3 + 4)] == 0x2e)" ( (binary_expression "param_1[*(int *)(iVar3 + 4)] == 0x2e" (subscript_expression "param_1[*(int *)(iVar3 + 4)]" identifier [ (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) ]) == number_literal) ))) )) (goto_statement "goto LAB_000495fd;" goto statement_identifier ;)) (labeled_statement "LAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }" statement_identifier : (if_statement "if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }" if (parenthesized_expression "(param_7 == 0)" ( (binary_expression "param_7 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }" { (labeled_statement "LAB_00049959:\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_0002a350(uVar4,param_1);" (call_expression "FUN_0002a350(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) }))) (goto_statement "goto LAB_00049408;" goto statement_identifier ;) })) (goto_statement "goto LAB_00049610;" goto statement_identifier ;) })) (if_statement "if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }" if (parenthesized_expression "((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))" ( (binary_expression "(*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)" (parenthesized_expression "(*(int *)(iVar3 + 8) == -2)" ( (binary_expression "*(int *)(iVar3 + 8) == -2" (pointer_expression "*(int *)(iVar3 + 8)" * (cast_expression "(int *)(iVar3 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(param_1[*(int *)(iVar3 + 4)] == 0x2e)" ( (binary_expression "param_1[*(int *)(iVar3 + 4)] == 0x2e" (subscript_expression "param_1[*(int *)(iVar3 + 4)]" identifier [ (pointer_expression "*(int *)(iVar3 + 4)" * (cast_expression "(int *)(iVar3 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 4)" ( (binary_expression "iVar3 + 4" identifier + number_literal) )))) ]) == number_literal) ))) )) (compound_statement "{\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }" { (labeled_statement "LAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;" statement_identifier : (if_statement "if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;" if (parenthesized_expression "((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0)" ( (binary_expression "(~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0" (binary_expression "(~*(uint *)(iVar3 + 0x14) & param_5) == 0" (parenthesized_expression "(~*(uint *)(iVar3 + 0x14) & param_5)" ( (binary_expression "~*(uint *)(iVar3 + 0x14) & param_5" (unary_expression "~*(uint *)(iVar3 + 0x14)" ~ (pointer_expression "*(uint *)(iVar3 + 0x14)" * (cast_expression "(uint *)(iVar3 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) ))))) & identifier) )) == number_literal) && (binary_expression "(uVar8 & 0xffffffcf) == 0" (parenthesized_expression "(uVar8 & 0xffffffcf)" ( (binary_expression "uVar8 & 0xffffffcf" identifier & number_literal) )) == number_literal)) )) (goto_statement "goto LAB_00049610;" goto statement_identifier ;))) })) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar14 = param_4 == 2 && param_5 == 0;" (assignment_expression "bVar14 = param_4 == 2 && param_5 == 0" identifier = (binary_expression "param_4 == 2 && param_5 == 0" (binary_expression "param_4 == 2" identifier == number_literal) && (binary_expression "param_5 == 0" identifier == number_literal))) ;) (if_statement "if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }" if (parenthesized_expression "(param_4 != 2 || param_5 != 0)" ( (binary_expression "param_4 != 2 || param_5 != 0" (binary_expression "param_4 != 2" identifier != number_literal) || (binary_expression "param_5 != 0" identifier != number_literal)) )) (compound_statement "{\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }" { (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar14 = param_5 == 0 && param_4 == 4;" (assignment_expression "bVar14 = param_5 == 0 && param_4 == 4" identifier = (binary_expression "param_5 == 0 && param_4 == 4" (binary_expression "param_5 == 0" identifier == number_literal) && (binary_expression "param_4 == 4" identifier == number_literal))) ;) (if_statement "if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;" if (parenthesized_expression "(param_5 != 0 || param_4 != 4)" ( (binary_expression "param_5 != 0 || param_4 != 4" (binary_expression "param_5 != 0" identifier != number_literal) || (binary_expression "param_4 != 4" identifier != number_literal)) )) (goto_statement "goto LAB_0004994d;" goto statement_identifier ;)) (expression_statement "iVar3 = 0x10;" (assignment_expression "iVar3 = 0x10" identifier = number_literal) ;) (expression_statement "pbVar10 = param_1;" (assignment_expression "pbVar10 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)".note.GNU-stack";" (assignment_expression "pbVar11 = (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        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);" do (compound_statement "{\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar10 < *pbVar11;" (assignment_expression "bVar12 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar14 = *pbVar10 == *pbVar11;" (assignment_expression "bVar14 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) (if_statement "if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }" if (parenthesized_expression "((!bVar12 && !bVar14) == bVar12)" ( (binary_expression "(!bVar12 && !bVar14) == bVar12" (parenthesized_expression "(!bVar12 && !bVar14)" ( (binary_expression "!bVar12 && !bVar14" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar14" ! identifier)) )) == identifier) )) (compound_statement "{\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }" { (expression_statement "uVar9 = 0x10;" (assignment_expression "uVar9 = 0x10" identifier = number_literal) ;) (expression_statement "uVar6 = 0xc;" (assignment_expression "uVar6 = 0xc" identifier = number_literal) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00049495;" goto statement_identifier ;) })) (labeled_statement "LAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;" statement_identifier : (if_statement "if (param_7 == 0) goto LAB_00049959;" if (parenthesized_expression "(param_7 == 0)" ( (binary_expression "param_7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00049959;" goto statement_identifier ;))) (expression_statement "local_3c = param_4 & 1;" (assignment_expression "local_3c = param_4 & 1" identifier = (binary_expression "param_4 & 1" identifier & number_literal)) ;) (expression_statement "uVar8 = param_4 >> 1 & 1;" (assignment_expression "uVar8 = param_4 >> 1 & 1" identifier = (binary_expression "param_4 >> 1 & 1" (binary_expression "param_4 >> 1" identifier >> number_literal) & number_literal)) ;) (expression_statement "uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;" (assignment_expression "uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000" identifier = (binary_expression "param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000" (binary_expression "param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000" (binary_expression "param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8" (binary_expression "param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10" (binary_expression "param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400" (binary_expression "param_4 >> 0x10 & 0x8000" (binary_expression "param_4 >> 0x10" identifier >> number_literal) & number_literal) | (binary_expression "param_4 & 0x400" identifier & number_literal)) | (binary_expression "param_4 * 4 & 0x10" (binary_expression "param_4 * 4" identifier * number_literal) & number_literal)) | identifier) | (binary_expression "param_4 << 0x13 & 0x800000" (binary_expression "param_4 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "param_4 << 0x13 & 0x1000000" (binary_expression "param_4 << 0x13" identifier << number_literal) & number_literal))) ;) (expression_statement "local_38 = (byte)uVar8;" (assignment_expression "local_38 = (byte)uVar8" identifier = (cast_expression "(byte)uVar8" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "uVar8 = (uint)(local_48 != 8 & local_38);" (assignment_expression "uVar8 = (uint)(local_48 != 8 & local_38)" identifier = (call_expression "(uint)(local_48 != 8 & local_38)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_48 != 8 & local_38)" ( (binary_expression "local_48 != 8 & local_38" (binary_expression "local_48 != 8" identifier != number_literal) & identifier) )))) ;) (goto_statement "goto LAB_0004947f;" goto statement_identifier ;) })) (expression_statement "iVar3 = 8;" (assignment_expression "iVar3 = 8" identifier = number_literal) ;) (expression_statement "pbVar10 = param_1;" (assignment_expression "pbVar10 = 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 (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);" do (compound_statement "{\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar10 < *pbVar11;" (assignment_expression "bVar12 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar14 = *pbVar10 == *pbVar11;" (assignment_expression "bVar14 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" identifier = false) ;) (expression_statement "bVar12 = (!bVar12 && !bVar14) == bVar12;" (assignment_expression "bVar12 = (!bVar12 && !bVar14) == bVar12" identifier = (binary_expression "(!bVar12 && !bVar14) == bVar12" (parenthesized_expression "(!bVar12 && !bVar14)" ( (binary_expression "!bVar12 && !bVar14" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar14" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (compound_statement "{\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }" { (expression_statement "iVar3 = 8;" (assignment_expression "iVar3 = 8" identifier = number_literal) ;) (expression_statement "pbVar10 = param_1;" (assignment_expression "pbVar10 = 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 (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);" do (compound_statement "{\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar13 = *pbVar10 < *pbVar11;" (assignment_expression "bVar13 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar10 == *pbVar11;" (assignment_expression "bVar12 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (expression_statement "bVar12 = (!bVar13 && !bVar12) == bVar13;" (assignment_expression "bVar12 = (!bVar13 && !bVar12) == bVar13" identifier = (binary_expression "(!bVar13 && !bVar12) == bVar13" (parenthesized_expression "(!bVar13 && !bVar12)" ( (binary_expression "!bVar13 && !bVar12" (unary_expression "!bVar13" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }" if (parenthesized_expression "(!bVar12)" ( (unary_expression "!bVar12" ! identifier) )) (compound_statement "{\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }" { (expression_statement "iVar3 = 8;" (assignment_expression "iVar3 = 8" identifier = number_literal) ;) (expression_statement "pbVar10 = param_1;" (assignment_expression "pbVar10 = param_1" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)".symtab";" (assignment_expression "pbVar11 = (byte *)".symtab"" identifier = (cast_expression "(byte *)".symtab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".symtab"" " string_content "))) ;) (do_statement "do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);" do (compound_statement "{\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        }" { (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar14 = *pbVar10 < *pbVar11;" (assignment_expression "bVar14 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar12 = *pbVar10 == *pbVar11;" (assignment_expression "bVar12 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar12)" ( identifier )) ;) (if_statement "if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;" if (parenthesized_expression "((!bVar14 && !bVar12) != bVar14)" ( (binary_expression "(!bVar14 && !bVar12) != bVar14" (parenthesized_expression "(!bVar14 && !bVar12)" ( (binary_expression "!bVar14 && !bVar12" (unary_expression "!bVar14" ! identifier) && (unary_expression "!bVar12" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_000498a2;" goto statement_identifier ;)) })) })) (expression_statement "uVar8 = (uint)(local_48 != 8);" (assignment_expression "uVar8 = (uint)(local_48 != 8)" identifier = (call_expression "(uint)(local_48 != 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_48 != 8)" ( (binary_expression "local_48 != 8" identifier != number_literal) )))) ;) (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00049640:\n    uVar6 = 0xc;" statement_identifier : (expression_statement "uVar6 = 0xc;" (assignment_expression "uVar6 = 0xc" identifier = number_literal) ;)) }))) (expression_statement "uVar8 = uVar8 * 2;" (assignment_expression "uVar8 = uVar8 * 2" identifier = (binary_expression "uVar8 * 2" identifier * number_literal)) ;) (labeled_statement "LAB_00049495:\n  uVar8 = uVar9 | uVar6 | uVar8;" statement_identifier : (expression_statement "uVar8 = uVar9 | uVar6 | uVar8;" (assignment_expression "uVar8 = uVar9 | uVar6 | uVar8" identifier = (binary_expression "uVar9 | uVar6 | uVar8" (binary_expression "uVar9 | uVar6" identifier | identifier) | identifier)) ;)) (if_statement "if (param_8 != 0) {\n    uVar8 = uVar8 | 0x20000;\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar8 = uVar8 | 0x20000;\n  }" { (expression_statement "uVar8 = uVar8 | 0x20000;" (assignment_expression "uVar8 = uVar8 | 0x20000" identifier = (binary_expression "uVar8 | 0x20000" identifier | number_literal)) ;) })) (if_statement "if (iVar2 == 0) {\n    if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }\n    iVar2 = *(int *)(local_44 + 0xa4);\n    *(uint *)(iVar2 + 4) = local_48;\n    *(uint *)(iVar2 + 8) = local_54;\n    *(uint *)(iVar2 + 0xc) = local_50;\n    *(undefined4 *)(iVar2 + 0x2c) = param_3;\n    if (local_48 == 8) {\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }\n    bfd_set_section_flags(DAT_00074f44,local_44,uVar8);\n    if ((uVar8 & 0x800000) != 0) {\n      *(int *)(local_44 + 0x90) = param_6;\n    }\n    *(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7;\n    iVar2 = FUN_00038c10(param_1);\n    if (iVar2 != 0) {\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }\n    uVar4 = FUN_00034e20(local_44);\n    FUN_00035600(uVar4);\n  }\n  else {\n    if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n    if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }\n    iVar2 = *(int *)(local_44 + 0xa4);\n    *(uint *)(iVar2 + 4) = local_48;\n    *(uint *)(iVar2 + 8) = local_54;\n    *(uint *)(iVar2 + 0xc) = local_50;\n    *(undefined4 *)(iVar2 + 0x2c) = param_3;\n    if (local_48 == 8) {\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }\n    bfd_set_section_flags(DAT_00074f44,local_44,uVar8);\n    if ((uVar8 & 0x800000) != 0) {\n      *(int *)(local_44 + 0x90) = param_6;\n    }\n    *(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7;\n    iVar2 = FUN_00038c10(param_1);\n    if (iVar2 != 0) {\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }\n    uVar4 = FUN_00034e20(local_44);\n    FUN_00035600(uVar4);\n  }" { (if_statement "if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (compound_statement "{\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }" { (expression_statement "local_48 = bfd_elf_get_default_section_type(uVar8);" (assignment_expression "local_48 = bfd_elf_get_default_section_type(uVar8)" identifier = (call_expression "bfd_elf_get_default_section_type(uVar8)" identifier (argument_list "(uVar8)" ( identifier )))) ;) })) (expression_statement "iVar2 = *(int *)(local_44 + 0xa4);" (assignment_expression "iVar2 = *(int *)(local_44 + 0xa4)" identifier = (pointer_expression "*(int *)(local_44 + 0xa4)" * (cast_expression "(int *)(local_44 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44 + 0xa4)" ( (binary_expression "local_44 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar2 + 4) = local_48;" (assignment_expression "*(uint *)(iVar2 + 4) = local_48" (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) = local_54;" (assignment_expression "*(uint *)(iVar2 + 8) = local_54" (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 "*(uint *)(iVar2 + 0xc) = local_50;" (assignment_expression "*(uint *)(iVar2 + 0xc) = local_50" (pointer_expression "*(uint *)(iVar2 + 0xc)" * (cast_expression "(uint *)(iVar2 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x2c) = param_3;" (assignment_expression "*(undefined4 *)(iVar2 + 0x2c) = param_3" (pointer_expression "*(undefined4 *)(iVar2 + 0x2c)" * (cast_expression "(undefined4 *)(iVar2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (local_48 == 8) {\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }" if (parenthesized_expression "(local_48 == 8)" ( (binary_expression "local_48 == 8" identifier == number_literal) )) (compound_statement "{\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }" { (expression_statement "pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);" (assignment_expression "pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4)" identifier = (cast_expression "(byte *)(*(int *)(local_44 + 0x80) + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_44 + 0x80) + 4)" ( (binary_expression "*(int *)(local_44 + 0x80) + 4" (pointer_expression "*(int *)(local_44 + 0x80)" * (cast_expression "(int *)(local_44 + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44 + 0x80)" ( (binary_expression "local_44 + 0x80" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar10 = *pbVar10 | 2;" (assignment_expression "*pbVar10 = *pbVar10 | 2" (pointer_expression "*pbVar10" * identifier) = (binary_expression "*pbVar10 | 2" (pointer_expression "*pbVar10" * identifier) | number_literal)) ;) })) (expression_statement "bfd_set_section_flags(DAT_00074f44,local_44,uVar8);" (call_expression "bfd_set_section_flags(DAT_00074f44,local_44,uVar8)" identifier (argument_list "(DAT_00074f44,local_44,uVar8)" ( identifier , identifier , identifier ))) ;) (if_statement "if ((uVar8 & 0x800000) != 0) {\n      *(int *)(local_44 + 0x90) = param_6;\n    }" if (parenthesized_expression "((uVar8 & 0x800000) != 0)" ( (binary_expression "(uVar8 & 0x800000) != 0" (parenthesized_expression "(uVar8 & 0x800000)" ( (binary_expression "uVar8 & 0x800000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      *(int *)(local_44 + 0x90) = param_6;\n    }" { (expression_statement "*(int *)(local_44 + 0x90) = param_6;" (assignment_expression "*(int *)(local_44 + 0x90) = param_6" (pointer_expression "*(int *)(local_44 + 0x90)" * (cast_expression "(int *)(local_44 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44 + 0x90)" ( (binary_expression "local_44 + 0x90" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7;" (assignment_expression "*(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7" (pointer_expression "*(int *)(*(int *)(local_44 + 0xa4) + 0x84)" * (cast_expression "(int *)(*(int *)(local_44 + 0xa4) + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_44 + 0xa4) + 0x84)" ( (binary_expression "*(int *)(local_44 + 0xa4) + 0x84" (pointer_expression "*(int *)(local_44 + 0xa4)" * (cast_expression "(int *)(local_44 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44 + 0xa4)" ( (binary_expression "local_44 + 0xa4" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "iVar2 = FUN_00038c10(param_1);" (assignment_expression "iVar2 = FUN_00038c10(param_1)" identifier = (call_expression "FUN_00038c10(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }" { (expression_statement "FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));" (call_expression "FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0))" identifier (argument_list "(iVar2,*(undefined4 *)(local_44 + 0xb0))" ( identifier , (pointer_expression "*(undefined4 *)(local_44 + 0xb0)" * (cast_expression "(undefined4 *)(local_44 + 0xb0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44 + 0xb0)" ( (binary_expression "local_44 + 0xb0" identifier + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar4 = FUN_00034e20(local_44);" (assignment_expression "uVar4 = FUN_00034e20(local_44)" identifier = (call_expression "FUN_00034e20(local_44)" identifier (argument_list "(local_44)" ( identifier )))) ;) (expression_statement "FUN_00035600(uVar4);" (call_expression "FUN_00035600(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) }) (else_clause "else {\n    if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n    if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n  }" else (compound_statement "{\n    if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n    if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n  }" { (if_statement "if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }" if (parenthesized_expression "((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48))" ( (binary_expression "(local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)" (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) || (parenthesized_expression "(*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)" ( (binary_expression "*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48" (pointer_expression "*(uint *)(*(int *)(iVar2 + 0xa4) + 4)" * (cast_expression "(uint *)(*(int *)(iVar2 + 0xa4) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar2 + 0xa4) + 4)" ( (binary_expression "*(int *)(iVar2 + 0xa4) + 4" (pointer_expression "*(int *)(iVar2 + 0xa4)" * (cast_expression "(int *)(iVar2 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xa4)" ( (binary_expression "iVar2 + 0xa4" identifier + number_literal) )))) + number_literal) )))) == identifier) ))) )) (compound_statement "{\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }" { (if_statement "if (local_50 == 0 && local_54 == 0) {\n        return;\n      }" if (parenthesized_expression "(local_50 == 0 && local_54 == 0)" ( (binary_expression "local_50 == 0 && local_54 == 0" (binary_expression "local_50 == 0" identifier == number_literal) && (binary_expression "local_54 == 0" identifier == number_literal)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) }) (else_clause "else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }" else (compound_statement "{\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\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_0002a350(uVar4,param_1);" (call_expression "FUN_0002a350(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) (if_statement "if (local_50 == 0 && local_54 == 0) {\n        return;\n      }" if (parenthesized_expression "(local_50 == 0 && local_54 == 0)" ( (binary_expression "local_50 == 0 && local_54 == 0" (binary_expression "local_50 == 0" identifier == number_literal) && (binary_expression "local_54 == 0" identifier == number_literal)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) }))) (if_statement "if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }" if (parenthesized_expression "(((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0)" ( (binary_expression "((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0" (parenthesized_expression "((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b)" ( (binary_expression "(*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b" (parenthesized_expression "(*(uint *)(iVar2 + 0x14) ^ uVar8)" ( (binary_expression "*(uint *)(iVar2 + 0x14) ^ uVar8" (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      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }" { (expression_statement "iVar3 = *(int *)(local_44 + 0xa4);" (assignment_expression "iVar3 = *(int *)(local_44 + 0xa4)" identifier = (pointer_expression "*(int *)(local_44 + 0xa4)" * (cast_expression "(int *)(local_44 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_44 + 0xa4)" ( (binary_expression "local_44 + 0xa4" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(iVar3 + 8) = local_54;" (assignment_expression "*(uint *)(iVar3 + 8) = local_54" (pointer_expression "*(uint *)(iVar3 + 8)" * (cast_expression "(uint *)(iVar3 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar3 + 0xc) = local_50;" (assignment_expression "*(uint *)(iVar3 + 0xc) = local_50" (pointer_expression "*(uint *)(iVar3 + 0xc)" * (cast_expression "(uint *)(iVar3 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0xc)" ( (binary_expression "iVar3 + 0xc" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }" else (compound_statement "{\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(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_0002a350(uVar4,param_1);" (call_expression "FUN_0002a350(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier ))) ;) }))) (if_statement "if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }" if (parenthesized_expression "(((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6))" ( (binary_expression "((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)" (parenthesized_expression "((uVar8 & 0x800000) != 0)" ( (binary_expression "(uVar8 & 0x800000) != 0" (parenthesized_expression "(uVar8 & 0x800000)" ( (binary_expression "uVar8 & 0x800000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar2 + 0x90) != param_6)" ( (binary_expression "*(int *)(iVar2 + 0x90) != param_6" (pointer_expression "*(int *)(iVar2 + 0x90)" * (cast_expression "(int *)(iVar2 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x90)" ( (binary_expression "iVar2 + 0x90" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(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_0002a350(uVar4,param_1);" (call_expression "FUN_0002a350(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 IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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) ;) (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 = (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 == 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 , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (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)) | (binary_expression IDENT & LIT)) | (binary_expression (binary_expression IDENT << LIT) & LIT)) | IDENT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != LIT) & IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | IDENT)) ;) (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 (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) )))) != LIT) || (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) != LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (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 : (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (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 (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ~ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) & IDENT) )) == LIT) && (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) )) (goto_statement goto statement_identifier ;))) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (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 )) ;) (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 == LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (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 IDENT & LIT)) | (binary_expression (binary_expression IDENT * LIT) & LIT)) | IDENT) | (binary_expression (binary_expression IDENT << LIT) & LIT)) | (binary_expression (binary_expression IDENT << LIT) & LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) (goto_statement goto statement_identifier ;)) })) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ;) (expression_statement (assignment_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 = (binary_expression (binary_expression 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) ;) (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 *)) ) (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 { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (return_statement return ;) })) }) (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 (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (return_statement return ;) })) }))) (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (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_000492f0(byte *param_1,uint param_2,undefined4 param_3,uint param_4,uint param_5,\n                 int param_6,int param_7,int param_8,int param_9)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  uint local_54;\n  uint local_50;\n  uint local_48;\n  int local_44;\n  uint local_3c;\n  byte local_38;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0x492f9;\n  local_48 = param_2;\n  local_54 = param_4;\n  local_50 = param_5;\n  uVar4 = DAT_00074d7c;\n  uVar7 = DAT_00074ea0;\n  if (param_9 != 0) {\n    puVar5 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar5;\n    *puVar5 = DAT_00074c78;\n    DAT_00074c78 = puVar1;\n    puVar5[4] = DAT_00074c7c;\n    uVar4 = DAT_00074d7c;\n    puVar5[2] = DAT_00074c80;\n    puVar5[1] = uVar4;\n    uVar7 = DAT_00074ea0;\n    puVar5[3] = DAT_00074ea0;\n  }\n  local_24 = param_7;\n  local_20 = param_3;\n  DAT_00074c7c = uVar7;\n  DAT_00074c80 = uVar4;\n  iVar2 = bfd_get_section_by_name_if(DAT_00074f44,param_1,FUN_00047130,&local_24);\n  if (iVar2 == 0) {\n    local_44 = FUN_00034da0(param_1,0);\n  }\n  else {\n    FUN_00034dd0(iVar2,0);\n    local_44 = iVar2;\n  }\n  iVar3 = (**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))(DAT_00074f44,local_44);\n  if (iVar3 == 0) {\nLAB_00049408:\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    \n      FUN_0002a4d0(uVar4,param_1);\n    }\n    local_3c = local_54 & 1;\n    uVar8 = local_54 >> 1 & 1;\n    uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2;\n    uVar8 = local_48 != 8 & uVar8;\nLAB_0004947f:\n    uVar6 = 4;\n    if (local_3c == 0) goto LAB_00049640;\n  }\n  else {\n    uVar8 = *(uint *)(iVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }\n    uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }\n    bVar12 = false;\n    bVar14 = param_4 == 2 && param_5 == 0;\n    if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar3 = 8;\n    pbVar10 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    bVar13 = false;\n    bVar12 = (!bVar12 && !bVar14) == bVar12;\n    if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }\n    uVar8 = (uint)(local_48 != 8);\n    uVar9 = 1;\nLAB_00049640:\n    uVar6 = 0xc;\n  }\n  uVar8 = uVar8 * 2;\nLAB_00049495:\n  uVar8 = uVar9 | uVar6 | uVar8;\n  if (param_8 != 0) {\n    uVar8 = uVar8 | 0x20000;\n  }\n  if (iVar2 == 0) {\n    if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }\n    iVar2 = *(int *)(local_44 + 0xa4);\n    *(uint *)(iVar2 + 4) = local_48;\n    *(uint *)(iVar2 + 8) = local_54;\n    *(uint *)(iVar2 + 0xc) = local_50;\n    *(undefined4 *)(iVar2 + 0x2c) = param_3;\n    if (local_48 == 8) {\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }\n    bfd_set_section_flags(DAT_00074f44,local_44,uVar8);\n    if ((uVar8 & 0x800000) != 0) {\n      *(int *)(local_44 + 0x90) = param_6;\n    }\n    *(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7;\n    iVar2 = FUN_00038c10(param_1);\n    if (iVar2 != 0) {\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }\n    uVar4 = FUN_00034e20(local_44);\n    FUN_00035600(uVar4);\n  }\n  else {\n    if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n    if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000492f0(byte *param_1,uint param_2,undefined4 param_3,uint param_4,uint param_5,\n                 int param_6,int param_7,int param_8,int param_9)" (identifier "FUN_000492f0") (parameter_list "(byte *param_1,uint param_2,undefined4 param_3,uint param_4,uint param_5,\n                 int param_6,int param_7,int param_8,int param_9)" (( "(") (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 "uint param_5" (type_identifier "uint") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (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")) (, ",") (parameter_declaration "int param_9" (primitive_type "int") (identifier "param_9")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 *puVar5;\n  uint uVar6;\n  undefined4 uVar7;\n  uint uVar8;\n  uint uVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  bool bVar14;\n  byte bVar15;\n  uint local_54;\n  uint local_50;\n  uint local_48;\n  int local_44;\n  uint local_3c;\n  byte local_38;\n  int local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0x492f9;\n  local_48 = param_2;\n  local_54 = param_4;\n  local_50 = param_5;\n  uVar4 = DAT_00074d7c;\n  uVar7 = DAT_00074ea0;\n  if (param_9 != 0) {\n    puVar5 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar5;\n    *puVar5 = DAT_00074c78;\n    DAT_00074c78 = puVar1;\n    puVar5[4] = DAT_00074c7c;\n    uVar4 = DAT_00074d7c;\n    puVar5[2] = DAT_00074c80;\n    puVar5[1] = uVar4;\n    uVar7 = DAT_00074ea0;\n    puVar5[3] = DAT_00074ea0;\n  }\n  local_24 = param_7;\n  local_20 = param_3;\n  DAT_00074c7c = uVar7;\n  DAT_00074c80 = uVar4;\n  iVar2 = bfd_get_section_by_name_if(DAT_00074f44,param_1,FUN_00047130,&local_24);\n  if (iVar2 == 0) {\n    local_44 = FUN_00034da0(param_1,0);\n  }\n  else {\n    FUN_00034dd0(iVar2,0);\n    local_44 = iVar2;\n  }\n  iVar3 = (**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))(DAT_00074f44,local_44);\n  if (iVar3 == 0) {\nLAB_00049408:\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    \n      FUN_0002a4d0(uVar4,param_1);\n    }\n    local_3c = local_54 & 1;\n    uVar8 = local_54 >> 1 & 1;\n    uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2;\n    uVar8 = local_48 != 8 & uVar8;\nLAB_0004947f:\n    uVar6 = 4;\n    if (local_3c == 0) goto LAB_00049640;\n  }\n  else {\n    uVar8 = *(uint *)(iVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }\n    uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }\n    bVar12 = false;\n    bVar14 = param_4 == 2 && param_5 == 0;\n    if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar3 = 8;\n    pbVar10 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    bVar13 = false;\n    bVar12 = (!bVar12 && !bVar14) == bVar12;\n    if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }\n    uVar8 = (uint)(local_48 != 8);\n    uVar9 = 1;\nLAB_00049640:\n    uVar6 = 0xc;\n  }\n  uVar8 = uVar8 * 2;\nLAB_00049495:\n  uVar8 = uVar9 | uVar6 | uVar8;\n  if (param_8 != 0) {\n    uVar8 = uVar8 | 0x20000;\n  }\n  if (iVar2 == 0) {\n    if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }\n    iVar2 = *(int *)(local_44 + 0xa4);\n    *(uint *)(iVar2 + 4) = local_48;\n    *(uint *)(iVar2 + 8) = local_54;\n    *(uint *)(iVar2 + 0xc) = local_50;\n    *(undefined4 *)(iVar2 + 0x2c) = param_3;\n    if (local_48 == 8) {\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }\n    bfd_set_section_flags(DAT_00074f44,local_44,uVar8);\n    if ((uVar8 & 0x800000) != 0) {\n      *(int *)(local_44 + 0x90) = param_6;\n    }\n    *(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7;\n    iVar2 = FUN_00038c10(param_1);\n    if (iVar2 != 0) {\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }\n    uVar4 = FUN_00034e20(local_44);\n    FUN_00035600(uVar4);\n  }\n  else {\n    if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n    if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\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 "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "bool bVar12;" (primitive_type "bool") (identifier "bVar12") (; ";")) (declaration "bool bVar13;" (primitive_type "bool") (identifier "bVar13") (; ";")) (declaration "bool bVar14;" (primitive_type "bool") (identifier "bVar14") (; ";")) (declaration "byte bVar15;" (type_identifier "byte") (identifier "bVar15") (; ";")) (declaration "uint local_54;" (type_identifier "uint") (identifier "local_54") (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "uint local_48;" (type_identifier "uint") (identifier "local_48") (; ";")) (declaration "int local_44;" (primitive_type "int") (identifier "local_44") (; ";")) (declaration "uint local_3c;" (type_identifier "uint") (identifier "local_3c") (; ";")) (declaration "byte local_38;" (type_identifier "byte") (identifier "local_38") (; ";")) (declaration "int local_24;" (primitive_type "int") (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 "bVar15 = 0;" (assignment_expression "bVar15 = 0" (identifier "bVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x492f9;" (assignment_expression "uStack_14 = 0x492f9" (identifier "uStack_14") (= "=") (number_literal "0x492f9")) (; ";")) (expression_statement "local_48 = param_2;" (assignment_expression "local_48 = param_2" (identifier "local_48") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_54 = param_4;" (assignment_expression "local_54 = param_4" (identifier "local_54") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_50 = param_5;" (assignment_expression "local_50 = param_5" (identifier "local_50") (= "=") (identifier "param_5")) (; ";")) (expression_statement "uVar4 = DAT_00074d7c;" (assignment_expression "uVar4 = DAT_00074d7c" (identifier "uVar4") (= "=") (identifier "DAT_00074d7c")) (; ";")) (expression_statement "uVar7 = DAT_00074ea0;" (assignment_expression "uVar7 = DAT_00074ea0" (identifier "uVar7") (= "=") (identifier "DAT_00074ea0")) (; ";")) (if_statement "if (param_9 != 0) {\n    puVar5 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar5;\n    *puVar5 = DAT_00074c78;\n    DAT_00074c78 = puVar1;\n    puVar5[4] = DAT_00074c7c;\n    uVar4 = DAT_00074d7c;\n    puVar5[2] = DAT_00074c80;\n    puVar5[1] = uVar4;\n    uVar7 = DAT_00074ea0;\n    puVar5[3] = DAT_00074ea0;\n  }" (if "if") (parenthesized_expression "(param_9 != 0)" (( "(") (binary_expression "param_9 != 0" (identifier "param_9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    puVar5 = (undefined4 *)xmalloc(0x14);\n    puVar1 = puVar5;\n    *puVar5 = DAT_00074c78;\n    DAT_00074c78 = puVar1;\n    puVar5[4] = DAT_00074c7c;\n    uVar4 = DAT_00074d7c;\n    puVar5[2] = DAT_00074c80;\n    puVar5[1] = uVar4;\n    uVar7 = DAT_00074ea0;\n    puVar5[3] = DAT_00074ea0;\n  }" ({ "{") (expression_statement "puVar5 = (undefined4 *)xmalloc(0x14);" (assignment_expression "puVar5 = (undefined4 *)xmalloc(0x14)" (identifier "puVar5") (= "=") (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 = puVar5;" (assignment_expression "puVar1 = puVar5" (identifier "puVar1") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "*puVar5 = DAT_00074c78;" (assignment_expression "*puVar5 = DAT_00074c78" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "DAT_00074c78")) (; ";")) (expression_statement "DAT_00074c78 = puVar1;" (assignment_expression "DAT_00074c78 = puVar1" (identifier "DAT_00074c78") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "puVar5[4] = DAT_00074c7c;" (assignment_expression "puVar5[4] = DAT_00074c7c" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "DAT_00074c7c")) (; ";")) (expression_statement "uVar4 = DAT_00074d7c;" (assignment_expression "uVar4 = DAT_00074d7c" (identifier "uVar4") (= "=") (identifier "DAT_00074d7c")) (; ";")) (expression_statement "puVar5[2] = DAT_00074c80;" (assignment_expression "puVar5[2] = DAT_00074c80" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "DAT_00074c80")) (; ";")) (expression_statement "puVar5[1] = uVar4;" (assignment_expression "puVar5[1] = uVar4" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "uVar7 = DAT_00074ea0;" (assignment_expression "uVar7 = DAT_00074ea0" (identifier "uVar7") (= "=") (identifier "DAT_00074ea0")) (; ";")) (expression_statement "puVar5[3] = DAT_00074ea0;" (assignment_expression "puVar5[3] = DAT_00074ea0" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "DAT_00074ea0")) (; ";")) (} "}"))) (expression_statement "local_24 = param_7;" (assignment_expression "local_24 = param_7" (identifier "local_24") (= "=") (identifier "param_7")) (; ";")) (expression_statement "local_20 = param_3;" (assignment_expression "local_20 = param_3" (identifier "local_20") (= "=") (identifier "param_3")) (; ";")) (expression_statement "DAT_00074c7c = uVar7;" (assignment_expression "DAT_00074c7c = uVar7" (identifier "DAT_00074c7c") (= "=") (identifier "uVar7")) (; ";")) (expression_statement "DAT_00074c80 = uVar4;" (assignment_expression "DAT_00074c80 = uVar4" (identifier "DAT_00074c80") (= "=") (identifier "uVar4")) (; ";")) (expression_statement "iVar2 = bfd_get_section_by_name_if(DAT_00074f44,param_1,FUN_00047130,&local_24);" (assignment_expression "iVar2 = bfd_get_section_by_name_if(DAT_00074f44,param_1,FUN_00047130,&local_24)" (identifier "iVar2") (= "=") (call_expression "bfd_get_section_by_name_if(DAT_00074f44,param_1,FUN_00047130,&local_24)" (identifier "bfd_get_section_by_name_if") (argument_list "(DAT_00074f44,param_1,FUN_00047130,&local_24)" (( "(") (identifier "DAT_00074f44") (, ",") (identifier "param_1") (, ",") (identifier "FUN_00047130") (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n    local_44 = FUN_00034da0(param_1,0);\n  }\n  else {\n    FUN_00034dd0(iVar2,0);\n    local_44 = iVar2;\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_44 = FUN_00034da0(param_1,0);\n  }" ({ "{") (expression_statement "local_44 = FUN_00034da0(param_1,0);" (assignment_expression "local_44 = FUN_00034da0(param_1,0)" (identifier "local_44") (= "=") (call_expression "FUN_00034da0(param_1,0)" (identifier "FUN_00034da0") (argument_list "(param_1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    FUN_00034dd0(iVar2,0);\n    local_44 = iVar2;\n  }" (else "else") (compound_statement "{\n    FUN_00034dd0(iVar2,0);\n    local_44 = iVar2;\n  }" ({ "{") (expression_statement "FUN_00034dd0(iVar2,0);" (call_expression "FUN_00034dd0(iVar2,0)" (identifier "FUN_00034dd0") (argument_list "(iVar2,0)" (( "(") (identifier "iVar2") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_44 = iVar2;" (assignment_expression "local_44 = iVar2" (identifier "local_44") (= "=") (identifier "iVar2")) (; ";")) (} "}")))) (expression_statement "iVar3 = (**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))(DAT_00074f44,local_44);" (assignment_expression "iVar3 = (**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))(DAT_00074f44,local_44)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))(DAT_00074f44,local_44)" (parenthesized_expression "(**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))" (( "(") (pointer_expression "**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68)" (* "*") (pointer_expression "*(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68)" (* "*") (cast_expression "(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68)" (( "(") (binary_expression "*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68" (pointer_expression "*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0)" (* "*") (cast_expression "(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_00074f44 + 4) + 0x1c0)" (( "(") (binary_expression "*(int *)(DAT_00074f44 + 4) + 0x1c0" (pointer_expression "*(int *)(DAT_00074f44 + 4)" (* "*") (cast_expression "(int *)(DAT_00074f44 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00074f44 + 4)" (( "(") (binary_expression "DAT_00074f44 + 4" (identifier "DAT_00074f44") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x1c0")) () ")")))) (+ "+") (number_literal "0x68")) () ")"))))) () ")")) (argument_list "(DAT_00074f44,local_44)" (( "(") (identifier "DAT_00074f44") (, ",") (identifier "local_44") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\nLAB_00049408:\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    \n      FUN_0002a4d0(uVar4,param_1);\n    }\n    local_3c = local_54 & 1;\n    uVar8 = local_54 >> 1 & 1;\n    uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2;\n    uVar8 = local_48 != 8 & uVar8;\nLAB_0004947f:\n    uVar6 = 4;\n    if (local_3c == 0) goto LAB_00049640;\n  }\n  else {\n    uVar8 = *(uint *)(iVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }\n    uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }\n    bVar12 = false;\n    bVar14 = param_4 == 2 && param_5 == 0;\n    if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar3 = 8;\n    pbVar10 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    bVar13 = false;\n    bVar12 = (!bVar12 && !bVar14) == bVar12;\n    if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }\n    uVar8 = (uint)(local_48 != 8);\n    uVar9 = 1;\nLAB_00049640:\n    uVar6 = 0xc;\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00049408:\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    \n      FUN_0002a4d0(uVar4,param_1);\n    }\n    local_3c = local_54 & 1;\n    uVar8 = local_54 >> 1 & 1;\n    uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2;\n    uVar8 = local_48 != 8 & uVar8;\nLAB_0004947f:\n    uVar6 = 4;\n    if (local_3c == 0) goto LAB_00049640;\n  }" ({ "{") (labeled_statement "LAB_00049408:\n    if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    \n      FUN_0002a4d0(uVar4,param_1);\n    }" (statement_identifier "LAB_00049408") (: ":") (if_statement "if ((local_54 & 0x1000002) == 0x1000000) {\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    \n      FUN_0002a4d0(uVar4,param_1);\n    }" (if "if") (parenthesized_expression "((local_54 & 0x1000002) == 0x1000000)" (( "(") (binary_expression "(local_54 & 0x1000002) == 0x1000000" (parenthesized_expression "(local_54 & 0x1000002)" (( "(") (binary_expression "local_54 & 0x1000002" (identifier "local_54") (& "&") (number_literal "0x1000002")) () ")")) (== "==") (number_literal "0x1000000")) () ")")) (compound_statement "{\n      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);\n                    \n      FUN_0002a4d0(uVar4,param_1);\n    }" ({ "{") (expression_statement "uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);" (assignment_expression "uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000)" (identifier "dcgettext") (argument_list "(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000)" (( "(") (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") (, ",") (number_literal "0x1000000") () ")")))) (; ";")) (expression_statement "FUN_0002a4d0(uVar4,param_1);" (call_expression "FUN_0002a4d0(uVar4,param_1)" (identifier "FUN_0002a4d0") (argument_list "(uVar4,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}")))) (expression_statement "local_3c = local_54 & 1;" (assignment_expression "local_3c = local_54 & 1" (identifier "local_3c") (= "=") (binary_expression "local_54 & 1" (identifier "local_54") (& "&") (number_literal "1"))) (; ";")) (expression_statement "uVar8 = local_54 >> 1 & 1;" (assignment_expression "uVar8 = local_54 >> 1 & 1" (identifier "uVar8") (= "=") (binary_expression "local_54 >> 1 & 1" (binary_expression "local_54 >> 1" (identifier "local_54") (>> ">>") (number_literal "1")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2;" (assignment_expression "uVar9 = local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2" (identifier "uVar9") (= "=") (binary_expression "local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2" (binary_expression "local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8" (binary_expression "local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400 | local_54 << 0x13 & 0x800000" (binary_expression "local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000 |\n            local_54 & 0x400" (binary_expression "local_54 >> 0x10 & 0x8000 |\n            local_54 << 0x13 & 0x1000000" (binary_expression "local_54 >> 0x10 & 0x8000" (binary_expression "local_54 >> 0x10" (identifier "local_54") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0x8000")) (| "|") (binary_expression "local_54 << 0x13 & 0x1000000" (binary_expression "local_54 << 0x13" (identifier "local_54") (<< "<<") (number_literal "0x13")) (& "&") (number_literal "0x1000000"))) (| "|") (binary_expression "local_54 & 0x400" (identifier "local_54") (& "&") (number_literal "0x400"))) (| "|") (binary_expression "local_54 << 0x13 & 0x800000" (binary_expression "local_54 << 0x13" (identifier "local_54") (<< "<<") (number_literal "0x13")) (& "&") (number_literal "0x800000"))) (| "|") (identifier "uVar8")) (| "|") (binary_expression "(local_54 & 4) << 2" (parenthesized_expression "(local_54 & 4)" (( "(") (binary_expression "local_54 & 4" (identifier "local_54") (& "&") (number_literal "4")) () ")")) (<< "<<") (number_literal "2")))) (; ";")) (expression_statement "uVar8 = local_48 != 8 & uVar8;" (assignment_expression "uVar8 = local_48 != 8 & uVar8" (identifier "uVar8") (= "=") (binary_expression "local_48 != 8 & uVar8" (binary_expression "local_48 != 8" (identifier "local_48") (!= "!=") (number_literal "8")) (& "&") (identifier "uVar8"))) (; ";")) (labeled_statement "LAB_0004947f:\n    uVar6 = 4;" (statement_identifier "LAB_0004947f") (: ":") (expression_statement "uVar6 = 4;" (assignment_expression "uVar6 = 4" (identifier "uVar6") (= "=") (number_literal "4")) (; ";"))) (if_statement "if (local_3c == 0) goto LAB_00049640;" (if "if") (parenthesized_expression "(local_3c == 0)" (( "(") (binary_expression "local_3c == 0" (identifier "local_3c") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00049640;" (goto "goto") (statement_identifier "LAB_00049640") (; ";"))) (} "}")) (else_clause "else {\n    uVar8 = *(uint *)(iVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }\n    uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }\n    bVar12 = false;\n    bVar14 = param_4 == 2 && param_5 == 0;\n    if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar3 = 8;\n    pbVar10 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    bVar13 = false;\n    bVar12 = (!bVar12 && !bVar14) == bVar12;\n    if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }\n    uVar8 = (uint)(local_48 != 8);\n    uVar9 = 1;\nLAB_00049640:\n    uVar6 = 0xc;\n  }" (else "else") (compound_statement "{\n    uVar8 = *(uint *)(iVar3 + 0xc);\n    if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }\n    uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }\n    if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }\n    if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }\n    bVar12 = false;\n    bVar14 = param_4 == 2 && param_5 == 0;\n    if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }\n    iVar3 = 8;\n    pbVar10 = param_1;\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    bVar13 = false;\n    bVar12 = (!bVar12 && !bVar14) == bVar12;\n    if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }\n    uVar8 = (uint)(local_48 != 8);\n    uVar9 = 1;\nLAB_00049640:\n    uVar6 = 0xc;\n  }" ({ "{") (expression_statement "uVar8 = *(uint *)(iVar3 + 0xc);" (assignment_expression "uVar8 = *(uint *)(iVar3 + 0xc)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(iVar3 + 0xc)" (* "*") (cast_expression "(uint *)(iVar3 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if ((param_2 == 0) || (param_2 == uVar8)) {\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }\n    else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }" (if "if") (parenthesized_expression "((param_2 == 0) || (param_2 == uVar8))" (( "(") (binary_expression "(param_2 == 0) || (param_2 == uVar8)" (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_2 == uVar8)" (( "(") (binary_expression "param_2 == uVar8" (identifier "param_2") (== "==") (identifier "uVar8")) () ")"))) () ")")) (compound_statement "{\nLAB_00049400:\n      local_48 = uVar8;\n      if (iVar2 != 0) goto LAB_00049408;\n    }" ({ "{") (labeled_statement "LAB_00049400:\n      local_48 = uVar8;" (statement_identifier "LAB_00049400") (: ":") (expression_statement "local_48 = uVar8;" (assignment_expression "local_48 = uVar8" (identifier "local_48") (= "=") (identifier "uVar8")) (; ";"))) (if_statement "if (iVar2 != 0) goto LAB_00049408;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00049408;" (goto "goto") (statement_identifier "LAB_00049408") (; ";"))) (} "}")) (else_clause "else {\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }" (else "else") (compound_statement "{\n      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }\n      if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }\n    }" ({ "{") (if_statement "if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {\n        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\n      }" (if "if") (parenthesized_expression "((uVar8 - 0xe < 3) || (iVar2 != 0))" (( "(") (binary_expression "(uVar8 - 0xe < 3) || (iVar2 != 0)" (parenthesized_expression "(uVar8 - 0xe < 3)" (( "(") (binary_expression "uVar8 - 0xe < 3" (binary_expression "uVar8 - 0xe" (identifier "uVar8") (- "-") (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_0002a350(uVar4,param_1);\n        uVar8 = *(uint *)(iVar3 + 0xc);\n        goto LAB_00049400;\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_0002a350(uVar4,param_1);" (call_expression "FUN_0002a350(uVar4,param_1)" (identifier "FUN_0002a350") (argument_list "(uVar4,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "uVar8 = *(uint *)(iVar3 + 0xc);" (assignment_expression "uVar8 = *(uint *)(iVar3 + 0xc)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(iVar3 + 0xc)" (* "*") (cast_expression "(uint *)(iVar3 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (goto_statement "goto LAB_00049400;" (goto "goto") (statement_identifier "LAB_00049400") (; ";")) (} "}"))) (if_statement "if ((uVar8 == 7) || (0x6fffffff < param_2)) {\n      }\n      else {\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(uVar4,param_1);\n      }" (if "if") (parenthesized_expression "((uVar8 == 7) || (0x6fffffff < param_2))" (( "(") (binary_expression "(uVar8 == 7) || (0x6fffffff < param_2)" (parenthesized_expression "(uVar8 == 7)" (( "(") (binary_expression "uVar8 == 7" (identifier "uVar8") (== "==") (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_0002a350(uVar4,param_1);\n      }" (else "else") (compound_statement "{\n        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_0002a350(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_0002a350(uVar4,param_1);" (call_expression "FUN_0002a350(uVar4,param_1)" (identifier "FUN_0002a350") (argument_list "(uVar4,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;" (assignment_expression "uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4" (identifier "uVar8") (= "=") (binary_expression "~*(uint *)(iVar3 + 0x10) & param_4" (unary_expression "~*(uint *)(iVar3 + 0x10)" (~ "~") (pointer_expression "*(uint *)(iVar3 + 0x10)" (* "*") (cast_expression "(uint *)(iVar3 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")"))))) (& "&") (identifier "param_4"))) (; ";")) (if_statement "if ((uVar8 & 0xfffff) == 0) {\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }" (if "if") (parenthesized_expression "((uVar8 & 0xfffff) == 0)" (( "(") (binary_expression "(uVar8 & 0xfffff) == 0" (parenthesized_expression "(uVar8 & 0xfffff)" (( "(") (binary_expression "uVar8 & 0xfffff" (identifier "uVar8") (& "&") (number_literal "0xfffff")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;\n      local_50 = *(uint *)(iVar3 + 0x14) | param_5;\n      goto LAB_00049408;\n    }" ({ "{") (labeled_statement "LAB_00049610:\n      local_54 = *(uint *)(iVar3 + 0x10) | param_4;" (statement_identifier "LAB_00049610") (: ":") (expression_statement "local_54 = *(uint *)(iVar3 + 0x10) | param_4;" (assignment_expression "local_54 = *(uint *)(iVar3 + 0x10) | param_4" (identifier "local_54") (= "=") (binary_expression "*(uint *)(iVar3 + 0x10) | param_4" (pointer_expression "*(uint *)(iVar3 + 0x10)" (* "*") (cast_expression "(uint *)(iVar3 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")")))) (| "|") (identifier "param_4"))) (; ";"))) (expression_statement "local_50 = *(uint *)(iVar3 + 0x14) | param_5;" (assignment_expression "local_50 = *(uint *)(iVar3 + 0x14) | param_5" (identifier "local_50") (= "=") (binary_expression "*(uint *)(iVar3 + 0x14) | param_5" (pointer_expression "*(uint *)(iVar3 + 0x14)" (* "*") (cast_expression "(uint *)(iVar3 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")")))) (| "|") (identifier "param_5"))) (; ";")) (goto_statement "goto LAB_00049408;" (goto "goto") (statement_identifier "LAB_00049408") (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar3 + 0xc) == 7) {\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0xc) == 7)" (( "(") (binary_expression "*(int *)(iVar3 + 0xc) == 7" (pointer_expression "*(int *)(iVar3 + 0xc)" (* "*") (cast_expression "(int *)(iVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "7")) () ")")) (compound_statement "{\n      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }\n      goto LAB_00049610;\n    }" ({ "{") (if_statement "if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {\n        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }" (if "if") (parenthesized_expression "((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0)" (( "(") (binary_expression "(param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0" (binary_expression "(param_5 - 1) + (uint)(1 < param_4) != 0" (binary_expression "(param_5 - 1) + (uint)(1 < param_4)" (parenthesized_expression "(param_5 - 1)" (( "(") (binary_expression "param_5 - 1" (identifier "param_5") (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)(1 < param_4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(1 < param_4)" (( "(") (binary_expression "1 < param_4" (number_literal "1") (< "<") (identifier "param_4")) () ")")))) (!= "!=") (number_literal "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 *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;\nLAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }\n        goto LAB_00049408;\n      }" ({ "{") (if_statement "if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))\n        goto LAB_000495fd;" (if "if") (parenthesized_expression "((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))" (( "(") (binary_expression "(*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)" (parenthesized_expression "(*(int *)(iVar3 + 8) == -2)" (( "(") (binary_expression "*(int *)(iVar3 + 8) == -2" (pointer_expression "*(int *)(iVar3 + 8)" (* "*") (cast_expression "(int *)(iVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "-2")) () ")")) (&& "&&") (parenthesized_expression "(param_1[*(int *)(iVar3 + 4)] == 0x2e)" (( "(") (binary_expression "param_1[*(int *)(iVar3 + 4)] == 0x2e" (subscript_expression "param_1[*(int *)(iVar3 + 4)]" (identifier "param_1") ([ "[") (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) (] "]")) (== "==") (number_literal "0x2e")) () ")"))) () ")")) (goto_statement "goto LAB_000495fd;" (goto "goto") (statement_identifier "LAB_000495fd") (; ";"))) (labeled_statement "LAB_0004994d:\n        if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }" (statement_identifier "LAB_0004994d") (: ":") (if_statement "if (param_7 == 0) {\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }" (if "if") (parenthesized_expression "(param_7 == 0)" (( "(") (binary_expression "param_7 == 0" (identifier "param_7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_0002a350(uVar4,param_1);\n        }" ({ "{") (labeled_statement "LAB_00049959:\n          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);" (statement_identifier "LAB_00049959") (: ":") (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_0002a350(uVar4,param_1);" (call_expression "FUN_0002a350(uVar4,param_1)" (identifier "FUN_0002a350") (argument_list "(uVar4,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_00049408;" (goto "goto") (statement_identifier "LAB_00049408") (; ";")) (} "}"))) (goto_statement "goto LAB_00049610;" (goto "goto") (statement_identifier "LAB_00049610") (; ";")) (} "}"))) (if_statement "if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }" (if "if") (parenthesized_expression "((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))" (( "(") (binary_expression "(*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)" (parenthesized_expression "(*(int *)(iVar3 + 8) == -2)" (( "(") (binary_expression "*(int *)(iVar3 + 8) == -2" (pointer_expression "*(int *)(iVar3 + 8)" (* "*") (cast_expression "(int *)(iVar3 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "-2")) () ")")) (&& "&&") (parenthesized_expression "(param_1[*(int *)(iVar3 + 4)] == 0x2e)" (( "(") (binary_expression "param_1[*(int *)(iVar3 + 4)] == 0x2e" (subscript_expression "param_1[*(int *)(iVar3 + 4)]" (identifier "param_1") ([ "[") (pointer_expression "*(int *)(iVar3 + 4)" (* "*") (cast_expression "(int *)(iVar3 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 4)" (( "(") (binary_expression "iVar3 + 4" (identifier "iVar3") (+ "+") (number_literal "4")) () ")")))) (] "]")) (== "==") (number_literal "0x2e")) () ")"))) () ")")) (compound_statement "{\nLAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;\n    }" ({ "{") (labeled_statement "LAB_000495fd:\n      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;" (statement_identifier "LAB_000495fd") (: ":") (if_statement "if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;" (if "if") (parenthesized_expression "((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0)" (( "(") (binary_expression "(~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0" (binary_expression "(~*(uint *)(iVar3 + 0x14) & param_5) == 0" (parenthesized_expression "(~*(uint *)(iVar3 + 0x14) & param_5)" (( "(") (binary_expression "~*(uint *)(iVar3 + 0x14) & param_5" (unary_expression "~*(uint *)(iVar3 + 0x14)" (~ "~") (pointer_expression "*(uint *)(iVar3 + 0x14)" (* "*") (cast_expression "(uint *)(iVar3 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")"))))) (& "&") (identifier "param_5")) () ")")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "(uVar8 & 0xffffffcf) == 0" (parenthesized_expression "(uVar8 & 0xffffffcf)" (( "(") (binary_expression "uVar8 & 0xffffffcf" (identifier "uVar8") (& "&") (number_literal "0xffffffcf")) () ")")) (== "==") (number_literal "0"))) () ")")) (goto_statement "goto LAB_00049610;" (goto "goto") (statement_identifier "LAB_00049610") (; ";")))) (} "}"))) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" (identifier "bVar12") (= "=") (false "false")) (; ";")) (expression_statement "bVar14 = param_4 == 2 && param_5 == 0;" (assignment_expression "bVar14 = param_4 == 2 && param_5 == 0" (identifier "bVar14") (= "=") (binary_expression "param_4 == 2 && param_5 == 0" (binary_expression "param_4 == 2" (identifier "param_4") (== "==") (number_literal "2")) (&& "&&") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")))) (; ";")) (if_statement "if (param_4 != 2 || param_5 != 0) {\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }" (if "if") (parenthesized_expression "(param_4 != 2 || param_5 != 0)" (( "(") (binary_expression "param_4 != 2 || param_5 != 0" (binary_expression "param_4 != 2" (identifier "param_4") (!= "!=") (number_literal "2")) (|| "||") (binary_expression "param_5 != 0" (identifier "param_5") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n      bVar12 = false;\n      bVar14 = param_5 == 0 && param_4 == 4;\n      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;\n      iVar3 = 0x10;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".note.GNU-stack";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);\n      if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }\nLAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;\n      local_3c = param_4 & 1;\n      uVar8 = param_4 >> 1 & 1;\n      uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;\n      local_38 = (byte)uVar8;\n      uVar8 = (uint)(local_48 != 8 & local_38);\n      goto LAB_0004947f;\n    }" ({ "{") (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" (identifier "bVar12") (= "=") (false "false")) (; ";")) (expression_statement "bVar14 = param_5 == 0 && param_4 == 4;" (assignment_expression "bVar14 = param_5 == 0 && param_4 == 4" (identifier "bVar14") (= "=") (binary_expression "param_5 == 0 && param_4 == 4" (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) (&& "&&") (binary_expression "param_4 == 4" (identifier "param_4") (== "==") (number_literal "4")))) (; ";")) (if_statement "if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;" (if "if") (parenthesized_expression "(param_5 != 0 || param_4 != 4)" (( "(") (binary_expression "param_5 != 0 || param_4 != 4" (binary_expression "param_5 != 0" (identifier "param_5") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "param_4 != 4" (identifier "param_4") (!= "!=") (number_literal "4"))) () ")")) (goto_statement "goto LAB_0004994d;" (goto "goto") (statement_identifier "LAB_0004994d") (; ";"))) (expression_statement "iVar3 = 0x10;" (assignment_expression "iVar3 = 0x10" (identifier "iVar3") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "pbVar10 = param_1;" (assignment_expression "pbVar10 = param_1" (identifier "pbVar10") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = (byte *)".note.GNU-stack";" (assignment_expression "pbVar11 = (byte *)".note.GNU-stack"" (identifier "pbVar11") (= "=") (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        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar14);" (do "do") (compound_statement "{\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar12 = *pbVar10 < *pbVar11;\n        bVar14 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar3 == 0) break;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar12 = *pbVar10 < *pbVar11;" (assignment_expression "bVar12 = *pbVar10 < *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar14 = *pbVar10 == *pbVar11;" (assignment_expression "bVar14 = *pbVar10 == *pbVar11" (identifier "bVar14") (= "=") (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar15 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar15 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar14)" (( "(") (identifier "bVar14") () ")")) (; ";")) (if_statement "if ((!bVar12 && !bVar14) == bVar12) {\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }" (if "if") (parenthesized_expression "((!bVar12 && !bVar14) == bVar12)" (( "(") (binary_expression "(!bVar12 && !bVar14) == bVar12" (parenthesized_expression "(!bVar12 && !bVar14)" (( "(") (binary_expression "!bVar12 && !bVar14" (unary_expression "!bVar12" (! "!") (identifier "bVar12")) (&& "&&") (unary_expression "!bVar14" (! "!") (identifier "bVar14"))) () ")")) (== "==") (identifier "bVar12")) () ")")) (compound_statement "{\n        uVar9 = 0x10;\n        uVar6 = 0xc;\n        uVar8 = 0;\n        goto LAB_00049495;\n      }" ({ "{") (expression_statement "uVar9 = 0x10;" (assignment_expression "uVar9 = 0x10" (identifier "uVar9") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "uVar6 = 0xc;" (assignment_expression "uVar6 = 0xc" (identifier "uVar6") (= "=") (number_literal "0xc")) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00049495;" (goto "goto") (statement_identifier "LAB_00049495") (; ";")) (} "}"))) (labeled_statement "LAB_000498a2:\n      if (param_7 == 0) goto LAB_00049959;" (statement_identifier "LAB_000498a2") (: ":") (if_statement "if (param_7 == 0) goto LAB_00049959;" (if "if") (parenthesized_expression "(param_7 == 0)" (( "(") (binary_expression "param_7 == 0" (identifier "param_7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00049959;" (goto "goto") (statement_identifier "LAB_00049959") (; ";")))) (expression_statement "local_3c = param_4 & 1;" (assignment_expression "local_3c = param_4 & 1" (identifier "local_3c") (= "=") (binary_expression "param_4 & 1" (identifier "param_4") (& "&") (number_literal "1"))) (; ";")) (expression_statement "uVar8 = param_4 >> 1 & 1;" (assignment_expression "uVar8 = param_4 >> 1 & 1" (identifier "uVar8") (= "=") (binary_expression "param_4 >> 1 & 1" (binary_expression "param_4 >> 1" (identifier "param_4") (>> ">>") (number_literal "1")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000;" (assignment_expression "uVar9 = param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000" (identifier "uVar9") (= "=") (binary_expression "param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |\n              param_4 << 0x13 & 0x1000000" (binary_expression "param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000" (binary_expression "param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8" (binary_expression "param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400 | param_4 * 4 & 0x10" (binary_expression "param_4 >> 0x10 & 0x8000 |\n              param_4 & 0x400" (binary_expression "param_4 >> 0x10 & 0x8000" (binary_expression "param_4 >> 0x10" (identifier "param_4") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0x8000")) (| "|") (binary_expression "param_4 & 0x400" (identifier "param_4") (& "&") (number_literal "0x400"))) (| "|") (binary_expression "param_4 * 4 & 0x10" (binary_expression "param_4 * 4" (identifier "param_4") (* "*") (number_literal "4")) (& "&") (number_literal "0x10"))) (| "|") (identifier "uVar8")) (| "|") (binary_expression "param_4 << 0x13 & 0x800000" (binary_expression "param_4 << 0x13" (identifier "param_4") (<< "<<") (number_literal "0x13")) (& "&") (number_literal "0x800000"))) (| "|") (binary_expression "param_4 << 0x13 & 0x1000000" (binary_expression "param_4 << 0x13" (identifier "param_4") (<< "<<") (number_literal "0x13")) (& "&") (number_literal "0x1000000")))) (; ";")) (expression_statement "local_38 = (byte)uVar8;" (assignment_expression "local_38 = (byte)uVar8" (identifier "local_38") (= "=") (cast_expression "(byte)uVar8" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar8"))) (; ";")) (expression_statement "uVar8 = (uint)(local_48 != 8 & local_38);" (assignment_expression "uVar8 = (uint)(local_48 != 8 & local_38)" (identifier "uVar8") (= "=") (call_expression "(uint)(local_48 != 8 & local_38)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_48 != 8 & local_38)" (( "(") (binary_expression "local_48 != 8 & local_38" (binary_expression "local_48 != 8" (identifier "local_48") (!= "!=") (number_literal "8")) (& "&") (identifier "local_38")) () ")")))) (; ";")) (goto_statement "goto LAB_0004947f;" (goto "goto") (statement_identifier "LAB_0004947f") (; ";")) (} "}"))) (expression_statement "iVar3 = 8;" (assignment_expression "iVar3 = 8" (identifier "iVar3") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar10 = param_1;" (assignment_expression "pbVar10 = param_1" (identifier "pbVar10") (= "=") (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 (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);" (do "do") (compound_statement "{\n      if (iVar3 == 0) break;\n      iVar3 = iVar3 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar14 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar3 == 0) break;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar12 = *pbVar10 < *pbVar11;" (assignment_expression "bVar12 = *pbVar10 < *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar14 = *pbVar10 == *pbVar11;" (assignment_expression "bVar14 = *pbVar10 == *pbVar11" (identifier "bVar14") (= "=") (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar15 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar15 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar14)" (( "(") (identifier "bVar14") () ")")) (; ";")) (expression_statement "bVar13 = false;" (assignment_expression "bVar13 = false" (identifier "bVar13") (= "=") (false "false")) (; ";")) (expression_statement "bVar12 = (!bVar12 && !bVar14) == bVar12;" (assignment_expression "bVar12 = (!bVar12 && !bVar14) == bVar12" (identifier "bVar12") (= "=") (binary_expression "(!bVar12 && !bVar14) == bVar12" (parenthesized_expression "(!bVar12 && !bVar14)" (( "(") (binary_expression "!bVar12 && !bVar14" (unary_expression "!bVar12" (! "!") (identifier "bVar12")) (&& "&&") (unary_expression "!bVar14" (! "!") (identifier "bVar14"))) () ")")) (== "==") (identifier "bVar12"))) (; ";")) (if_statement "if (!bVar12) {\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }" (if "if") (parenthesized_expression "(!bVar12)" (( "(") (unary_expression "!bVar12" (! "!") (identifier "bVar12")) () ")")) (compound_statement "{\n      iVar3 = 8;\n      pbVar10 = param_1;\n      pbVar11 = (byte *)".strtab";\n      do {\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);\n      bVar14 = false;\n      bVar12 = (!bVar13 && !bVar12) == bVar13;\n      if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }\n    }" ({ "{") (expression_statement "iVar3 = 8;" (assignment_expression "iVar3 = 8" (identifier "iVar3") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar10 = param_1;" (assignment_expression "pbVar10 = param_1" (identifier "pbVar10") (= "=") (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 (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      } while (bVar12);" (do "do") (compound_statement "{\n        if (iVar3 == 0) break;\n        iVar3 = iVar3 + -1;\n        bVar13 = *pbVar10 < *pbVar11;\n        bVar12 = *pbVar10 == *pbVar11;\n        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n      }" ({ "{") (if_statement "if (iVar3 == 0) break;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar13 = *pbVar10 < *pbVar11;" (assignment_expression "bVar13 = *pbVar10 < *pbVar11" (identifier "bVar13") (= "=") (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar10 == *pbVar11;" (assignment_expression "bVar12 = *pbVar10 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar15 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar15 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" (identifier "bVar14") (= "=") (false "false")) (; ";")) (expression_statement "bVar12 = (!bVar13 && !bVar12) == bVar13;" (assignment_expression "bVar12 = (!bVar13 && !bVar12) == bVar13" (identifier "bVar12") (= "=") (binary_expression "(!bVar13 && !bVar12) == bVar13" (parenthesized_expression "(!bVar13 && !bVar12)" (( "(") (binary_expression "!bVar13 && !bVar12" (unary_expression "!bVar13" (! "!") (identifier "bVar13")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (== "==") (identifier "bVar13"))) (; ";")) (if_statement "if (!bVar12) {\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }" (if "if") (parenthesized_expression "(!bVar12)" (( "(") (unary_expression "!bVar12" (! "!") (identifier "bVar12")) () ")")) (compound_statement "{\n        iVar3 = 8;\n        pbVar10 = param_1;\n        pbVar11 = (byte *)".symtab";\n        do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);\n        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;\n      }" ({ "{") (expression_statement "iVar3 = 8;" (assignment_expression "iVar3 = 8" (identifier "iVar3") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar10 = param_1;" (assignment_expression "pbVar10 = param_1" (identifier "pbVar10") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar11 = (byte *)".symtab";" (assignment_expression "pbVar11 = (byte *)".symtab"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)".symtab"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".symtab"" (" """) (string_content ".symtab") (" """)))) (; ";")) (do_statement "do {\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        } while (bVar12);" (do "do") (compound_statement "{\n          if (iVar3 == 0) break;\n          iVar3 = iVar3 + -1;\n          bVar14 = *pbVar10 < *pbVar11;\n          bVar12 = *pbVar10 == *pbVar11;\n          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;\n          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;\n        }" ({ "{") (if_statement "if (iVar3 == 0) break;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar14 = *pbVar10 < *pbVar11;" (assignment_expression "bVar14 = *pbVar10 < *pbVar11" (identifier "bVar14") (= "=") (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar12 = *pbVar10 == *pbVar11;" (assignment_expression "bVar12 = *pbVar10 == *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar15 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar15 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (; ";")) (if_statement "if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;" (if "if") (parenthesized_expression "((!bVar14 && !bVar12) != bVar14)" (( "(") (binary_expression "(!bVar14 && !bVar12) != bVar14" (parenthesized_expression "(!bVar14 && !bVar12)" (( "(") (binary_expression "!bVar14 && !bVar12" (unary_expression "!bVar14" (! "!") (identifier "bVar14")) (&& "&&") (unary_expression "!bVar12" (! "!") (identifier "bVar12"))) () ")")) (!= "!=") (identifier "bVar14")) () ")")) (goto_statement "goto LAB_000498a2;" (goto "goto") (statement_identifier "LAB_000498a2") (; ";"))) (} "}"))) (} "}"))) (expression_statement "uVar8 = (uint)(local_48 != 8);" (assignment_expression "uVar8 = (uint)(local_48 != 8)" (identifier "uVar8") (= "=") (call_expression "(uint)(local_48 != 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_48 != 8)" (( "(") (binary_expression "local_48 != 8" (identifier "local_48") (!= "!=") (number_literal "8")) () ")")))) (; ";")) (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" (identifier "uVar9") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_00049640:\n    uVar6 = 0xc;" (statement_identifier "LAB_00049640") (: ":") (expression_statement "uVar6 = 0xc;" (assignment_expression "uVar6 = 0xc" (identifier "uVar6") (= "=") (number_literal "0xc")) (; ";"))) (} "}")))) (expression_statement "uVar8 = uVar8 * 2;" (assignment_expression "uVar8 = uVar8 * 2" (identifier "uVar8") (= "=") (binary_expression "uVar8 * 2" (identifier "uVar8") (* "*") (number_literal "2"))) (; ";")) (labeled_statement "LAB_00049495:\n  uVar8 = uVar9 | uVar6 | uVar8;" (statement_identifier "LAB_00049495") (: ":") (expression_statement "uVar8 = uVar9 | uVar6 | uVar8;" (assignment_expression "uVar8 = uVar9 | uVar6 | uVar8" (identifier "uVar8") (= "=") (binary_expression "uVar9 | uVar6 | uVar8" (binary_expression "uVar9 | uVar6" (identifier "uVar9") (| "|") (identifier "uVar6")) (| "|") (identifier "uVar8"))) (; ";"))) (if_statement "if (param_8 != 0) {\n    uVar8 = uVar8 | 0x20000;\n  }" (if "if") (parenthesized_expression "(param_8 != 0)" (( "(") (binary_expression "param_8 != 0" (identifier "param_8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar8 = uVar8 | 0x20000;\n  }" ({ "{") (expression_statement "uVar8 = uVar8 | 0x20000;" (assignment_expression "uVar8 = uVar8 | 0x20000" (identifier "uVar8") (= "=") (binary_expression "uVar8 | 0x20000" (identifier "uVar8") (| "|") (number_literal "0x20000"))) (; ";")) (} "}"))) (if_statement "if (iVar2 == 0) {\n    if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }\n    iVar2 = *(int *)(local_44 + 0xa4);\n    *(uint *)(iVar2 + 4) = local_48;\n    *(uint *)(iVar2 + 8) = local_54;\n    *(uint *)(iVar2 + 0xc) = local_50;\n    *(undefined4 *)(iVar2 + 0x2c) = param_3;\n    if (local_48 == 8) {\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }\n    bfd_set_section_flags(DAT_00074f44,local_44,uVar8);\n    if ((uVar8 & 0x800000) != 0) {\n      *(int *)(local_44 + 0x90) = param_6;\n    }\n    *(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7;\n    iVar2 = FUN_00038c10(param_1);\n    if (iVar2 != 0) {\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }\n    uVar4 = FUN_00034e20(local_44);\n    FUN_00035600(uVar4);\n  }\n  else {\n    if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n    if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }\n    iVar2 = *(int *)(local_44 + 0xa4);\n    *(uint *)(iVar2 + 4) = local_48;\n    *(uint *)(iVar2 + 8) = local_54;\n    *(uint *)(iVar2 + 0xc) = local_50;\n    *(undefined4 *)(iVar2 + 0x2c) = param_3;\n    if (local_48 == 8) {\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }\n    bfd_set_section_flags(DAT_00074f44,local_44,uVar8);\n    if ((uVar8 & 0x800000) != 0) {\n      *(int *)(local_44 + 0x90) = param_6;\n    }\n    *(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7;\n    iVar2 = FUN_00038c10(param_1);\n    if (iVar2 != 0) {\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }\n    uVar4 = FUN_00034e20(local_44);\n    FUN_00035600(uVar4);\n  }" ({ "{") (if_statement "if (local_48 == 0) {\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }" (if "if") (parenthesized_expression "(local_48 == 0)" (( "(") (binary_expression "local_48 == 0" (identifier "local_48") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_48 = bfd_elf_get_default_section_type(uVar8);\n    }" ({ "{") (expression_statement "local_48 = bfd_elf_get_default_section_type(uVar8);" (assignment_expression "local_48 = bfd_elf_get_default_section_type(uVar8)" (identifier "local_48") (= "=") (call_expression "bfd_elf_get_default_section_type(uVar8)" (identifier "bfd_elf_get_default_section_type") (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")")))) (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)(local_44 + 0xa4);" (assignment_expression "iVar2 = *(int *)(local_44 + 0xa4)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(local_44 + 0xa4)" (* "*") (cast_expression "(int *)(local_44 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_44 + 0xa4)" (( "(") (binary_expression "local_44 + 0xa4" (identifier "local_44") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "*(uint *)(iVar2 + 4) = local_48;" (assignment_expression "*(uint *)(iVar2 + 4) = local_48" (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_48")) (; ";")) (expression_statement "*(uint *)(iVar2 + 8) = local_54;" (assignment_expression "*(uint *)(iVar2 + 8) = local_54" (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 "local_54")) (; ";")) (expression_statement "*(uint *)(iVar2 + 0xc) = local_50;" (assignment_expression "*(uint *)(iVar2 + 0xc) = local_50" (pointer_expression "*(uint *)(iVar2 + 0xc)" (* "*") (cast_expression "(uint *)(iVar2 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 0x2c) = param_3;" (assignment_expression "*(undefined4 *)(iVar2 + 0x2c) = param_3" (pointer_expression "*(undefined4 *)(iVar2 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2c)" (( "(") (binary_expression "iVar2 + 0x2c" (identifier "iVar2") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (if_statement "if (local_48 == 8) {\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }" (if "if") (parenthesized_expression "(local_48 == 8)" (( "(") (binary_expression "local_48 == 8" (identifier "local_48") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);\n      *pbVar10 = *pbVar10 | 2;\n    }" ({ "{") (expression_statement "pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);" (assignment_expression "pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4)" (identifier "pbVar10") (= "=") (cast_expression "(byte *)(*(int *)(local_44 + 0x80) + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_44 + 0x80) + 4)" (( "(") (binary_expression "*(int *)(local_44 + 0x80) + 4" (pointer_expression "*(int *)(local_44 + 0x80)" (* "*") (cast_expression "(int *)(local_44 + 0x80)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_44 + 0x80)" (( "(") (binary_expression "local_44 + 0x80" (identifier "local_44") (+ "+") (number_literal "0x80")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "*pbVar10 = *pbVar10 | 2;" (assignment_expression "*pbVar10 = *pbVar10 | 2" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (= "=") (binary_expression "*pbVar10 | 2" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "bfd_set_section_flags(DAT_00074f44,local_44,uVar8);" (call_expression "bfd_set_section_flags(DAT_00074f44,local_44,uVar8)" (identifier "bfd_set_section_flags") (argument_list "(DAT_00074f44,local_44,uVar8)" (( "(") (identifier "DAT_00074f44") (, ",") (identifier "local_44") (, ",") (identifier "uVar8") () ")"))) (; ";")) (if_statement "if ((uVar8 & 0x800000) != 0) {\n      *(int *)(local_44 + 0x90) = param_6;\n    }" (if "if") (parenthesized_expression "((uVar8 & 0x800000) != 0)" (( "(") (binary_expression "(uVar8 & 0x800000) != 0" (parenthesized_expression "(uVar8 & 0x800000)" (( "(") (binary_expression "uVar8 & 0x800000" (identifier "uVar8") (& "&") (number_literal "0x800000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(local_44 + 0x90) = param_6;\n    }" ({ "{") (expression_statement "*(int *)(local_44 + 0x90) = param_6;" (assignment_expression "*(int *)(local_44 + 0x90) = param_6" (pointer_expression "*(int *)(local_44 + 0x90)" (* "*") (cast_expression "(int *)(local_44 + 0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_44 + 0x90)" (( "(") (binary_expression "local_44 + 0x90" (identifier "local_44") (+ "+") (number_literal "0x90")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (} "}"))) (expression_statement "*(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7;" (assignment_expression "*(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7" (pointer_expression "*(int *)(*(int *)(local_44 + 0xa4) + 0x84)" (* "*") (cast_expression "(int *)(*(int *)(local_44 + 0xa4) + 0x84)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_44 + 0xa4) + 0x84)" (( "(") (binary_expression "*(int *)(local_44 + 0xa4) + 0x84" (pointer_expression "*(int *)(local_44 + 0xa4)" (* "*") (cast_expression "(int *)(local_44 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_44 + 0xa4)" (( "(") (binary_expression "local_44 + 0xa4" (identifier "local_44") (+ "+") (number_literal "0xa4")) () ")")))) (+ "+") (number_literal "0x84")) () ")")))) (= "=") (identifier "param_7")) (; ";")) (expression_statement "iVar2 = FUN_00038c10(param_1);" (assignment_expression "iVar2 = FUN_00038c10(param_1)" (identifier "iVar2") (= "=") (call_expression "FUN_00038c10(param_1)" (identifier "FUN_00038c10") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));\n      return;\n    }" ({ "{") (expression_statement "FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));" (call_expression "FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0))" (identifier "FUN_0003a110") (argument_list "(iVar2,*(undefined4 *)(local_44 + 0xb0))" (( "(") (identifier "iVar2") (, ",") (pointer_expression "*(undefined4 *)(local_44 + 0xb0)" (* "*") (cast_expression "(undefined4 *)(local_44 + 0xb0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_44 + 0xb0)" (( "(") (binary_expression "local_44 + 0xb0" (identifier "local_44") (+ "+") (number_literal "0xb0")) () ")")))) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar4 = FUN_00034e20(local_44);" (assignment_expression "uVar4 = FUN_00034e20(local_44)" (identifier "uVar4") (= "=") (call_expression "FUN_00034e20(local_44)" (identifier "FUN_00034e20") (argument_list "(local_44)" (( "(") (identifier "local_44") () ")")))) (; ";")) (expression_statement "FUN_00035600(uVar4);" (call_expression "FUN_00035600(uVar4)" (identifier "FUN_00035600") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n    if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n  }" (else "else") (compound_statement "{\n    if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n    if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }\n  }" ({ "{") (if_statement "if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }" (if "if") (parenthesized_expression "((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48))" (( "(") (binary_expression "(local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)" (parenthesized_expression "(local_48 == 0)" (( "(") (binary_expression "local_48 == 0" (identifier "local_48") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)" (( "(") (binary_expression "*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48" (pointer_expression "*(uint *)(*(int *)(iVar2 + 0xa4) + 4)" (* "*") (cast_expression "(uint *)(*(int *)(iVar2 + 0xa4) + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar2 + 0xa4) + 4)" (( "(") (binary_expression "*(int *)(iVar2 + 0xa4) + 4" (pointer_expression "*(int *)(iVar2 + 0xa4)" (* "*") (cast_expression "(int *)(iVar2 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xa4)" (( "(") (binary_expression "iVar2 + 0xa4" (identifier "iVar2") (+ "+") (number_literal "0xa4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (identifier "local_48")) () ")"))) () ")")) (compound_statement "{\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }" ({ "{") (if_statement "if (local_50 == 0 && local_54 == 0) {\n        return;\n      }" (if "if") (parenthesized_expression "(local_50 == 0 && local_54 == 0)" (( "(") (binary_expression "local_50 == 0 && local_54 == 0" (binary_expression "local_50 == 0" (identifier "local_50") (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_54 == 0" (identifier "local_54") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\n    }" (else "else") (compound_statement "{\n      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_0002a350(uVar4,param_1);\n      if (local_50 == 0 && local_54 == 0) {\n        return;\n      }\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_0002a350(uVar4,param_1);" (call_expression "FUN_0002a350(uVar4,param_1)" (identifier "FUN_0002a350") (argument_list "(uVar4,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_1") () ")"))) (; ";")) (if_statement "if (local_50 == 0 && local_54 == 0) {\n        return;\n      }" (if "if") (parenthesized_expression "(local_50 == 0 && local_54 == 0)" (( "(") (binary_expression "local_50 == 0 && local_54 == 0" (binary_expression "local_50 == 0" (identifier "local_50") (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_54 == 0" (identifier "local_54") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")))) (if_statement "if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }\n    else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }" (if "if") (parenthesized_expression "(((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0)" (( "(") (binary_expression "((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0" (parenthesized_expression "((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b)" (( "(") (binary_expression "(*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b" (parenthesized_expression "(*(uint *)(iVar2 + 0x14) ^ uVar8)" (( "(") (binary_expression "*(uint *)(iVar2 + 0x14) ^ uVar8" (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 "uVar8")) () ")")) (& "&") (number_literal "0x183841b")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = *(int *)(local_44 + 0xa4);\n      *(uint *)(iVar3 + 8) = local_54;\n      *(uint *)(iVar3 + 0xc) = local_50;\n    }" ({ "{") (expression_statement "iVar3 = *(int *)(local_44 + 0xa4);" (assignment_expression "iVar3 = *(int *)(local_44 + 0xa4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(local_44 + 0xa4)" (* "*") (cast_expression "(int *)(local_44 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_44 + 0xa4)" (( "(") (binary_expression "local_44 + 0xa4" (identifier "local_44") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (expression_statement "*(uint *)(iVar3 + 8) = local_54;" (assignment_expression "*(uint *)(iVar3 + 8) = local_54" (pointer_expression "*(uint *)(iVar3 + 8)" (* "*") (cast_expression "(uint *)(iVar3 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "local_54")) (; ";")) (expression_statement "*(uint *)(iVar3 + 0xc) = local_50;" (assignment_expression "*(uint *)(iVar3 + 0xc) = local_50" (pointer_expression "*(uint *)(iVar3 + 0xc)" (* "*") (cast_expression "(uint *)(iVar3 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0xc)" (( "(") (binary_expression "iVar3 + 0xc" (identifier "iVar3") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "local_50")) (; ";")) (} "}")) (else_clause "else {\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }" (else "else") (compound_statement "{\n      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);\n      FUN_0002a350(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_0002a350(uVar4,param_1);" (call_expression "FUN_0002a350(uVar4,param_1)" (identifier "FUN_0002a350") (argument_list "(uVar4,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}")))) (if_statement "if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(uVar4,param_1);\n    }" (if "if") (parenthesized_expression "(((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6))" (( "(") (binary_expression "((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)" (parenthesized_expression "((uVar8 & 0x800000) != 0)" (( "(") (binary_expression "(uVar8 & 0x800000) != 0" (parenthesized_expression "(uVar8 & 0x800000)" (( "(") (binary_expression "uVar8 & 0x800000" (identifier "uVar8") (& "&") (number_literal "0x800000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar2 + 0x90) != param_6)" (( "(") (binary_expression "*(int *)(iVar2 + 0x90) != param_6" (pointer_expression "*(int *)(iVar2 + 0x90)" (* "*") (cast_expression "(int *)(iVar2 + 0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x90)" (( "(") (binary_expression "iVar2 + 0x90" (identifier "iVar2") (+ "+") (number_literal "0x90")) () ")")))) (!= "!=") (identifier "param_6")) () ")"))) () ")")) (compound_statement "{\n      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);\n      FUN_0002a350(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_0002a350(uVar4,param_1);" (call_expression "FUN_0002a350(uVar4,param_1)" (identifier "FUN_0002a350") (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_15,type_1 info,type_2 var_7,int var_36,char *var_19,
               int var_28,int var_1)

{
  void *pvVar1;
  type_3 *psVar2;
  type_4 var_4;
  int var_8;
  char *pcVar5;
  type_3 *psVar6;
  type_5 *var_32;
  type_1 var_27;
  type_6 sVar9;
  type_1 var_12;
  type_1 var_26;
  type_7 *var_20;
  type_7 *var_21;
  bool var_22;
  bool var_24;
  bool var_25;
  type_7 bVar17;
  type_1 var_9;
  type_1 var_18;
  type_1 var_13;
  type_4 local_44;
  type_1 var_14;
  type_7 var_23;
  type_8 match;
  
  bVar17 = 0;
  var_13 = var_15;
  var_4 = now_seg;
  sVar9 = now_subseg;
  if (var_1 != 0) {
    psVar6 = (type_3 *)var_2(0x14);
    psVar2 = psVar6;
    psVar6->next = type_3;
    type_3 = psVar2;
    psVar6->prev_subseg = previous_subsection;
    var_4 = now_seg;
    psVar6->prev_seg = previous_section;
    psVar6->seg = var_4;
    sVar9 = now_subseg;
    psVar6->subseg = now_subseg;
  }
  match.var_19 = var_19;
  match.info = info;
  previous_subsection = sVar9;
  previous_section = var_4;
  var_4 = (type_4)var_3(stdoutput,name,get_section,&match);
  if (var_4 == (type_4)0x0) {
    local_44 = var_5(name,0);
  }
  else {
    var_6(var_4,0);
    local_44 = var_4;
  }
  var_18 = (type_1)(var_7 >> 0x20);
  var_9 = (type_1)var_7;
  var_8 = (**(type_9 **)((int)stdoutput->xvec->backend_data + 0x68))(stdoutput,local_44);
  if (var_8 == 0) {
LAB_00049408:
    var_9 = (type_1)var_7;
    if ((var_9 & 0x1000002) == 0x1000000) {
      pcVar5 = (char *)var_10(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);
                    /* WARNING: Subroutine does not return */
      var_11(pcVar5,name);
    }
    var_12 = var_9 >> 1 & 1;
    var_26 = var_9 >> 0x10 & 0x8000 |
             var_9 << 0x13 & 0x1000000 |
             var_9 & 0x400 | var_9 << 0x13 & 0x800000 | var_12 | (var_9 & 4) << 2;
    var_12 = var_13 != 8 & var_12;
LAB_0004947f:
    var_14 = var_9 & 1;
    var_27 = 4;
    if (var_14 == 0) goto LAB_00049640;
  }
  else {
    var_12 = *(type_1 *)(var_8 + 0xc);
    if ((var_15 == 0) || (var_15 == var_12)) {
LAB_00049400:
      var_13 = var_12;
      if (var_4 != (type_4)0x0) goto LAB_00049408;
    }
    else {
      if ((var_12 - 0xe < 3) || (var_4 != (type_4)0x0)) {
        pcVar5 = (char *)var_10(0,"ignoring incorrect section type for %s",5);
        var_16(pcVar5,name);
        var_12 = *(type_1 *)(var_8 + 0xc);
        goto LAB_00049400;
      }
      if ((var_12 == 7) || (0x6fffffff < var_15)) {
      }
      else {
        pcVar5 = (char *)var_10(0,"setting incorrect section type for %s",5);
        var_16(pcVar5,name);
      }
    }
    var_12 = ~*(type_1 *)(var_8 + 0x10) & var_9;
    if ((var_12 & 0xfffff) == 0) {
LAB_00049610:
      var_7 = var_17(*(type_1 *)(var_8 + 0x14) | var_18,*(type_1 *)(var_8 + 0x10) | var_9);
      goto LAB_00049408;
    }
    if (*(int *)(var_8 + 0xc) == 7) {
      if ((int)(var_7 - 2 >> 0x20) != 0 || (var_7 - 2 & 0xfffffffd) != 0) {
        if ((*(int *)(var_8 + 8) == -2) && (name[*(int *)(var_8 + 4)] == '.')) goto LAB_000495fd;
LAB_0004994d:
        if (var_19 == (char *)0x0) {
LAB_00049959:
          pcVar5 = (char *)var_10(0,"setting incorrect section attributes for %s",5);
          var_16(pcVar5,name);
        }
        goto LAB_00049408;
      }
      goto LAB_00049610;
    }
    if ((*(int *)(var_8 + 8) == -2) && (name[*(int *)(var_8 + 4)] == '.')) {
LAB_000495fd:
      if ((~*(type_1 *)(var_8 + 0x14) & var_18) == 0 && (var_12 & 0xffffffcf) == 0)
      goto LAB_00049610;
    }
    var_22 = false;
    var_25 = var_7 == 2;
    if (!var_25) {
      var_22 = false;
      var_25 = var_7 == 4;
      if (var_7 != 4) goto LAB_0004994d;
      var_8 = 0x10;
      var_20 = (type_7 *)name;
      var_21 = (type_7 *)".note.GNU-stack";
      do {
        if (var_8 == 0) break;
        var_8 = var_8 + -1;
        var_22 = *var_20 < *var_21;
        var_25 = *var_20 == *var_21;
        var_20 = var_20 + (type_1)bVar17 * -2 + 1;
        var_21 = var_21 + (type_1)bVar17 * -2 + 1;
      } while (var_25);
      if ((!var_22 && !var_25) == var_22) {
        var_26 = 0x10;
        var_27 = 0xc;
        var_12 = 0;
        goto LAB_00049495;
      }
LAB_000498a2:
      if (var_19 == (char *)0x0) goto LAB_00049959;
      var_12 = var_9 >> 1 & 1;
      var_26 = var_9 >> 0x10 & 0x8000 |
               var_9 & 0x400 | var_9 * 4 & 0x10 | var_12 | var_9 << 0x13 & 0x800000 |
               var_9 << 0x13 & 0x1000000;
      var_23 = (type_7)var_12;
      var_12 = (type_1)(var_13 != 8 & var_23);
      goto LAB_0004947f;
    }
    var_8 = 8;
    var_20 = (type_7 *)name;
    var_21 = (type_7 *)".interp";
    do {
      if (var_8 == 0) break;
      var_8 = var_8 + -1;
      var_22 = *var_20 < *var_21;
      var_25 = *var_20 == *var_21;
      var_20 = var_20 + (type_1)bVar17 * -2 + 1;
      var_21 = var_21 + (type_1)bVar17 * -2 + 1;
    } while (var_25);
    var_24 = false;
    var_22 = (!var_22 && !var_25) == var_22;
    if (!var_22) {
      var_8 = 8;
      var_20 = (type_7 *)name;
      var_21 = (type_7 *)".strtab";
      do {
        if (var_8 == 0) break;
        var_8 = var_8 + -1;
        var_24 = *var_20 < *var_21;
        var_22 = *var_20 == *var_21;
        var_20 = var_20 + (type_1)bVar17 * -2 + 1;
        var_21 = var_21 + (type_1)bVar17 * -2 + 1;
      } while (var_22);
      var_25 = false;
      var_22 = (!var_24 && !var_22) == var_24;
      if (!var_22) {
        var_8 = 8;
        var_20 = (type_7 *)name;
        var_21 = (type_7 *)".symtab";
        do {
          if (var_8 == 0) break;
          var_8 = var_8 + -1;
          var_25 = *var_20 < *var_21;
          var_22 = *var_20 == *var_21;
          var_20 = var_20 + (type_1)bVar17 * -2 + 1;
          var_21 = var_21 + (type_1)bVar17 * -2 + 1;
        } while (var_22);
        if ((!var_25 && !var_22) != var_25) goto LAB_000498a2;
      }
    }
    var_12 = (type_1)(var_13 != 8);
    var_26 = 1;
LAB_00049640:
    var_27 = 0xc;
  }
  var_12 = var_12 * 2;
LAB_00049495:
  var_12 = var_26 | var_27 | var_12;
  if (var_28 != 0) {
    var_12 = var_12 | 0x20000;
  }
  if (var_4 == (type_4)0x0) {
    if (var_13 == 0) {
      var_13 = var_29(var_12);
    }
    pvVar1 = local_44->used_by_bfd;
    *(type_1 *)((int)pvVar1 + 4) = var_13;
    *(type_2 *)((int)pvVar1 + 8) = var_7;
    *(type_1 *)((int)pvVar1 + 0x2c) = info;
    if (var_13 == 8) {
      var_20 = (type_7 *)((int)local_44->userdata + 4);
      *var_20 = *var_20 | 2;
    }
    var_30(stdoutput,local_44,var_12);
    if ((var_12 & 0x800000) != 0) {
      local_44->var_36 = var_36;
    }
    *(char **)((int)local_44->used_by_bfd + 0x84) = var_19;
    var_32 = var_31(name);
    if (var_32 != (type_5 *)0x0) {
      var_33(var_32,local_44->symbol);
      return;
    }
    var_32 = var_34(local_44);
    var_35(var_32);
  }
  else {
    if ((var_13 != 0) && (*(type_1 *)((int)var_4->used_by_bfd + 4) != var_13)) {
      pcVar5 = (char *)var_10(0,"ignoring changed section type for %s",5);
      var_16(pcVar5,name);
    }
    if (var_7 != 0) {
      if (((var_4->flags ^ var_12) & 0x183841b) == 0) {
        *(type_2 *)((int)local_44->used_by_bfd + 8) = var_7;
      }
      else {
        pcVar5 = (char *)var_10(0,"ignoring changed section attributes for %s",5);
        var_16(pcVar5,name);
      }
      if (((var_12 & 0x800000) != 0) && (var_4->var_36 != var_36)) {
        pcVar5 = (char *)var_10(0,"ignoring changed section entity size for %s",5);
        var_16(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: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) 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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (type_identifier) 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: (primitive_type) 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))) (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: (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: (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) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (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: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (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)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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)))) (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: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (identifier))))) right: (number_literal)) right: (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: (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: (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))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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: (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: (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))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (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))) right: (number_literal)) right: (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: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) 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 (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (compound_statement (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: (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: (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: (identifier) right: (number_literal))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (identifier)) right: (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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 (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_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: (binary_expression left: (binary_expression left: (identifier) right: (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: (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))) (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: (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: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (return_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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (return_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: (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)))) 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,uint param_5,
                 int param_6,int param_7,int param_8,int param_9)

{
  undefined4 *puVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  undefined4 *puVar5;
  uint uVar6;
  undefined4 uVar7;
  uint uVar8;
  uint uVar9;
  byte *pbVar10;
  byte *pbVar11;
  bool bVar12;
  bool bVar13;
  bool bVar14;
  byte bVar15;
  uint local_54;
  uint local_50;
  uint local_48;
  int local_44;
  uint local_3c;
  byte local_38;
  int local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  bVar15 = 0;
  uStack_14 = 0x492f9;
  local_48 = param_2;
  local_54 = param_4;
  local_50 = param_5;
  uVar4 = DAT_00074d7c;
  uVar7 = DAT_00074ea0;
  if (param_9 != 0) {
    puVar5 = (undefined4 *)xmalloc(0x14);
    puVar1 = puVar5;
    *puVar5 = DAT_00074c78;
    DAT_00074c78 = puVar1;
    puVar5[4] = DAT_00074c7c;
    uVar4 = DAT_00074d7c;
    puVar5[2] = DAT_00074c80;
    puVar5[1] = uVar4;
    uVar7 = DAT_00074ea0;
    puVar5[3] = DAT_00074ea0;
  }
  local_24 = param_7;
  local_20 = param_3;
  DAT_00074c7c = uVar7;
  DAT_00074c80 = uVar4;
  iVar2 = bfd_get_section_by_name_if(DAT_00074f44,param_1,FUN_00047130,&local_24);
  if (iVar2 == 0) {
    local_44 = FUN_00034da0(param_1,0);
  }
  else {
    FUN_00034dd0(iVar2,0);
    local_44 = iVar2;
  }
  iVar3 = (**(code **)(*(int *)(*(int *)(DAT_00074f44 + 4) + 0x1c0) + 0x68))(DAT_00074f44,local_44);
  if (iVar3 == 0) {
LAB_00049408:
    if ((local_54 & 0x1000002) == 0x1000000) {
      uVar4 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5,0x1000000);
                    /* WARNING: Subroutine does not return */
      FUN_0002a4d0(uVar4,param_1);
    }
    local_3c = local_54 & 1;
    uVar8 = local_54 >> 1 & 1;
    uVar9 = local_54 >> 0x10 & 0x8000 |
            local_54 << 0x13 & 0x1000000 |
            local_54 & 0x400 | local_54 << 0x13 & 0x800000 | uVar8 | (local_54 & 4) << 2;
    uVar8 = local_48 != 8 & uVar8;
LAB_0004947f:
    uVar6 = 4;
    if (local_3c == 0) goto LAB_00049640;
  }
  else {
    uVar8 = *(uint *)(iVar3 + 0xc);
    if ((param_2 == 0) || (param_2 == uVar8)) {
LAB_00049400:
      local_48 = uVar8;
      if (iVar2 != 0) goto LAB_00049408;
    }
    else {
      if ((uVar8 - 0xe < 3) || (iVar2 != 0)) {
        uVar4 = dcgettext(0,"ignoring incorrect section type for %s",5);
        FUN_0002a350(uVar4,param_1);
        uVar8 = *(uint *)(iVar3 + 0xc);
        goto LAB_00049400;
      }
      if ((uVar8 == 7) || (0x6fffffff < param_2)) {
      }
      else {
        uVar4 = dcgettext(0,"setting incorrect section type for %s",5);
        FUN_0002a350(uVar4,param_1);
      }
    }
    uVar8 = ~*(uint *)(iVar3 + 0x10) & param_4;
    if ((uVar8 & 0xfffff) == 0) {
LAB_00049610:
      local_54 = *(uint *)(iVar3 + 0x10) | param_4;
      local_50 = *(uint *)(iVar3 + 0x14) | param_5;
      goto LAB_00049408;
    }
    if (*(int *)(iVar3 + 0xc) == 7) {
      if ((param_5 - 1) + (uint)(1 < param_4) != 0 || (param_4 - 2 & 0xfffffffd) != 0) {
        if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e))
        goto LAB_000495fd;
LAB_0004994d:
        if (param_7 == 0) {
LAB_00049959:
          uVar4 = dcgettext(0,"setting incorrect section attributes for %s",5);
          FUN_0002a350(uVar4,param_1);
        }
        goto LAB_00049408;
      }
      goto LAB_00049610;
    }
    if ((*(int *)(iVar3 + 8) == -2) && (param_1[*(int *)(iVar3 + 4)] == 0x2e)) {
LAB_000495fd:
      if ((~*(uint *)(iVar3 + 0x14) & param_5) == 0 && (uVar8 & 0xffffffcf) == 0) goto LAB_00049610;
    }
    bVar12 = false;
    bVar14 = param_4 == 2 && param_5 == 0;
    if (param_4 != 2 || param_5 != 0) {
      bVar12 = false;
      bVar14 = param_5 == 0 && param_4 == 4;
      if (param_5 != 0 || param_4 != 4) goto LAB_0004994d;
      iVar3 = 0x10;
      pbVar10 = param_1;
      pbVar11 = (byte *)".note.GNU-stack";
      do {
        if (iVar3 == 0) break;
        iVar3 = iVar3 + -1;
        bVar12 = *pbVar10 < *pbVar11;
        bVar14 = *pbVar10 == *pbVar11;
        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;
        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;
      } while (bVar14);
      if ((!bVar12 && !bVar14) == bVar12) {
        uVar9 = 0x10;
        uVar6 = 0xc;
        uVar8 = 0;
        goto LAB_00049495;
      }
LAB_000498a2:
      if (param_7 == 0) goto LAB_00049959;
      local_3c = param_4 & 1;
      uVar8 = param_4 >> 1 & 1;
      uVar9 = param_4 >> 0x10 & 0x8000 |
              param_4 & 0x400 | param_4 * 4 & 0x10 | uVar8 | param_4 << 0x13 & 0x800000 |
              param_4 << 0x13 & 0x1000000;
      local_38 = (byte)uVar8;
      uVar8 = (uint)(local_48 != 8 & local_38);
      goto LAB_0004947f;
    }
    iVar3 = 8;
    pbVar10 = param_1;
    pbVar11 = (byte *)".interp";
    do {
      if (iVar3 == 0) break;
      iVar3 = iVar3 + -1;
      bVar12 = *pbVar10 < *pbVar11;
      bVar14 = *pbVar10 == *pbVar11;
      pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;
    } while (bVar14);
    bVar13 = false;
    bVar12 = (!bVar12 && !bVar14) == bVar12;
    if (!bVar12) {
      iVar3 = 8;
      pbVar10 = param_1;
      pbVar11 = (byte *)".strtab";
      do {
        if (iVar3 == 0) break;
        iVar3 = iVar3 + -1;
        bVar13 = *pbVar10 < *pbVar11;
        bVar12 = *pbVar10 == *pbVar11;
        pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;
        pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;
      } while (bVar12);
      bVar14 = false;
      bVar12 = (!bVar13 && !bVar12) == bVar13;
      if (!bVar12) {
        iVar3 = 8;
        pbVar10 = param_1;
        pbVar11 = (byte *)".symtab";
        do {
          if (iVar3 == 0) break;
          iVar3 = iVar3 + -1;
          bVar14 = *pbVar10 < *pbVar11;
          bVar12 = *pbVar10 == *pbVar11;
          pbVar10 = pbVar10 + (uint)bVar15 * -2 + 1;
          pbVar11 = pbVar11 + (uint)bVar15 * -2 + 1;
        } while (bVar12);
        if ((!bVar14 && !bVar12) != bVar14) goto LAB_000498a2;
      }
    }
    uVar8 = (uint)(local_48 != 8);
    uVar9 = 1;
LAB_00049640:
    uVar6 = 0xc;
  }
  uVar8 = uVar8 * 2;
LAB_00049495:
  uVar8 = uVar9 | uVar6 | uVar8;
  if (param_8 != 0) {
    uVar8 = uVar8 | 0x20000;
  }
  if (iVar2 == 0) {
    if (local_48 == 0) {
      local_48 = bfd_elf_get_default_section_type(uVar8);
    }
    iVar2 = *(int *)(local_44 + 0xa4);
    *(uint *)(iVar2 + 4) = local_48;
    *(uint *)(iVar2 + 8) = local_54;
    *(uint *)(iVar2 + 0xc) = local_50;
    *(undefined4 *)(iVar2 + 0x2c) = param_3;
    if (local_48 == 8) {
      pbVar10 = (byte *)(*(int *)(local_44 + 0x80) + 4);
      *pbVar10 = *pbVar10 | 2;
    }
    bfd_set_section_flags(DAT_00074f44,local_44,uVar8);
    if ((uVar8 & 0x800000) != 0) {
      *(int *)(local_44 + 0x90) = param_6;
    }
    *(int *)(*(int *)(local_44 + 0xa4) + 0x84) = param_7;
    iVar2 = FUN_00038c10(param_1);
    if (iVar2 != 0) {
      FUN_0003a110(iVar2,*(undefined4 *)(local_44 + 0xb0));
      return;
    }
    uVar4 = FUN_00034e20(local_44);
    FUN_00035600(uVar4);
  }
  else {
    if ((local_48 == 0) || (*(uint *)(*(int *)(iVar2 + 0xa4) + 4) == local_48)) {
      if (local_50 == 0 && local_54 == 0) {
        return;
      }
    }
    else {
      uVar4 = dcgettext(0,"ignoring changed section type for %s",5);
      FUN_0002a350(uVar4,param_1);
      if (local_50 == 0 && local_54 == 0) {
        return;
      }
    }
    if (((*(uint *)(iVar2 + 0x14) ^ uVar8) & 0x183841b) == 0) {
      iVar3 = *(int *)(local_44 + 0xa4);
      *(uint *)(iVar3 + 8) = local_54;
      *(uint *)(iVar3 + 0xc) = local_50;
    }
    else {
      uVar4 = dcgettext(0,"ignoring changed section attributes for %s",5);
      FUN_0002a350(uVar4,param_1);
    }
    if (((uVar8 & 0x800000) != 0) && (*(int *)(iVar2 + 0x90) != param_6)) {
      uVar4 = dcgettext(0,"ignoring changed section entity size for %s",5);
      FUN_0002a350(uVar4,param_1);
    }
  }
  return;
}

