
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;
  uint uVar3;
  uint uVar4;
  segT paVar5;
  long lVar6;
  char *pcVar7;
  ulong uVar8;
  section_stack *psVar9;
  segT sec;
  symbolS *psVar10;
  char cVar11;
  subsegT sVar12;
  uint uVar13;
  byte *pbVar14;
  byte *pbVar15;
  uint uVar16;
  bool bVar17;
  bool bVar18;
  bool bVar19;
  byte bVar20;
  section_match match;
  
  bVar20 = 0;
  paVar5 = now_seg;
  sVar12 = now_subseg;
  if (push != 0) {
    psVar9 = (section_stack *)xmalloc(0x20);
    paVar5 = now_seg;
    psVar2 = psVar9;
    psVar9->next = section_stack;
    section_stack = psVar2;
    psVar9->seg = paVar5;
    psVar9->prev_seg = previous_section;
    sVar12 = now_subseg;
    psVar9->prev_subseg = previous_subsection;
    psVar9->subseg = sVar12;
  }
  previous_subsection = sVar12;
  previous_section = paVar5;
  match.group_name = group_name;
  match.info = info;
  paVar5 = (segT)bfd_get_section_by_name_if(stdoutput,name,get_section,&match);
  if (paVar5 == (segT)0x0) {
    sec = subseg_force_new(name,0);
  }
  else {
    subseg_set(paVar5,0);
    sec = paVar5;
  }
  lVar6 = (**(code **)((long)stdoutput->xvec->backend_data + 0xa0))(stdoutput,sec);
  if (lVar6 == 0) {
LAB_001414e6:
    uVar3 = (uint)attr;
    if ((uVar3 & 0x1000002) == 0x1000000) {
      pcVar7 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);
                    /* WARNING: Subroutine does not return */
      as_fatal(pcVar7,name);
    }
    uVar13 = (uint)(attr >> 1) & 1;
    uVar4 = uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |
            uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000;
    uVar13 = uVar13 & type != 8;
LAB_00141553:
    uVar16 = 4;
    if ((uVar3 & 1) == 0) goto LAB_001416d0;
  }
  else {
    uVar13 = *(uint *)(lVar6 + 0x10);
    if ((type == 0) || (type == uVar13)) {
LAB_001414dd:
      type = uVar13;
      if (paVar5 != (segT)0x0) goto LAB_001414e6;
    }
    else {
      if ((uVar13 - 0xe < 3) || (paVar5 != (segT)0x0)) {
        pcVar7 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);
        as_warn(pcVar7,name);
        uVar13 = *(uint *)(lVar6 + 0x10);
        goto LAB_001414dd;
      }
      if ((uVar13 != 7) && (type < 0x70000000)) {
        pcVar7 = (char *)dcgettext(0,"setting incorrect section type for %s",5);
        as_warn(pcVar7,name);
      }
    }
    uVar8 = ~*(ulong *)(lVar6 + 0x18) & attr;
    if ((uVar8 & 0xfffff) == 0) {
LAB_001416b8:
      attr = attr | *(ulong *)(lVar6 + 0x18);
      goto LAB_001414e6;
    }
    if (*(int *)(lVar6 + 0x10) == 7) {
      if ((attr - 2 & 0xfffffffffffffffd) != 0) {
        if (*(int *)(lVar6 + 0xc) == -2) goto LAB_001416a3;
LAB_00141658:
        if (group_name == (char *)0x0) {
LAB_00141661:
          pcVar7 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);
          as_warn(pcVar7,name);
        }
        goto LAB_001414e6;
      }
      goto LAB_001416b8;
    }
    if (*(int *)(lVar6 + 0xc) == -2) {
LAB_001416a3:
      if ((name[*(uint *)(lVar6 + 8)] == '.') && ((uVar8 & 0xffffffffffffffcf) == 0))
      goto LAB_001416b8;
    }
    bVar17 = attr < 2;
    bVar19 = attr == 2;
    if (!bVar19) {
      bVar17 = attr < 4;
      bVar19 = attr == 4;
      if (!bVar19) goto LAB_00141658;
      lVar6 = 0x10;
      pbVar14 = (byte *)name;
      pbVar15 = (byte *)".note.GNU-stack";
      do {
        if (lVar6 == 0) break;
        lVar6 = lVar6 + -1;
        bVar17 = *pbVar14 < *pbVar15;
        bVar19 = *pbVar14 == *pbVar15;
        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;
      } while (bVar19);
      cVar11 = (!bVar17 && !bVar19) - bVar17;
      uVar13 = (uint)cVar11;
      if (cVar11 == '\0') {
        uVar4 = 0x10;
        uVar16 = 0xc;
        goto LAB_00141567;
      }
LAB_001418d2:
      if (group_name == (char *)0x0) goto LAB_00141661;
      uVar3 = (uint)attr;
      uVar13 = (uint)(attr >> 1) & 1;
      uVar4 = uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |
              uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000;
      uVar13 = type != 8 & uVar13;
      goto LAB_00141553;
    }
    lVar6 = 8;
    pbVar14 = (byte *)name;
    pbVar15 = (byte *)".interp";
    do {
      if (lVar6 == 0) break;
      lVar6 = lVar6 + -1;
      bVar17 = *pbVar14 < *pbVar15;
      bVar19 = *pbVar14 == *pbVar15;
      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
      pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;
    } while (bVar19);
    bVar18 = false;
    bVar17 = (!bVar17 && !bVar19) == bVar17;
    if (!bVar17) {
      lVar6 = 8;
      pbVar14 = (byte *)name;
      pbVar15 = (byte *)".strtab";
      do {
        if (lVar6 == 0) break;
        lVar6 = lVar6 + -1;
        bVar18 = *pbVar14 < *pbVar15;
        bVar17 = *pbVar14 == *pbVar15;
        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;
      } while (bVar17);
      bVar19 = false;
      bVar17 = (!bVar18 && !bVar17) == bVar18;
      if (!bVar17) {
        lVar6 = 8;
        pbVar14 = (byte *)name;
        pbVar15 = (byte *)".symtab";
        do {
          if (lVar6 == 0) break;
          lVar6 = lVar6 + -1;
          bVar19 = *pbVar14 < *pbVar15;
          bVar17 = *pbVar14 == *pbVar15;
          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;
          pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;
        } while (bVar17);
        if ((!bVar19 && !bVar17) != bVar19) goto LAB_001418d2;
      }
    }
    uVar4 = 1;
    uVar13 = (uint)(type != 8);
LAB_001416d0:
    uVar16 = 0xc;
  }
  uVar13 = uVar13 * 2;
LAB_00141567:
  uVar13 = uVar16 | uVar4 | uVar13;
  if (linkonce != 0) {
    uVar13 = uVar13 | 0x20000;
  }
  if (paVar5 == (segT)0x0) {
    if (type == 0) {
      type = bfd_elf_get_default_section_type(uVar13);
    }
    pvVar1 = sec->used_by_bfd;
    *(uint *)((long)pvVar1 + 4) = type;
    *(bfd_vma *)((long)pvVar1 + 8) = attr;
    *(uint *)((long)pvVar1 + 0x2c) = info;
    if (type == 8) {
      pbVar14 = (byte *)((long)sec->userdata + 8);
      *pbVar14 = *pbVar14 | 2;
    }
    bfd_set_section_flags(stdoutput,sec,uVar13);
    if ((uVar13 & 0x800000) != 0) {
      sec->entsize = entsize;
    }
    *(char **)((long)sec->used_by_bfd + 0xb0) = group_name;
    psVar10 = symbol_find(name);
    if (psVar10 != (symbolS *)0x0) {
      symbol_set_bfdsym(psVar10,sec->symbol);
      return;
    }
    psVar10 = section_symbol(sec);
    symbol_table_insert(psVar10);
  }
  else {
    if ((type != 0) && (*(uint *)((long)paVar5->used_by_bfd + 4) != type)) {
      pcVar7 = (char *)dcgettext(0,"ignoring changed section type for %s",5);
      as_warn(pcVar7,name);
    }
    if (attr != 0) {
      if (((paVar5->flags ^ uVar13) & 0x183841b) == 0) {
        *(bfd_vma *)((long)sec->used_by_bfd + 8) = attr;
      }
      else {
        pcVar7 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);
        as_warn(pcVar7,name);
      }
      if (((uVar13 & 0x800000) != 0) && (paVar5->entsize != entsize)) {
        pcVar7 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);
        as_warn(pcVar7,name);
      }
    }
  }
  return;
}



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

{
  undefined8 *puVar1;
  uint uVar2;
  uint uVar3;
  long lVar4;
  long lVar5;
  undefined8 uVar6;
  ulong uVar7;
  undefined8 *puVar8;
  long lVar9;
  char cVar10;
  undefined4 uVar11;
  uint uVar12;
  byte *pbVar13;
  byte *pbVar14;
  uint uVar15;
  bool bVar16;
  bool bVar17;
  bool bVar18;
  byte bVar19;
  long local_48;
  undefined4 local_40;
  
  bVar19 = 0;
  uVar6 = DAT_001b1ba8;
  uVar11 = DAT_001b1d44;
  if (param_8 != 0) {
    puVar8 = (undefined8 *)xmalloc(0x20);
    uVar6 = DAT_001b1ba8;
    puVar1 = puVar8;
    *puVar8 = DAT_001b1a00;
    DAT_001b1a00 = puVar1;
    puVar8[1] = uVar6;
    puVar8[2] = DAT_001b1a10;
    uVar11 = DAT_001b1d44;
    *(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08;
    *(undefined4 *)(puVar8 + 3) = uVar11;
  }
  DAT_001b1a08 = uVar11;
  DAT_001b1a10 = uVar6;
  local_48 = param_6;
  local_40 = param_3;
  lVar4 = bfd_get_section_by_name_if(DAT_001b1e50,param_1,FUN_0013f580,&local_48);
  if (lVar4 == 0) {
    lVar9 = FUN_0012b1e0(param_1,0);
  }
  else {
    FUN_0012b210(lVar4);
    lVar9 = lVar4;
  }
  lVar5 = (**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))(DAT_001b1e50,lVar9);
  if (lVar5 == 0) {
LAB_001414e6:
    uVar2 = (uint)param_4;
    if ((uVar2 & 0x1000002) == 0x1000000) {
      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);
                    /* WARNING: Subroutine does not return */
      FUN_00121900(uVar6,param_1);
    }
    uVar12 = (uint)(param_4 >> 1) & 1;
    uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |
            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;
    uVar12 = uVar12 & param_2 != 8;
LAB_00141553:
    uVar15 = 4;
    if ((uVar2 & 1) == 0) goto LAB_001416d0;
  }
  else {
    uVar12 = *(uint *)(lVar5 + 0x10);
    if ((param_2 == 0) || (param_2 == uVar12)) {
LAB_001414dd:
      param_2 = uVar12;
      if (lVar4 != 0) goto LAB_001414e6;
    }
    else {
      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {
        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);
        FUN_00121590(uVar6,param_1);
        uVar12 = *(uint *)(lVar5 + 0x10);
        goto LAB_001414dd;
      }
      if ((uVar12 != 7) && (param_2 < 0x70000000)) {
        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);
        FUN_00121590(uVar6,param_1);
      }
    }
    uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;
    if ((uVar7 & 0xfffff) == 0) {
LAB_001416b8:
      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);
      goto LAB_001414e6;
    }
    if (*(int *)(lVar5 + 0x10) == 7) {
      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {
        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;
LAB_00141658:
        if (param_6 == 0) {
LAB_00141661:
          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);
          FUN_00121590(uVar6,param_1);
        }
        goto LAB_001414e6;
      }
      goto LAB_001416b8;
    }
    if (*(int *)(lVar5 + 0xc) == -2) {
LAB_001416a3:
      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))
      goto LAB_001416b8;
    }
    bVar16 = param_4 < 2;
    bVar18 = param_4 == 2;
    if (!bVar18) {
      bVar16 = param_4 < 4;
      bVar18 = param_4 == 4;
      if (!bVar18) goto LAB_00141658;
      lVar5 = 0x10;
      pbVar13 = param_1;
      pbVar14 = (byte *)".note.GNU-stack";
      do {
        if (lVar5 == 0) break;
        lVar5 = lVar5 + -1;
        bVar16 = *pbVar13 < *pbVar14;
        bVar18 = *pbVar13 == *pbVar14;
        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;
        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;
      } while (bVar18);
      cVar10 = (!bVar16 && !bVar18) - bVar16;
      uVar12 = (uint)cVar10;
      if (cVar10 == '\0') {
        uVar3 = 0x10;
        uVar15 = 0xc;
        goto LAB_00141567;
      }
LAB_001418d2:
      if (param_6 == 0) goto LAB_00141661;
      uVar2 = (uint)param_4;
      uVar12 = (uint)(param_4 >> 1) & 1;
      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |
              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;
      uVar12 = param_2 != 8 & uVar12;
      goto LAB_00141553;
    }
    lVar5 = 8;
    pbVar13 = param_1;
    pbVar14 = (byte *)".interp";
    do {
      if (lVar5 == 0) break;
      lVar5 = lVar5 + -1;
      bVar16 = *pbVar13 < *pbVar14;
      bVar18 = *pbVar13 == *pbVar14;
      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;
      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;
    } while (bVar18);
    bVar17 = false;
    bVar16 = (!bVar16 && !bVar18) == bVar16;
    if (!bVar16) {
      lVar5 = 8;
      pbVar13 = param_1;
      pbVar14 = (byte *)".strtab";
      do {
        if (lVar5 == 0) break;
        lVar5 = lVar5 + -1;
        bVar17 = *pbVar13 < *pbVar14;
        bVar16 = *pbVar13 == *pbVar14;
        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;
        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;
      } while (bVar16);
      bVar18 = false;
      bVar16 = (!bVar17 && !bVar16) == bVar17;
      if (!bVar16) {
        lVar5 = 8;
        pbVar13 = param_1;
        pbVar14 = (byte *)".symtab";
        do {
          if (lVar5 == 0) break;
          lVar5 = lVar5 + -1;
          bVar18 = *pbVar13 < *pbVar14;
          bVar16 = *pbVar13 == *pbVar14;
          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;
          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;
        } while (bVar16);
        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;
      }
    }
    uVar3 = 1;
    uVar12 = (uint)(param_2 != 8);
LAB_001416d0:
    uVar15 = 0xc;
  }
  uVar12 = uVar12 * 2;
LAB_00141567:
  uVar12 = uVar15 | uVar3 | uVar12;
  if (param_7 != 0) {
    uVar12 = uVar12 | 0x20000;
  }
  if (lVar4 == 0) {
    if (param_2 == 0) {
      param_2 = bfd_elf_get_default_section_type(uVar12);
    }
    lVar4 = *(long *)(lVar9 + 0xe0);
    *(uint *)(lVar4 + 4) = param_2;
    *(ulong *)(lVar4 + 8) = param_4;
    *(undefined4 *)(lVar4 + 0x2c) = param_3;
    if (param_2 == 8) {
      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);
      *pbVar13 = *pbVar13 | 2;
    }
    bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12);
    if ((uVar12 & 0x800000) != 0) {
      *(int *)(lVar9 + 0xc4) = param_5;
    }
    *(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6;
    lVar4 = FUN_0012e990(param_1);
    if (lVar4 != 0) {
      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));
      return;
    }
    uVar6 = FUN_0012b250(lVar9);
    FUN_0012ba70(uVar6);
  }
  else {
    if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {
      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);
      FUN_00121590(uVar6,param_1);
    }
    if (param_4 != 0) {
      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {
        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;
      }
      else {
        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);
        FUN_00121590(uVar6,param_1);
      }
      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {
        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);
        FUN_00121590(uVar6,param_1);
      }
    }
  }
  return;
}


PUSH R15
MOV R15D,ESI
PUSH R14
PUSH R13
MOV R13,RCX
PUSH R12
MOV R12,R9
PUSH RBP
MOV RBP,RDI
PUSH RBX
SUB RSP,0x28
MOV ECX,dword ptr [RSP + 0x68]
MOV dword ptr [RSP],EDX
MOV dword ptr [RSP + 0x4],R8D
TEST ECX,ECX
JNZ 0x001416e0
MOV RCX,qword ptr [0x001b1ba8]
MOV EDX,dword ptr [0x001b1d44]
MOV EAX,dword ptr [RSP]
MOV RDI,qword ptr [0x001b1e50]
MOV qword ptr [0x001b1a10],RCX
MOV RSI,RBP
MOV dword ptr [0x001b1a08],EDX
LEA RCX,[RSP + 0x10]
LEA RDX,[0x13f580]
MOV qword ptr [RSP + 0x10],R12
MOV dword ptr [RSP + 0x18],EAX
CALL 0x0010c040
XOR ESI,ESI
MOV R14,RAX
TEST RAX,RAX
JZ 0x00141730
MOV RDI,RAX
MOV RBX,R14
CALL 0x0012b210
MOV RDI,qword ptr [0x001b1e50]
MOV RSI,RBX
MOV RAX,qword ptr [RDI + 0x8]
MOV RAX,qword ptr [RAX + 0x368]
CALL qword ptr [RAX + 0xa0]
MOV RCX,RAX
TEST RAX,RAX
JZ 0x00141740
MOV R9D,dword ptr [RAX + 0x10]
TEST R15D,R15D
JZ 0x001414dd
CMP R15D,R9D
JZ 0x001414dd
LEA EAX,[R9 + -0xe]
CMP EAX,0x2
JBE 0x001414af
TEST R14,R14
JZ 0x00141608
MOV EDX,0x5
LEA RSI,[0x150060]
XOR EDI,EDI
MOV qword ptr [RSP + 0x8],RCX
CALL 0x0010c1f0
MOV RSI,RBP
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00121590
MOV RCX,qword ptr [RSP + 0x8]
MOV R9D,dword ptr [RCX + 0x10]
TEST R14,R14
JZ 0x00141620
MOV RAX,R13
AND EAX,0x1000002
CMP RAX,0x1000000
JZ 0x001419a4
MOV RDX,R13
MOV ESI,R13D
MOV EDI,R13D
MOV RCX,R13
SHR RDX,0x1
SHL ESI,0x13
AND EDI,0x400
AND ECX,0x1
LEA EAX,[R13*0x4]
AND EDX,0x1
AND EAX,0x10
OR EAX,EDX
OR EAX,EDI
MOV EDI,ESI
AND ESI,0x1000000
AND EDI,0x800000
OR EAX,EDI
OR EAX,ESI
MOV RSI,R13
SHR RSI,0x10
AND ESI,0x8000
OR EAX,ESI
CMP R9D,0x8
SETNZ R15B
AND EDX,R15D
MOV R15D,0x4
TEST RCX,RCX
JZ 0x001416d0
AND EDX,0x1
ADD EDX,EDX
OR R15D,EAX
OR R15D,EDX
MOV EDX,dword ptr [RSP + 0x60]
MOV EAX,R15D
OR EAX,0x20000
TEST EDX,EDX
CMOVNZ R15D,EAX
TEST R14,R14
JZ 0x00141750
TEST R9D,R9D
JZ 0x0014159e
MOV RAX,qword ptr [R14 + 0xe0]
CMP dword ptr [RAX + 0x4],R9D
JNZ 0x001417d0
TEST R13,R13
JZ 0x001415f6
MOV EAX,dword ptr [R14 + 0x20]
XOR EAX,R15D
TEST EAX,0x183841b
JNZ 0x00141820
MOV RAX,qword ptr [RBX + 0xe0]
MOV qword ptr [RAX + 0x8],R13
AND R15D,0x800000
JZ 0x001415f6
MOV EAX,dword ptr [RSP + 0x4]
CMP dword ptr [R14 + 0xc4],EAX
JZ 0x001415f6
LEA RSI,[0x150140]
XOR EDI,EDI
MOV EDX,0x5
CALL 0x0010c1f0
MOV RSI,RBP
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00121590
ADD RSP,0x28
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
CMP R9D,0x7
JZ 0x0014161b
CMP R15D,0x6fffffff
JBE 0x00141972
MOV R9D,R15D
NOP
MOV RDX,qword ptr [RCX + 0x18]
MOV RAX,RDX
NOT RAX
AND RAX,R13
TEST EAX,0xfffff
JZ 0x001416b8
CMP dword ptr [RCX + 0x10],0x7
JZ 0x00141690
CMP dword ptr [RCX + 0xc],-0x2
JZ 0x001416a3
CMP R13,0x2
JZ 0x00141878
CMP R13,0x4
JZ 0x00141940
TEST R12,R12
JNZ 0x001414e6
MOV EDX,0x5
LEA RSI,[0x150088]
XOR EDI,EDI
MOV dword ptr [RSP + 0x8],R9D
CALL 0x0010c1f0
MOV RSI,RBP
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00121590
MOV R9D,dword ptr [RSP + 0x8]
JMP 0x001414e6
LEA RSI,[R13 + -0x2]
TEST RSI,-0x3
JZ 0x001416b8
CMP dword ptr [RCX + 0xc],-0x2
JNZ 0x00141658
MOV ECX,dword ptr [RCX + 0x8]
CMP byte ptr [RBP + RCX*0x1],0x2e
JNZ 0x00141644
TEST RAX,-0x31
JNZ 0x00141644
NOP dword ptr [RAX]
OR R13,RDX
JMP 0x001414e6
CMP R9D,0x8
MOV EAX,0x1
SETNZ DL
NOP dword ptr [RAX]
MOV R15D,0xc
JMP 0x00141562
MOV EDI,0x20
CALL 0x0010c878
MOV RDX,qword ptr [0x001b1a00]
MOV RCX,qword ptr [0x001b1ba8]
MOV ESI,dword ptr [0x001b1a08]
MOV qword ptr [0x001b1a00],RAX
MOV qword ptr [RAX],RDX
MOV RDX,qword ptr [0x001b1a10]
MOV qword ptr [RAX + 0x8],RCX
MOV qword ptr [RAX + 0x10],RDX
MOV EDX,dword ptr [0x001b1d44]
MOV dword ptr [RAX + 0x1c],ESI
MOV dword ptr [RAX + 0x18],EDX
JMP 0x0014141b
MOV RDI,RBP
CALL 0x0012b1e0
MOV RBX,RAX
JMP 0x00141468
MOV R9D,R15D
JMP 0x001414e6
TEST R9D,R9D
JZ 0x00141848
MOV RAX,qword ptr [RBX + 0xe0]
MOV ECX,dword ptr [RSP]
MOV dword ptr [RAX + 0x4],R9D
MOV qword ptr [RAX + 0x8],R13
MOV dword ptr [RAX + 0x2c],ECX
CMP R9D,0x8
JZ 0x00141810
MOV RDI,qword ptr [0x001b1e50]
MOV EDX,R15D
MOV RSI,RBX
CALL 0x0010c7e0
AND R15D,0x800000
JNZ 0x00141800
MOV RAX,qword ptr [RBX + 0xe0]
MOV RDI,RBP
MOV qword ptr [RAX + 0xb0],R12
CALL 0x0012e990
TEST RAX,RAX
JZ 0x00141860
MOV RSI,qword ptr [RBX + 0xf8]
MOV RDI,RAX
CALL 0x0012fb90
ADD RSP,0x28
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
XOR EDI,EDI
LEA RSI,[0x1500e8]
MOV EDX,0x5
CALL 0x0010c1f0
MOV RSI,RBP
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00121590
TEST R13,R13
JZ 0x001415f6
JMP 0x001415a3
MOV EAX,dword ptr [RSP + 0x4]
MOV dword ptr [RBX + 0xc4],EAX
JMP 0x00141793
MOV RAX,qword ptr [RBX + 0xa8]
OR byte ptr [RAX + 0x8],0x2
JMP 0x00141778
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x150110]
CALL 0x0010c1f0
MOV RSI,RBP
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00121590
JMP 0x001415c0
MOV EDI,R15D
CALL 0x0010c480
MOV R9D,EAX
JMP 0x00141759
MOV RDI,RBX
CALL 0x0012b250
MOV RDI,RAX
CALL 0x0012ba70
JMP 0x001415f6
MOV ECX,0x8
LEA RDI,[0x14fb4c]
MOV RSI,RBP
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001416c0
MOV ECX,0x8
LEA RDI,[0x14fb54]
MOV RSI,RBP
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001416c0
MOV ECX,0x8
LEA RDI,[0x14fb5c]
MOV RSI,RBP
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x001416c0
TEST R12,R12
JZ 0x00141661
MOV RDX,R13
LEA EAX,[R13*0x4]
MOV ESI,R13D
MOV RCX,R13
SHR RDX,0x1
AND EAX,0x10
SHL ESI,0x13
AND ECX,0x1
MOV R15D,EDX
MOV EDX,R13D
AND R15D,0x1
AND EDX,0x400
OR EAX,R15D
OR EAX,EDX
MOV EDX,ESI
AND ESI,0x1000000
AND EDX,0x800000
OR EAX,EDX
MOV RDX,R13
SHR RDX,0x10
OR EAX,ESI
AND EDX,0x8000
OR EAX,EDX
CMP R9D,0x8
SETNZ DL
AND EDX,R15D
JMP 0x00141553
MOV ECX,0x10
LEA RDI,[0x1453e7]
MOV RSI,RBP
CMPSB.REPE RDI,RSI
SETA DL
SBB DL,0x0
MOVSX EDX,DL
TEST EDX,EDX
JNZ 0x001418d2
MOV EAX,0x10
MOV R15D,0xc
JMP 0x00141567
MOV EDX,0x5
LEA RSI,[0x150038]
XOR EDI,EDI
MOV qword ptr [RSP + 0x8],RCX
CALL 0x0010c1f0
MOV RSI,RBP
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00121590
MOV R9D,R15D
MOV RCX,qword ptr [RSP + 0x8]
JMP 0x00141620
LEA RSI,[0x1500b8]
XOR EDI,EDI
MOV EDX,0x5
CALL 0x0010c1f0
MOV RSI,RBP
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00121900
(translation_unit "void FUN_001413e0(byte *param_1,uint param_2,undefined4 param_3,ulong param_4,int param_5,\n                 long param_6,int param_7,int param_8)\n\n{\n  undefined8 *puVar1;\n  uint uVar2;\n  uint uVar3;\n  long lVar4;\n  long lVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined8 *puVar8;\n  long lVar9;\n  char cVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint uVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  long local_48;\n  undefined4 local_40;\n  \n  bVar19 = 0;\n  uVar6 = DAT_001b1ba8;\n  uVar11 = DAT_001b1d44;\n  if (param_8 != 0) {\n    puVar8 = (undefined8 *)xmalloc(0x20);\n    uVar6 = DAT_001b1ba8;\n    puVar1 = puVar8;\n    *puVar8 = DAT_001b1a00;\n    DAT_001b1a00 = puVar1;\n    puVar8[1] = uVar6;\n    puVar8[2] = DAT_001b1a10;\n    uVar11 = DAT_001b1d44;\n    *(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08;\n    *(undefined4 *)(puVar8 + 3) = uVar11;\n  }\n  DAT_001b1a08 = uVar11;\n  DAT_001b1a10 = uVar6;\n  local_48 = param_6;\n  local_40 = param_3;\n  lVar4 = bfd_get_section_by_name_if(DAT_001b1e50,param_1,FUN_0013f580,&local_48);\n  if (lVar4 == 0) {\n    lVar9 = FUN_0012b1e0(param_1,0);\n  }\n  else {\n    FUN_0012b210(lVar4);\n    lVar9 = lVar4;\n  }\n  lVar5 = (**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))(DAT_001b1e50,lVar9);\n  if (lVar5 == 0) {\nLAB_001414e6:\n    uVar2 = (uint)param_4;\n    if ((uVar2 & 0x1000002) == 0x1000000) {\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_00121900(uVar6,param_1);\n    }\n    uVar12 = (uint)(param_4 >> 1) & 1;\n    uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n    uVar12 = uVar12 & param_2 != 8;\nLAB_00141553:\n    uVar15 = 4;\n    if ((uVar2 & 1) == 0) goto LAB_001416d0;\n  }\n  else {\n    uVar12 = *(uint *)(lVar5 + 0x10);\n    if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n    uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar16 = param_4 < 2;\n    bVar18 = param_4 == 2;\n    if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }\n    lVar5 = 8;\n    pbVar13 = param_1;\n    pbVar14 = (byte *)".interp";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }\n    uVar3 = 1;\n    uVar12 = (uint)(param_2 != 8);\nLAB_001416d0:\n    uVar15 = 0xc;\n  }\n  uVar12 = uVar12 * 2;\nLAB_00141567:\n  uVar12 = uVar15 | uVar3 | uVar12;\n  if (param_7 != 0) {\n    uVar12 = uVar12 | 0x20000;\n  }\n  if (lVar4 == 0) {\n    if (param_2 == 0) {\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }\n    lVar4 = *(long *)(lVar9 + 0xe0);\n    *(uint *)(lVar4 + 4) = param_2;\n    *(ulong *)(lVar4 + 8) = param_4;\n    *(undefined4 *)(lVar4 + 0x2c) = param_3;\n    if (param_2 == 8) {\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }\n    bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12);\n    if ((uVar12 & 0x800000) != 0) {\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }\n    *(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6;\n    lVar4 = FUN_0012e990(param_1);\n    if (lVar4 != 0) {\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }\n    uVar6 = FUN_0012b250(lVar9);\n    FUN_0012ba70(uVar6);\n  }\n  else {\n    if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_001413e0(byte *param_1,uint param_2,undefined4 param_3,ulong param_4,int param_5,\n                 long param_6,int param_7,int param_8)\n\n{\n  undefined8 *puVar1;\n  uint uVar2;\n  uint uVar3;\n  long lVar4;\n  long lVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined8 *puVar8;\n  long lVar9;\n  char cVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint uVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  long local_48;\n  undefined4 local_40;\n  \n  bVar19 = 0;\n  uVar6 = DAT_001b1ba8;\n  uVar11 = DAT_001b1d44;\n  if (param_8 != 0) {\n    puVar8 = (undefined8 *)xmalloc(0x20);\n    uVar6 = DAT_001b1ba8;\n    puVar1 = puVar8;\n    *puVar8 = DAT_001b1a00;\n    DAT_001b1a00 = puVar1;\n    puVar8[1] = uVar6;\n    puVar8[2] = DAT_001b1a10;\n    uVar11 = DAT_001b1d44;\n    *(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08;\n    *(undefined4 *)(puVar8 + 3) = uVar11;\n  }\n  DAT_001b1a08 = uVar11;\n  DAT_001b1a10 = uVar6;\n  local_48 = param_6;\n  local_40 = param_3;\n  lVar4 = bfd_get_section_by_name_if(DAT_001b1e50,param_1,FUN_0013f580,&local_48);\n  if (lVar4 == 0) {\n    lVar9 = FUN_0012b1e0(param_1,0);\n  }\n  else {\n    FUN_0012b210(lVar4);\n    lVar9 = lVar4;\n  }\n  lVar5 = (**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))(DAT_001b1e50,lVar9);\n  if (lVar5 == 0) {\nLAB_001414e6:\n    uVar2 = (uint)param_4;\n    if ((uVar2 & 0x1000002) == 0x1000000) {\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_00121900(uVar6,param_1);\n    }\n    uVar12 = (uint)(param_4 >> 1) & 1;\n    uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n    uVar12 = uVar12 & param_2 != 8;\nLAB_00141553:\n    uVar15 = 4;\n    if ((uVar2 & 1) == 0) goto LAB_001416d0;\n  }\n  else {\n    uVar12 = *(uint *)(lVar5 + 0x10);\n    if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n    uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar16 = param_4 < 2;\n    bVar18 = param_4 == 2;\n    if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }\n    lVar5 = 8;\n    pbVar13 = param_1;\n    pbVar14 = (byte *)".interp";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }\n    uVar3 = 1;\n    uVar12 = (uint)(param_2 != 8);\nLAB_001416d0:\n    uVar15 = 0xc;\n  }\n  uVar12 = uVar12 * 2;\nLAB_00141567:\n  uVar12 = uVar15 | uVar3 | uVar12;\n  if (param_7 != 0) {\n    uVar12 = uVar12 | 0x20000;\n  }\n  if (lVar4 == 0) {\n    if (param_2 == 0) {\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }\n    lVar4 = *(long *)(lVar9 + 0xe0);\n    *(uint *)(lVar4 + 4) = param_2;\n    *(ulong *)(lVar4 + 8) = param_4;\n    *(undefined4 *)(lVar4 + 0x2c) = param_3;\n    if (param_2 == 8) {\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }\n    bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12);\n    if ((uVar12 & 0x800000) != 0) {\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }\n    *(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6;\n    lVar4 = FUN_0012e990(param_1);\n    if (lVar4 != 0) {\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }\n    uVar6 = FUN_0012b250(lVar9);\n    FUN_0012ba70(uVar6);\n  }\n  else {\n    if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001413e0(byte *param_1,uint param_2,undefined4 param_3,ulong param_4,int param_5,\n                 long param_6,int param_7,int param_8)" identifier (parameter_list "(byte *param_1,uint param_2,undefined4 param_3,ulong param_4,int param_5,\n                 long param_6,int param_7,int param_8)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "ulong param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "int param_8" primitive_type identifier) ))) (compound_statement "{\n  undefined8 *puVar1;\n  uint uVar2;\n  uint uVar3;\n  long lVar4;\n  long lVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined8 *puVar8;\n  long lVar9;\n  char cVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint uVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  long local_48;\n  undefined4 local_40;\n  \n  bVar19 = 0;\n  uVar6 = DAT_001b1ba8;\n  uVar11 = DAT_001b1d44;\n  if (param_8 != 0) {\n    puVar8 = (undefined8 *)xmalloc(0x20);\n    uVar6 = DAT_001b1ba8;\n    puVar1 = puVar8;\n    *puVar8 = DAT_001b1a00;\n    DAT_001b1a00 = puVar1;\n    puVar8[1] = uVar6;\n    puVar8[2] = DAT_001b1a10;\n    uVar11 = DAT_001b1d44;\n    *(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08;\n    *(undefined4 *)(puVar8 + 3) = uVar11;\n  }\n  DAT_001b1a08 = uVar11;\n  DAT_001b1a10 = uVar6;\n  local_48 = param_6;\n  local_40 = param_3;\n  lVar4 = bfd_get_section_by_name_if(DAT_001b1e50,param_1,FUN_0013f580,&local_48);\n  if (lVar4 == 0) {\n    lVar9 = FUN_0012b1e0(param_1,0);\n  }\n  else {\n    FUN_0012b210(lVar4);\n    lVar9 = lVar4;\n  }\n  lVar5 = (**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))(DAT_001b1e50,lVar9);\n  if (lVar5 == 0) {\nLAB_001414e6:\n    uVar2 = (uint)param_4;\n    if ((uVar2 & 0x1000002) == 0x1000000) {\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_00121900(uVar6,param_1);\n    }\n    uVar12 = (uint)(param_4 >> 1) & 1;\n    uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n    uVar12 = uVar12 & param_2 != 8;\nLAB_00141553:\n    uVar15 = 4;\n    if ((uVar2 & 1) == 0) goto LAB_001416d0;\n  }\n  else {\n    uVar12 = *(uint *)(lVar5 + 0x10);\n    if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n    uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar16 = param_4 < 2;\n    bVar18 = param_4 == 2;\n    if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }\n    lVar5 = 8;\n    pbVar13 = param_1;\n    pbVar14 = (byte *)".interp";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }\n    uVar3 = 1;\n    uVar12 = (uint)(param_2 != 8);\nLAB_001416d0:\n    uVar15 = 0xc;\n  }\n  uVar12 = uVar12 * 2;\nLAB_00141567:\n  uVar12 = uVar15 | uVar3 | uVar12;\n  if (param_7 != 0) {\n    uVar12 = uVar12 | 0x20000;\n  }\n  if (lVar4 == 0) {\n    if (param_2 == 0) {\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }\n    lVar4 = *(long *)(lVar9 + 0xe0);\n    *(uint *)(lVar4 + 4) = param_2;\n    *(ulong *)(lVar4 + 8) = param_4;\n    *(undefined4 *)(lVar4 + 0x2c) = param_3;\n    if (param_2 == 8) {\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }\n    bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12);\n    if ((uVar12 & 0x800000) != 0) {\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }\n    *(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6;\n    lVar4 = FUN_0012e990(param_1);\n    if (lVar4 != 0) {\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }\n    uVar6 = FUN_0012b250(lVar9);\n    FUN_0012ba70(uVar6);\n  }\n  else {\n    if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n  }\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "undefined8 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "long local_48;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = DAT_001b1ba8;" (assignment_expression "uVar6 = DAT_001b1ba8" identifier = identifier) ;) (expression_statement "uVar11 = DAT_001b1d44;" (assignment_expression "uVar11 = DAT_001b1d44" identifier = identifier) ;) (if_statement "if (param_8 != 0) {\n    puVar8 = (undefined8 *)xmalloc(0x20);\n    uVar6 = DAT_001b1ba8;\n    puVar1 = puVar8;\n    *puVar8 = DAT_001b1a00;\n    DAT_001b1a00 = puVar1;\n    puVar8[1] = uVar6;\n    puVar8[2] = DAT_001b1a10;\n    uVar11 = DAT_001b1d44;\n    *(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08;\n    *(undefined4 *)(puVar8 + 3) = uVar11;\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar8 = (undefined8 *)xmalloc(0x20);\n    uVar6 = DAT_001b1ba8;\n    puVar1 = puVar8;\n    *puVar8 = DAT_001b1a00;\n    DAT_001b1a00 = puVar1;\n    puVar8[1] = uVar6;\n    puVar8[2] = DAT_001b1a10;\n    uVar11 = DAT_001b1d44;\n    *(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08;\n    *(undefined4 *)(puVar8 + 3) = uVar11;\n  }" { (expression_statement "puVar8 = (undefined8 *)xmalloc(0x20);" (assignment_expression "puVar8 = (undefined8 *)xmalloc(0x20)" identifier = (cast_expression "(undefined8 *)xmalloc(0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "uVar6 = DAT_001b1ba8;" (assignment_expression "uVar6 = DAT_001b1ba8" identifier = identifier) ;) (expression_statement "puVar1 = puVar8;" (assignment_expression "puVar1 = puVar8" identifier = identifier) ;) (expression_statement "*puVar8 = DAT_001b1a00;" (assignment_expression "*puVar8 = DAT_001b1a00" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "DAT_001b1a00 = puVar1;" (assignment_expression "DAT_001b1a00 = puVar1" identifier = identifier) ;) (expression_statement "puVar8[1] = uVar6;" (assignment_expression "puVar8[1] = uVar6" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[2] = DAT_001b1a10;" (assignment_expression "puVar8[2] = DAT_001b1a10" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar11 = DAT_001b1d44;" (assignment_expression "uVar11 = DAT_001b1d44" identifier = identifier) ;) (expression_statement "*(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08;" (assignment_expression "*(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08" (pointer_expression "*(undefined4 *)((long)puVar8 + 0x1c)" * (cast_expression "(undefined4 *)((long)puVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 0x1c)" ( (binary_expression "(long)puVar8 + 0x1c" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar8 + 3) = uVar11;" (assignment_expression "*(undefined4 *)(puVar8 + 3) = uVar11" (pointer_expression "*(undefined4 *)(puVar8 + 3)" * (cast_expression "(undefined4 *)(puVar8 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 3)" ( (binary_expression "puVar8 + 3" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "DAT_001b1a08 = uVar11;" (assignment_expression "DAT_001b1a08 = uVar11" identifier = identifier) ;) (expression_statement "DAT_001b1a10 = uVar6;" (assignment_expression "DAT_001b1a10 = uVar6" identifier = identifier) ;) (expression_statement "local_48 = param_6;" (assignment_expression "local_48 = param_6" identifier = identifier) ;) (expression_statement "local_40 = param_3;" (assignment_expression "local_40 = param_3" identifier = identifier) ;) (expression_statement "lVar4 = bfd_get_section_by_name_if(DAT_001b1e50,param_1,FUN_0013f580,&local_48);" (assignment_expression "lVar4 = bfd_get_section_by_name_if(DAT_001b1e50,param_1,FUN_0013f580,&local_48)" identifier = (call_expression "bfd_get_section_by_name_if(DAT_001b1e50,param_1,FUN_0013f580,&local_48)" identifier (argument_list "(DAT_001b1e50,param_1,FUN_0013f580,&local_48)" ( identifier , identifier , identifier , (pointer_expression "&local_48" & identifier) )))) ;) (if_statement "if (lVar4 == 0) {\n    lVar9 = FUN_0012b1e0(param_1,0);\n  }\n  else {\n    FUN_0012b210(lVar4);\n    lVar9 = lVar4;\n  }" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    lVar9 = FUN_0012b1e0(param_1,0);\n  }" { (expression_statement "lVar9 = FUN_0012b1e0(param_1,0);" (assignment_expression "lVar9 = FUN_0012b1e0(param_1,0)" identifier = (call_expression "FUN_0012b1e0(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n    FUN_0012b210(lVar4);\n    lVar9 = lVar4;\n  }" else (compound_statement "{\n    FUN_0012b210(lVar4);\n    lVar9 = lVar4;\n  }" { (expression_statement "FUN_0012b210(lVar4);" (call_expression "FUN_0012b210(lVar4)" identifier (argument_list "(lVar4)" ( identifier ))) ;) (expression_statement "lVar9 = lVar4;" (assignment_expression "lVar9 = lVar4" identifier = identifier) ;) }))) (expression_statement "lVar5 = (**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))(DAT_001b1e50,lVar9);" (assignment_expression "lVar5 = (**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))(DAT_001b1e50,lVar9)" identifier = (call_expression "(**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))(DAT_001b1e50,lVar9)" (parenthesized_expression "(**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))" ( (pointer_expression "**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0)" * (pointer_expression "*(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0)" * (cast_expression "(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0)" ( (binary_expression "*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0" (pointer_expression "*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368)" * (cast_expression "(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(DAT_001b1e50 + 8) + 0x368)" ( (binary_expression "*(long *)(DAT_001b1e50 + 8) + 0x368" (pointer_expression "*(long *)(DAT_001b1e50 + 8)" * (cast_expression "(long *)(DAT_001b1e50 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001b1e50 + 8)" ( (binary_expression "DAT_001b1e50 + 8" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_001b1e50,lVar9)" ( identifier , identifier )))) ;) (if_statement "if (lVar5 == 0) {\nLAB_001414e6:\n    uVar2 = (uint)param_4;\n    if ((uVar2 & 0x1000002) == 0x1000000) {\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_00121900(uVar6,param_1);\n    }\n    uVar12 = (uint)(param_4 >> 1) & 1;\n    uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n    uVar12 = uVar12 & param_2 != 8;\nLAB_00141553:\n    uVar15 = 4;\n    if ((uVar2 & 1) == 0) goto LAB_001416d0;\n  }\n  else {\n    uVar12 = *(uint *)(lVar5 + 0x10);\n    if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n    uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar16 = param_4 < 2;\n    bVar18 = param_4 == 2;\n    if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }\n    lVar5 = 8;\n    pbVar13 = param_1;\n    pbVar14 = (byte *)".interp";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }\n    uVar3 = 1;\n    uVar12 = (uint)(param_2 != 8);\nLAB_001416d0:\n    uVar15 = 0xc;\n  }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001414e6:\n    uVar2 = (uint)param_4;\n    if ((uVar2 & 0x1000002) == 0x1000000) {\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_00121900(uVar6,param_1);\n    }\n    uVar12 = (uint)(param_4 >> 1) & 1;\n    uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n    uVar12 = uVar12 & param_2 != 8;\nLAB_00141553:\n    uVar15 = 4;\n    if ((uVar2 & 1) == 0) goto LAB_001416d0;\n  }" { (labeled_statement "LAB_001414e6:\n    uVar2 = (uint)param_4;" statement_identifier : (expression_statement "uVar2 = (uint)param_4;" (assignment_expression "uVar2 = (uint)param_4" identifier = (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (if_statement "if ((uVar2 & 0x1000002) == 0x1000000) {\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_00121900(uVar6,param_1);\n    }" if (parenthesized_expression "((uVar2 & 0x1000002) == 0x1000000)" ( (binary_expression "(uVar2 & 0x1000002) == 0x1000000" (parenthesized_expression "(uVar2 & 0x1000002)" ( (binary_expression "uVar2 & 0x1000002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    /* WARNING: Subroutine does not return */\n      FUN_00121900(uVar6,param_1);\n    }" { (expression_statement "uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);" (assignment_expression "uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5)" identifier = (call_expression "dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5)" identifier (argument_list "(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5)" ( number_literal , (string_literal ""SHF_ALLOC isn\'t set for GNU_MBIND section: %s"" " string_content escape_sequence string_content ") , number_literal )))) ;) comment (expression_statement "FUN_00121900(uVar6,param_1);" (call_expression "FUN_00121900(uVar6,param_1)" identifier (argument_list "(uVar6,param_1)" ( identifier , identifier ))) ;) })) (expression_statement "uVar12 = (uint)(param_4 >> 1) & 1;" (assignment_expression "uVar12 = (uint)(param_4 >> 1) & 1" identifier = (binary_expression "(uint)(param_4 >> 1) & 1" (call_expression "(uint)(param_4 >> 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 >> 1)" ( (binary_expression "param_4 >> 1" identifier >> number_literal) ))) & number_literal)) ;) (expression_statement "uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;" (assignment_expression "uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000" identifier = (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000" (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000" (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000" (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400" (binary_expression "uVar2 * 4 & 0x10 | uVar12" (binary_expression "uVar2 * 4 & 0x10" (binary_expression "uVar2 * 4" identifier * number_literal) & number_literal) | identifier) | (binary_expression "uVar2 & 0x400" identifier & number_literal)) | (binary_expression "uVar2 << 0x13 & 0x800000" (binary_expression "uVar2 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "uVar2 << 0x13 & 0x1000000" (binary_expression "uVar2 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "(uint)(param_4 >> 0x10) & 0x8000" (call_expression "(uint)(param_4 >> 0x10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 >> 0x10)" ( (binary_expression "param_4 >> 0x10" identifier >> number_literal) ))) & number_literal))) ;) (expression_statement "uVar12 = uVar12 & param_2 != 8;" (assignment_expression "uVar12 = uVar12 & param_2 != 8" identifier = (binary_expression "uVar12 & param_2 != 8" identifier & (binary_expression "param_2 != 8" identifier != number_literal))) ;) (labeled_statement "LAB_00141553:\n    uVar15 = 4;" statement_identifier : (expression_statement "uVar15 = 4;" (assignment_expression "uVar15 = 4" identifier = number_literal) ;)) (if_statement "if ((uVar2 & 1) == 0) goto LAB_001416d0;" if (parenthesized_expression "((uVar2 & 1) == 0)" ( (binary_expression "(uVar2 & 1) == 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001416d0;" goto statement_identifier ;)) }) (else_clause "else {\n    uVar12 = *(uint *)(lVar5 + 0x10);\n    if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n    uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar16 = param_4 < 2;\n    bVar18 = param_4 == 2;\n    if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }\n    lVar5 = 8;\n    pbVar13 = param_1;\n    pbVar14 = (byte *)".interp";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }\n    uVar3 = 1;\n    uVar12 = (uint)(param_2 != 8);\nLAB_001416d0:\n    uVar15 = 0xc;\n  }" else (compound_statement "{\n    uVar12 = *(uint *)(lVar5 + 0x10);\n    if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n    uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar16 = param_4 < 2;\n    bVar18 = param_4 == 2;\n    if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }\n    lVar5 = 8;\n    pbVar13 = param_1;\n    pbVar14 = (byte *)".interp";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }\n    uVar3 = 1;\n    uVar12 = (uint)(param_2 != 8);\nLAB_001416d0:\n    uVar15 = 0xc;\n  }" { (expression_statement "uVar12 = *(uint *)(lVar5 + 0x10);" (assignment_expression "uVar12 = *(uint *)(lVar5 + 0x10)" identifier = (pointer_expression "*(uint *)(lVar5 + 0x10)" * (cast_expression "(uint *)(lVar5 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }" if (parenthesized_expression "((param_2 == 0) || (param_2 == uVar12))" ( (binary_expression "(param_2 == 0) || (param_2 == uVar12)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_2 == uVar12)" ( (binary_expression "param_2 == uVar12" identifier == identifier) ))) )) (compound_statement "{\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }" { (labeled_statement "LAB_001414dd:\n      param_2 = uVar12;" statement_identifier : (expression_statement "param_2 = uVar12;" (assignment_expression "param_2 = uVar12" identifier = identifier) ;)) (if_statement "if (lVar4 != 0) goto LAB_001414e6;" if (parenthesized_expression "(lVar4 != 0)" ( (binary_expression "lVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001414e6;" goto statement_identifier ;)) }) (else_clause "else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }" else (compound_statement "{\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }" { (if_statement "if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }" if (parenthesized_expression "((uVar12 - 0xe < 3) || (lVar4 != 0))" ( (binary_expression "(uVar12 - 0xe < 3) || (lVar4 != 0)" (parenthesized_expression "(uVar12 - 0xe < 3)" ( (binary_expression "uVar12 - 0xe < 3" (binary_expression "uVar12 - 0xe" identifier - number_literal) < number_literal) )) || (parenthesized_expression "(lVar4 != 0)" ( (binary_expression "lVar4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }" { (expression_statement "uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);" (assignment_expression "uVar6 = 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_00121590(uVar6,param_1);" (call_expression "FUN_00121590(uVar6,param_1)" identifier (argument_list "(uVar6,param_1)" ( identifier , identifier ))) ;) (expression_statement "uVar12 = *(uint *)(lVar5 + 0x10);" (assignment_expression "uVar12 = *(uint *)(lVar5 + 0x10)" identifier = (pointer_expression "*(uint *)(lVar5 + 0x10)" * (cast_expression "(uint *)(lVar5 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001414dd;" goto statement_identifier ;) })) (if_statement "if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" if (parenthesized_expression "((uVar12 != 7) && (param_2 < 0x70000000))" ( (binary_expression "(uVar12 != 7) && (param_2 < 0x70000000)" (parenthesized_expression "(uVar12 != 7)" ( (binary_expression "uVar12 != 7" identifier != number_literal) )) && (parenthesized_expression "(param_2 < 0x70000000)" ( (binary_expression "param_2 < 0x70000000" identifier < number_literal) ))) )) (compound_statement "{\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" { (expression_statement "uVar6 = dcgettext(0,"setting incorrect section type for %s",5);" (assignment_expression "uVar6 = 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_00121590(uVar6,param_1);" (call_expression "FUN_00121590(uVar6,param_1)" identifier (argument_list "(uVar6,param_1)" ( identifier , identifier ))) ;) })) }))) (expression_statement "uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;" (assignment_expression "uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4" identifier = (binary_expression "~*(ulong *)(lVar5 + 0x18) & param_4" (unary_expression "~*(ulong *)(lVar5 + 0x18)" ~ (pointer_expression "*(ulong *)(lVar5 + 0x18)" * (cast_expression "(ulong *)(lVar5 + 0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x18)" ( (binary_expression "lVar5 + 0x18" identifier + number_literal) ))))) & identifier)) ;) (if_statement "if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }" if (parenthesized_expression "((uVar7 & 0xfffff) == 0)" ( (binary_expression "(uVar7 & 0xfffff) == 0" (parenthesized_expression "(uVar7 & 0xfffff)" ( (binary_expression "uVar7 & 0xfffff" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }" { (labeled_statement "LAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);" statement_identifier : (expression_statement "param_4 = param_4 | *(ulong *)(lVar5 + 0x18);" (assignment_expression "param_4 = param_4 | *(ulong *)(lVar5 + 0x18)" identifier = (binary_expression "param_4 | *(ulong *)(lVar5 + 0x18)" identifier | (pointer_expression "*(ulong *)(lVar5 + 0x18)" * (cast_expression "(ulong *)(lVar5 + 0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x18)" ( (binary_expression "lVar5 + 0x18" identifier + number_literal) )))))) ;)) (goto_statement "goto LAB_001414e6;" goto statement_identifier ;) })) (if_statement "if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }" if (parenthesized_expression "(*(int *)(lVar5 + 0x10) == 7)" ( (binary_expression "*(int *)(lVar5 + 0x10) == 7" (pointer_expression "*(int *)(lVar5 + 0x10)" * (cast_expression "(int *)(lVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }" { (if_statement "if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }" if (parenthesized_expression "((param_4 - 2 & 0xfffffffffffffffd) != 0)" ( (binary_expression "(param_4 - 2 & 0xfffffffffffffffd) != 0" (parenthesized_expression "(param_4 - 2 & 0xfffffffffffffffd)" ( (binary_expression "param_4 - 2 & 0xfffffffffffffffd" (binary_expression "param_4 - 2" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }" { (if_statement "if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;" if (parenthesized_expression "(*(int *)(lVar5 + 0xc) == -2)" ( (binary_expression "*(int *)(lVar5 + 0xc) == -2" (pointer_expression "*(int *)(lVar5 + 0xc)" * (cast_expression "(int *)(lVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0xc)" ( (binary_expression "lVar5 + 0xc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_001416a3;" goto statement_identifier ;)) (labeled_statement "LAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }" statement_identifier : (if_statement "if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }" { (labeled_statement "LAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);" statement_identifier : (expression_statement "uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);" (assignment_expression "uVar6 = 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_00121590(uVar6,param_1);" (call_expression "FUN_00121590(uVar6,param_1)" identifier (argument_list "(uVar6,param_1)" ( identifier , identifier ))) ;) }))) (goto_statement "goto LAB_001414e6;" goto statement_identifier ;) })) (goto_statement "goto LAB_001416b8;" goto statement_identifier ;) })) (if_statement "if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }" if (parenthesized_expression "(*(int *)(lVar5 + 0xc) == -2)" ( (binary_expression "*(int *)(lVar5 + 0xc) == -2" (pointer_expression "*(int *)(lVar5 + 0xc)" * (cast_expression "(int *)(lVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0xc)" ( (binary_expression "lVar5 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }" { (labeled_statement "LAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;" statement_identifier : (if_statement "if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;" if (parenthesized_expression "((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))" ( (binary_expression "(param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0)" (parenthesized_expression "(param_1[*(uint *)(lVar5 + 8)] == 0x2e)" ( (binary_expression "param_1[*(uint *)(lVar5 + 8)] == 0x2e" (subscript_expression "param_1[*(uint *)(lVar5 + 8)]" identifier [ (pointer_expression "*(uint *)(lVar5 + 8)" * (cast_expression "(uint *)(lVar5 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 8)" ( (binary_expression "lVar5 + 8" identifier + number_literal) )))) ]) == number_literal) )) && (parenthesized_expression "((uVar7 & 0xffffffffffffffcf) == 0)" ( (binary_expression "(uVar7 & 0xffffffffffffffcf) == 0" (parenthesized_expression "(uVar7 & 0xffffffffffffffcf)" ( (binary_expression "uVar7 & 0xffffffffffffffcf" identifier & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_001416b8;" goto statement_identifier ;))) })) (expression_statement "bVar16 = param_4 < 2;" (assignment_expression "bVar16 = param_4 < 2" identifier = (binary_expression "param_4 < 2" identifier < number_literal)) ;) (expression_statement "bVar18 = param_4 == 2;" (assignment_expression "bVar18 = param_4 == 2" identifier = (binary_expression "param_4 == 2" identifier == number_literal)) ;) (if_statement "if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (compound_statement "{\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }" { (expression_statement "bVar16 = param_4 < 4;" (assignment_expression "bVar16 = param_4 < 4" identifier = (binary_expression "param_4 < 4" identifier < number_literal)) ;) (expression_statement "bVar18 = param_4 == 4;" (assignment_expression "bVar18 = param_4 == 4" identifier = (binary_expression "param_4 == 4" identifier == number_literal)) ;) (if_statement "if (!bVar18) goto LAB_00141658;" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (goto_statement "goto LAB_00141658;" goto statement_identifier ;)) (expression_statement "lVar5 = 0x10;" (assignment_expression "lVar5 = 0x10" identifier = number_literal) ;) (expression_statement "pbVar13 = param_1;" (assignment_expression "pbVar13 = param_1" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)".note.GNU-stack";" (assignment_expression "pbVar14 = (byte *)".note.GNU-stack"" identifier = (cast_expression "(byte *)".note.GNU-stack"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".note.GNU-stack"" " string_content "))) ;) (do_statement "do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);" do (compound_statement "{\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar13 < *pbVar14;" (assignment_expression "bVar16 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar18 = *pbVar13 == *pbVar14;" (assignment_expression "bVar18 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "cVar10 = (!bVar16 && !bVar18) - bVar16;" (assignment_expression "cVar10 = (!bVar16 && !bVar18) - bVar16" identifier = (binary_expression "(!bVar16 && !bVar18) - bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" ( (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) - identifier)) ;) (expression_statement "uVar12 = (uint)cVar10;" (assignment_expression "uVar12 = (uint)cVar10" identifier = (cast_expression "(uint)cVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }" if (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }" { (expression_statement "uVar3 = 0x10;" (assignment_expression "uVar3 = 0x10" identifier = number_literal) ;) (expression_statement "uVar15 = 0xc;" (assignment_expression "uVar15 = 0xc" identifier = number_literal) ;) (goto_statement "goto LAB_00141567;" goto statement_identifier ;) })) (labeled_statement "LAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;" statement_identifier : (if_statement "if (param_6 == 0) goto LAB_00141661;" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00141661;" goto statement_identifier ;))) (expression_statement "uVar2 = (uint)param_4;" (assignment_expression "uVar2 = (uint)param_4" identifier = (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar12 = (uint)(param_4 >> 1) & 1;" (assignment_expression "uVar12 = (uint)(param_4 >> 1) & 1" identifier = (binary_expression "(uint)(param_4 >> 1) & 1" (call_expression "(uint)(param_4 >> 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 >> 1)" ( (binary_expression "param_4 >> 1" identifier >> number_literal) ))) & number_literal)) ;) (expression_statement "uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;" (assignment_expression "uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000" identifier = (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000" (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000" (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000" (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400" (binary_expression "uVar2 * 4 & 0x10 | uVar12" (binary_expression "uVar2 * 4 & 0x10" (binary_expression "uVar2 * 4" identifier * number_literal) & number_literal) | identifier) | (binary_expression "uVar2 & 0x400" identifier & number_literal)) | (binary_expression "uVar2 << 0x13 & 0x800000" (binary_expression "uVar2 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "uVar2 << 0x13 & 0x1000000" (binary_expression "uVar2 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "(uint)(param_4 >> 0x10) & 0x8000" (call_expression "(uint)(param_4 >> 0x10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 >> 0x10)" ( (binary_expression "param_4 >> 0x10" identifier >> number_literal) ))) & number_literal))) ;) (expression_statement "uVar12 = param_2 != 8 & uVar12;" (assignment_expression "uVar12 = param_2 != 8 & uVar12" identifier = (binary_expression "param_2 != 8 & uVar12" (binary_expression "param_2 != 8" identifier != number_literal) & identifier)) ;) (goto_statement "goto LAB_00141553;" goto statement_identifier ;) })) (expression_statement "lVar5 = 8;" (assignment_expression "lVar5 = 8" identifier = number_literal) ;) (expression_statement "pbVar13 = param_1;" (assignment_expression "pbVar13 = param_1" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)".interp";" (assignment_expression "pbVar14 = (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 (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);" do (compound_statement "{\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar13 < *pbVar14;" (assignment_expression "bVar16 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar18 = *pbVar13 == *pbVar14;" (assignment_expression "bVar18 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar16 && !bVar18) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar18) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" ( (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }" { (expression_statement "lVar5 = 8;" (assignment_expression "lVar5 = 8" identifier = number_literal) ;) (expression_statement "pbVar13 = param_1;" (assignment_expression "pbVar13 = param_1" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)".strtab";" (assignment_expression "pbVar14 = (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 (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);" do (compound_statement "{\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar13 < *pbVar14;" (assignment_expression "bVar17 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar17 && !bVar16) == bVar17;" (assignment_expression "bVar16 = (!bVar17 && !bVar16) == bVar17" identifier = (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }" { (expression_statement "lVar5 = 8;" (assignment_expression "lVar5 = 8" identifier = number_literal) ;) (expression_statement "pbVar13 = param_1;" (assignment_expression "pbVar13 = param_1" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)".symtab";" (assignment_expression "pbVar14 = (byte *)".symtab"" identifier = (cast_expression "(byte *)".symtab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".symtab"" " string_content "))) ;) (do_statement "do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);" do (compound_statement "{\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar13 < *pbVar14;" (assignment_expression "bVar18 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;" if (parenthesized_expression "((!bVar18 && !bVar16) != bVar18)" ( (binary_expression "(!bVar18 && !bVar16) != bVar18" (parenthesized_expression "(!bVar18 && !bVar16)" ( (binary_expression "!bVar18 && !bVar16" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_001418d2;" goto statement_identifier ;)) })) })) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) (expression_statement "uVar12 = (uint)(param_2 != 8);" (assignment_expression "uVar12 = (uint)(param_2 != 8)" identifier = (call_expression "(uint)(param_2 != 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 != 8)" ( (binary_expression "param_2 != 8" identifier != number_literal) )))) ;) (labeled_statement "LAB_001416d0:\n    uVar15 = 0xc;" statement_identifier : (expression_statement "uVar15 = 0xc;" (assignment_expression "uVar15 = 0xc" identifier = number_literal) ;)) }))) (expression_statement "uVar12 = uVar12 * 2;" (assignment_expression "uVar12 = uVar12 * 2" identifier = (binary_expression "uVar12 * 2" identifier * number_literal)) ;) (labeled_statement "LAB_00141567:\n  uVar12 = uVar15 | uVar3 | uVar12;" statement_identifier : (expression_statement "uVar12 = uVar15 | uVar3 | uVar12;" (assignment_expression "uVar12 = uVar15 | uVar3 | uVar12" identifier = (binary_expression "uVar15 | uVar3 | uVar12" (binary_expression "uVar15 | uVar3" identifier | identifier) | identifier)) ;)) (if_statement "if (param_7 != 0) {\n    uVar12 = uVar12 | 0x20000;\n  }" if (parenthesized_expression "(param_7 != 0)" ( (binary_expression "param_7 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar12 = uVar12 | 0x20000;\n  }" { (expression_statement "uVar12 = uVar12 | 0x20000;" (assignment_expression "uVar12 = uVar12 | 0x20000" identifier = (binary_expression "uVar12 | 0x20000" identifier | number_literal)) ;) })) (if_statement "if (lVar4 == 0) {\n    if (param_2 == 0) {\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }\n    lVar4 = *(long *)(lVar9 + 0xe0);\n    *(uint *)(lVar4 + 4) = param_2;\n    *(ulong *)(lVar4 + 8) = param_4;\n    *(undefined4 *)(lVar4 + 0x2c) = param_3;\n    if (param_2 == 8) {\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }\n    bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12);\n    if ((uVar12 & 0x800000) != 0) {\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }\n    *(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6;\n    lVar4 = FUN_0012e990(param_1);\n    if (lVar4 != 0) {\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }\n    uVar6 = FUN_0012b250(lVar9);\n    FUN_0012ba70(uVar6);\n  }\n  else {\n    if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n  }" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    if (param_2 == 0) {\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }\n    lVar4 = *(long *)(lVar9 + 0xe0);\n    *(uint *)(lVar4 + 4) = param_2;\n    *(ulong *)(lVar4 + 8) = param_4;\n    *(undefined4 *)(lVar4 + 0x2c) = param_3;\n    if (param_2 == 8) {\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }\n    bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12);\n    if ((uVar12 & 0x800000) != 0) {\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }\n    *(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6;\n    lVar4 = FUN_0012e990(param_1);\n    if (lVar4 != 0) {\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }\n    uVar6 = FUN_0012b250(lVar9);\n    FUN_0012ba70(uVar6);\n  }" { (if_statement "if (param_2 == 0) {\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }" { (expression_statement "param_2 = bfd_elf_get_default_section_type(uVar12);" (assignment_expression "param_2 = bfd_elf_get_default_section_type(uVar12)" identifier = (call_expression "bfd_elf_get_default_section_type(uVar12)" identifier (argument_list "(uVar12)" ( identifier )))) ;) })) (expression_statement "lVar4 = *(long *)(lVar9 + 0xe0);" (assignment_expression "lVar4 = *(long *)(lVar9 + 0xe0)" identifier = (pointer_expression "*(long *)(lVar9 + 0xe0)" * (cast_expression "(long *)(lVar9 + 0xe0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0xe0)" ( (binary_expression "lVar9 + 0xe0" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(lVar4 + 4) = param_2;" (assignment_expression "*(uint *)(lVar4 + 4) = param_2" (pointer_expression "*(uint *)(lVar4 + 4)" * (cast_expression "(uint *)(lVar4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 4)" ( (binary_expression "lVar4 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(ulong *)(lVar4 + 8) = param_4;" (assignment_expression "*(ulong *)(lVar4 + 8) = param_4" (pointer_expression "*(ulong *)(lVar4 + 8)" * (cast_expression "(ulong *)(lVar4 + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 8)" ( (binary_expression "lVar4 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(lVar4 + 0x2c) = param_3;" (assignment_expression "*(undefined4 *)(lVar4 + 0x2c) = param_3" (pointer_expression "*(undefined4 *)(lVar4 + 0x2c)" * (cast_expression "(undefined4 *)(lVar4 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x2c)" ( (binary_expression "lVar4 + 0x2c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (param_2 == 8) {\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }" if (parenthesized_expression "(param_2 == 8)" ( (binary_expression "param_2 == 8" identifier == number_literal) )) (compound_statement "{\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }" { (expression_statement "pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);" (assignment_expression "pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8)" identifier = (cast_expression "(byte *)(*(long *)(lVar9 + 0xa8) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar9 + 0xa8) + 8)" ( (binary_expression "*(long *)(lVar9 + 0xa8) + 8" (pointer_expression "*(long *)(lVar9 + 0xa8)" * (cast_expression "(long *)(lVar9 + 0xa8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0xa8)" ( (binary_expression "lVar9 + 0xa8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar13 = *pbVar13 | 2;" (assignment_expression "*pbVar13 = *pbVar13 | 2" (pointer_expression "*pbVar13" * identifier) = (binary_expression "*pbVar13 | 2" (pointer_expression "*pbVar13" * identifier) | number_literal)) ;) })) (expression_statement "bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12);" (call_expression "bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12)" identifier (argument_list "(DAT_001b1e50,lVar9,uVar12)" ( identifier , identifier , identifier ))) ;) (if_statement "if ((uVar12 & 0x800000) != 0) {\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }" if (parenthesized_expression "((uVar12 & 0x800000) != 0)" ( (binary_expression "(uVar12 & 0x800000) != 0" (parenthesized_expression "(uVar12 & 0x800000)" ( (binary_expression "uVar12 & 0x800000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }" { (expression_statement "*(int *)(lVar9 + 0xc4) = param_5;" (assignment_expression "*(int *)(lVar9 + 0xc4) = param_5" (pointer_expression "*(int *)(lVar9 + 0xc4)" * (cast_expression "(int *)(lVar9 + 0xc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0xc4)" ( (binary_expression "lVar9 + 0xc4" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6;" (assignment_expression "*(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6" (pointer_expression "*(long *)(*(long *)(lVar9 + 0xe0) + 0xb0)" * (cast_expression "(long *)(*(long *)(lVar9 + 0xe0) + 0xb0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar9 + 0xe0) + 0xb0)" ( (binary_expression "*(long *)(lVar9 + 0xe0) + 0xb0" (pointer_expression "*(long *)(lVar9 + 0xe0)" * (cast_expression "(long *)(lVar9 + 0xe0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0xe0)" ( (binary_expression "lVar9 + 0xe0" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "lVar4 = FUN_0012e990(param_1);" (assignment_expression "lVar4 = FUN_0012e990(param_1)" identifier = (call_expression "FUN_0012e990(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (lVar4 != 0) {\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }" if (parenthesized_expression "(lVar4 != 0)" ( (binary_expression "lVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }" { (expression_statement "FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));" (call_expression "FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8))" identifier (argument_list "(lVar4,*(undefined8 *)(lVar9 + 0xf8))" ( identifier , (pointer_expression "*(undefined8 *)(lVar9 + 0xf8)" * (cast_expression "(undefined8 *)(lVar9 + 0xf8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0xf8)" ( (binary_expression "lVar9 + 0xf8" identifier + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar6 = FUN_0012b250(lVar9);" (assignment_expression "uVar6 = FUN_0012b250(lVar9)" identifier = (call_expression "FUN_0012b250(lVar9)" identifier (argument_list "(lVar9)" ( identifier )))) ;) (expression_statement "FUN_0012ba70(uVar6);" (call_expression "FUN_0012ba70(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) }) (else_clause "else {\n    if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n  }" else (compound_statement "{\n    if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n  }" { (if_statement "if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }" if (parenthesized_expression "((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2))" ( (binary_expression "(param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)" (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)" ( (binary_expression "*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2" (pointer_expression "*(uint *)(*(long *)(lVar4 + 0xe0) + 4)" * (cast_expression "(uint *)(*(long *)(lVar4 + 0xe0) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar4 + 0xe0) + 4)" ( (binary_expression "*(long *)(lVar4 + 0xe0) + 4" (pointer_expression "*(long *)(lVar4 + 0xe0)" * (cast_expression "(long *)(lVar4 + 0xe0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0xe0)" ( (binary_expression "lVar4 + 0xe0" identifier + number_literal) )))) + number_literal) )))) != identifier) ))) )) (compound_statement "{\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }" { (expression_statement "uVar6 = dcgettext(0,"ignoring changed section type for %s",5);" (assignment_expression "uVar6 = 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_00121590(uVar6,param_1);" (call_expression "FUN_00121590(uVar6,param_1)" identifier (argument_list "(uVar6,param_1)" ( identifier , identifier ))) ;) })) (if_statement "if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }" { (if_statement "if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" if (parenthesized_expression "(((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0)" ( (binary_expression "((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0" (parenthesized_expression "((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b)" ( (binary_expression "(*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b" (parenthesized_expression "(*(uint *)(lVar4 + 0x20) ^ uVar12)" ( (binary_expression "*(uint *)(lVar4 + 0x20) ^ uVar12" (pointer_expression "*(uint *)(lVar4 + 0x20)" * (cast_expression "(uint *)(lVar4 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x20)" ( (binary_expression "lVar4 + 0x20" identifier + number_literal) )))) ^ identifier) )) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }" { (expression_statement "*(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;" (assignment_expression "*(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4" (pointer_expression "*(ulong *)(*(long *)(lVar9 + 0xe0) + 8)" * (cast_expression "(ulong *)(*(long *)(lVar9 + 0xe0) + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar9 + 0xe0) + 8)" ( (binary_expression "*(long *)(lVar9 + 0xe0) + 8" (pointer_expression "*(long *)(lVar9 + 0xe0)" * (cast_expression "(long *)(lVar9 + 0xe0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0xe0)" ( (binary_expression "lVar9 + 0xe0" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" else (compound_statement "{\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" { (expression_statement "uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);" (assignment_expression "uVar6 = 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_00121590(uVar6,param_1);" (call_expression "FUN_00121590(uVar6,param_1)" identifier (argument_list "(uVar6,param_1)" ( identifier , identifier ))) ;) }))) (if_statement "if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" if (parenthesized_expression "(((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5))" ( (binary_expression "((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)" (parenthesized_expression "((uVar12 & 0x800000) != 0)" ( (binary_expression "(uVar12 & 0x800000) != 0" (parenthesized_expression "(uVar12 & 0x800000)" ( (binary_expression "uVar12 & 0x800000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)(lVar4 + 0xc4) != param_5)" ( (binary_expression "*(int *)(lVar4 + 0xc4) != param_5" (pointer_expression "*(int *)(lVar4 + 0xc4)" * (cast_expression "(int *)(lVar4 + 0xc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0xc4)" ( (binary_expression "lVar4 + 0xc4" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" { (expression_statement "uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);" (assignment_expression "uVar6 = 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_00121590(uVar6,param_1);" (call_expression "FUN_00121590(uVar6,param_1)" identifier (argument_list "(uVar6,param_1)" ( identifier , identifier ))) ;) })) })) }))) (return_statement "return;" return ;) })))
(translation_unit "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  uint uVar3;\n  uint uVar4;\n  segT paVar5;\n  long lVar6;\n  char *pcVar7;\n  ulong uVar8;\n  section_stack *psVar9;\n  segT sec;\n  symbolS *psVar10;\n  char cVar11;\n  subsegT sVar12;\n  uint uVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  uint uVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  section_match match;\n  \n  bVar20 = 0;\n  paVar5 = now_seg;\n  sVar12 = now_subseg;\n  if (push != 0) {\n    psVar9 = (section_stack *)xmalloc(0x20);\n    paVar5 = now_seg;\n    psVar2 = psVar9;\n    psVar9->next = section_stack;\n    section_stack = psVar2;\n    psVar9->seg = paVar5;\n    psVar9->prev_seg = previous_section;\n    sVar12 = now_subseg;\n    psVar9->prev_subseg = previous_subsection;\n    psVar9->subseg = sVar12;\n  }\n  previous_subsection = sVar12;\n  previous_section = paVar5;\n  match.group_name = group_name;\n  match.info = info;\n  paVar5 = (segT)bfd_get_section_by_name_if(stdoutput,name,get_section,&match);\n  if (paVar5 == (segT)0x0) {\n    sec = subseg_force_new(name,0);\n  }\n  else {\n    subseg_set(paVar5,0);\n    sec = paVar5;\n  }\n  lVar6 = (**(code **)((long)stdoutput->xvec->backend_data + 0xa0))(stdoutput,sec);\n  if (lVar6 == 0) {\nLAB_001414e6:\n    uVar3 = (uint)attr;\n    if ((uVar3 & 0x1000002) == 0x1000000) {\n      pcVar7 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar7,name);\n    }\n    uVar13 = (uint)(attr >> 1) & 1;\n    uVar4 = uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n            uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000;\n    uVar13 = uVar13 & type != 8;\nLAB_00141553:\n    uVar16 = 4;\n    if ((uVar3 & 1) == 0) goto LAB_001416d0;\n  }\n  else {\n    uVar13 = *(uint *)(lVar6 + 0x10);\n    if ((type == 0) || (type == uVar13)) {\nLAB_001414dd:\n      type = uVar13;\n      if (paVar5 != (segT)0x0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar13 - 0xe < 3) || (paVar5 != (segT)0x0)) {\n        pcVar7 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n        uVar13 = *(uint *)(lVar6 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar13 != 7) && (type < 0x70000000)) {\n        pcVar7 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n      }\n    }\n    uVar8 = ~*(ulong *)(lVar6 + 0x18) & attr;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_001416b8:\n      attr = attr | *(ulong *)(lVar6 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar6 + 0x10) == 7) {\n      if ((attr - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar6 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (group_name == (char *)0x0) {\nLAB_00141661:\n          pcVar7 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar7,name);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar6 + 0xc) == -2) {\nLAB_001416a3:\n      if ((name[*(uint *)(lVar6 + 8)] == '.') && ((uVar8 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar17 = attr < 2;\n    bVar19 = attr == 2;\n    if (!bVar19) {\n      bVar17 = attr < 4;\n      bVar19 = attr == 4;\n      if (!bVar19) goto LAB_00141658;\n      lVar6 = 0x10;\n      pbVar14 = (byte *)name;\n      pbVar15 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar17 = *pbVar14 < *pbVar15;\n        bVar19 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      cVar11 = (!bVar17 && !bVar19) - bVar17;\n      uVar13 = (uint)cVar11;\n      if (cVar11 == '\0') {\n        uVar4 = 0x10;\n        uVar16 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (group_name == (char *)0x0) goto LAB_00141661;\n      uVar3 = (uint)attr;\n      uVar13 = (uint)(attr >> 1) & 1;\n      uVar4 = uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n              uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000;\n      uVar13 = type != 8 & uVar13;\n      goto LAB_00141553;\n    }\n    lVar6 = 8;\n    pbVar14 = (byte *)name;\n    pbVar15 = (byte *)".interp";\n    do {\n      if (lVar6 == 0) break;\n      lVar6 = lVar6 + -1;\n      bVar17 = *pbVar14 < *pbVar15;\n      bVar19 = *pbVar14 == *pbVar15;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n    } while (bVar19);\n    bVar18 = false;\n    bVar17 = (!bVar17 && !bVar19) == bVar17;\n    if (!bVar17) {\n      lVar6 = 8;\n      pbVar14 = (byte *)name;\n      pbVar15 = (byte *)".strtab";\n      do {\n        if (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar18 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      } while (bVar17);\n      bVar19 = false;\n      bVar17 = (!bVar18 && !bVar17) == bVar18;\n      if (!bVar17) {\n        lVar6 = 8;\n        pbVar14 = (byte *)name;\n        pbVar15 = (byte *)".symtab";\n        do {\n          if (lVar6 == 0) break;\n          lVar6 = lVar6 + -1;\n          bVar19 = *pbVar14 < *pbVar15;\n          bVar17 = *pbVar14 == *pbVar15;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n        } while (bVar17);\n        if ((!bVar19 && !bVar17) != bVar19) goto LAB_001418d2;\n      }\n    }\n    uVar4 = 1;\n    uVar13 = (uint)(type != 8);\nLAB_001416d0:\n    uVar16 = 0xc;\n  }\n  uVar13 = uVar13 * 2;\nLAB_00141567:\n  uVar13 = uVar16 | uVar4 | uVar13;\n  if (linkonce != 0) {\n    uVar13 = uVar13 | 0x20000;\n  }\n  if (paVar5 == (segT)0x0) {\n    if (type == 0) {\n      type = bfd_elf_get_default_section_type(uVar13);\n    }\n    pvVar1 = sec->used_by_bfd;\n    *(uint *)((long)pvVar1 + 4) = type;\n    *(bfd_vma *)((long)pvVar1 + 8) = attr;\n    *(uint *)((long)pvVar1 + 0x2c) = info;\n    if (type == 8) {\n      pbVar14 = (byte *)((long)sec->userdata + 8);\n      *pbVar14 = *pbVar14 | 2;\n    }\n    bfd_set_section_flags(stdoutput,sec,uVar13);\n    if ((uVar13 & 0x800000) != 0) {\n      sec->entsize = entsize;\n    }\n    *(char **)((long)sec->used_by_bfd + 0xb0) = group_name;\n    psVar10 = symbol_find(name);\n    if (psVar10 != (symbolS *)0x0) {\n      symbol_set_bfdsym(psVar10,sec->symbol);\n      return;\n    }\n    psVar10 = section_symbol(sec);\n    symbol_table_insert(psVar10);\n  }\n  else {\n    if ((type != 0) && (*(uint *)((long)paVar5->used_by_bfd + 4) != type)) {\n      pcVar7 = (char *)dcgettext(0,"ignoring changed section type for %s",5);\n      as_warn(pcVar7,name);\n    }\n    if (attr != 0) {\n      if (((paVar5->flags ^ uVar13) & 0x183841b) == 0) {\n        *(bfd_vma *)((long)sec->used_by_bfd + 8) = attr;\n      }\n      else {\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar7,name);\n      }\n      if (((uVar13 & 0x800000) != 0) && (paVar5->entsize != entsize)) {\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar7,name);\n      }\n    }\n  }\n  return;\n}\n\n" (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  uint uVar3;\n  uint uVar4;\n  segT paVar5;\n  long lVar6;\n  char *pcVar7;\n  ulong uVar8;\n  section_stack *psVar9;\n  segT sec;\n  symbolS *psVar10;\n  char cVar11;\n  subsegT sVar12;\n  uint uVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  uint uVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  section_match match;\n  \n  bVar20 = 0;\n  paVar5 = now_seg;\n  sVar12 = now_subseg;\n  if (push != 0) {\n    psVar9 = (section_stack *)xmalloc(0x20);\n    paVar5 = now_seg;\n    psVar2 = psVar9;\n    psVar9->next = section_stack;\n    section_stack = psVar2;\n    psVar9->seg = paVar5;\n    psVar9->prev_seg = previous_section;\n    sVar12 = now_subseg;\n    psVar9->prev_subseg = previous_subsection;\n    psVar9->subseg = sVar12;\n  }\n  previous_subsection = sVar12;\n  previous_section = paVar5;\n  match.group_name = group_name;\n  match.info = info;\n  paVar5 = (segT)bfd_get_section_by_name_if(stdoutput,name,get_section,&match);\n  if (paVar5 == (segT)0x0) {\n    sec = subseg_force_new(name,0);\n  }\n  else {\n    subseg_set(paVar5,0);\n    sec = paVar5;\n  }\n  lVar6 = (**(code **)((long)stdoutput->xvec->backend_data + 0xa0))(stdoutput,sec);\n  if (lVar6 == 0) {\nLAB_001414e6:\n    uVar3 = (uint)attr;\n    if ((uVar3 & 0x1000002) == 0x1000000) {\n      pcVar7 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar7,name);\n    }\n    uVar13 = (uint)(attr >> 1) & 1;\n    uVar4 = uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n            uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000;\n    uVar13 = uVar13 & type != 8;\nLAB_00141553:\n    uVar16 = 4;\n    if ((uVar3 & 1) == 0) goto LAB_001416d0;\n  }\n  else {\n    uVar13 = *(uint *)(lVar6 + 0x10);\n    if ((type == 0) || (type == uVar13)) {\nLAB_001414dd:\n      type = uVar13;\n      if (paVar5 != (segT)0x0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar13 - 0xe < 3) || (paVar5 != (segT)0x0)) {\n        pcVar7 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n        uVar13 = *(uint *)(lVar6 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar13 != 7) && (type < 0x70000000)) {\n        pcVar7 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n      }\n    }\n    uVar8 = ~*(ulong *)(lVar6 + 0x18) & attr;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_001416b8:\n      attr = attr | *(ulong *)(lVar6 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar6 + 0x10) == 7) {\n      if ((attr - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar6 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (group_name == (char *)0x0) {\nLAB_00141661:\n          pcVar7 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar7,name);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar6 + 0xc) == -2) {\nLAB_001416a3:\n      if ((name[*(uint *)(lVar6 + 8)] == '.') && ((uVar8 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar17 = attr < 2;\n    bVar19 = attr == 2;\n    if (!bVar19) {\n      bVar17 = attr < 4;\n      bVar19 = attr == 4;\n      if (!bVar19) goto LAB_00141658;\n      lVar6 = 0x10;\n      pbVar14 = (byte *)name;\n      pbVar15 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar17 = *pbVar14 < *pbVar15;\n        bVar19 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      cVar11 = (!bVar17 && !bVar19) - bVar17;\n      uVar13 = (uint)cVar11;\n      if (cVar11 == '\0') {\n        uVar4 = 0x10;\n        uVar16 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (group_name == (char *)0x0) goto LAB_00141661;\n      uVar3 = (uint)attr;\n      uVar13 = (uint)(attr >> 1) & 1;\n      uVar4 = uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n              uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000;\n      uVar13 = type != 8 & uVar13;\n      goto LAB_00141553;\n    }\n    lVar6 = 8;\n    pbVar14 = (byte *)name;\n    pbVar15 = (byte *)".interp";\n    do {\n      if (lVar6 == 0) break;\n      lVar6 = lVar6 + -1;\n      bVar17 = *pbVar14 < *pbVar15;\n      bVar19 = *pbVar14 == *pbVar15;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n    } while (bVar19);\n    bVar18 = false;\n    bVar17 = (!bVar17 && !bVar19) == bVar17;\n    if (!bVar17) {\n      lVar6 = 8;\n      pbVar14 = (byte *)name;\n      pbVar15 = (byte *)".strtab";\n      do {\n        if (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar18 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      } while (bVar17);\n      bVar19 = false;\n      bVar17 = (!bVar18 && !bVar17) == bVar18;\n      if (!bVar17) {\n        lVar6 = 8;\n        pbVar14 = (byte *)name;\n        pbVar15 = (byte *)".symtab";\n        do {\n          if (lVar6 == 0) break;\n          lVar6 = lVar6 + -1;\n          bVar19 = *pbVar14 < *pbVar15;\n          bVar17 = *pbVar14 == *pbVar15;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n        } while (bVar17);\n        if ((!bVar19 && !bVar17) != bVar19) goto LAB_001418d2;\n      }\n    }\n    uVar4 = 1;\n    uVar13 = (uint)(type != 8);\nLAB_001416d0:\n    uVar16 = 0xc;\n  }\n  uVar13 = uVar13 * 2;\nLAB_00141567:\n  uVar13 = uVar16 | uVar4 | uVar13;\n  if (linkonce != 0) {\n    uVar13 = uVar13 | 0x20000;\n  }\n  if (paVar5 == (segT)0x0) {\n    if (type == 0) {\n      type = bfd_elf_get_default_section_type(uVar13);\n    }\n    pvVar1 = sec->used_by_bfd;\n    *(uint *)((long)pvVar1 + 4) = type;\n    *(bfd_vma *)((long)pvVar1 + 8) = attr;\n    *(uint *)((long)pvVar1 + 0x2c) = info;\n    if (type == 8) {\n      pbVar14 = (byte *)((long)sec->userdata + 8);\n      *pbVar14 = *pbVar14 | 2;\n    }\n    bfd_set_section_flags(stdoutput,sec,uVar13);\n    if ((uVar13 & 0x800000) != 0) {\n      sec->entsize = entsize;\n    }\n    *(char **)((long)sec->used_by_bfd + 0xb0) = group_name;\n    psVar10 = symbol_find(name);\n    if (psVar10 != (symbolS *)0x0) {\n      symbol_set_bfdsym(psVar10,sec->symbol);\n      return;\n    }\n    psVar10 = section_symbol(sec);\n    symbol_table_insert(psVar10);\n  }\n  else {\n    if ((type != 0) && (*(uint *)((long)paVar5->used_by_bfd + 4) != type)) {\n      pcVar7 = (char *)dcgettext(0,"ignoring changed section type for %s",5);\n      as_warn(pcVar7,name);\n    }\n    if (attr != 0) {\n      if (((paVar5->flags ^ uVar13) & 0x183841b) == 0) {\n        *(bfd_vma *)((long)sec->used_by_bfd + 8) = attr;\n      }\n      else {\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar7,name);\n      }\n      if (((uVar13 & 0x800000) != 0) && (paVar5->entsize != entsize)) {\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar7,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  uint uVar3;\n  uint uVar4;\n  segT paVar5;\n  long lVar6;\n  char *pcVar7;\n  ulong uVar8;\n  section_stack *psVar9;\n  segT sec;\n  symbolS *psVar10;\n  char cVar11;\n  subsegT sVar12;\n  uint uVar13;\n  byte *pbVar14;\n  byte *pbVar15;\n  uint uVar16;\n  bool bVar17;\n  bool bVar18;\n  bool bVar19;\n  byte bVar20;\n  section_match match;\n  \n  bVar20 = 0;\n  paVar5 = now_seg;\n  sVar12 = now_subseg;\n  if (push != 0) {\n    psVar9 = (section_stack *)xmalloc(0x20);\n    paVar5 = now_seg;\n    psVar2 = psVar9;\n    psVar9->next = section_stack;\n    section_stack = psVar2;\n    psVar9->seg = paVar5;\n    psVar9->prev_seg = previous_section;\n    sVar12 = now_subseg;\n    psVar9->prev_subseg = previous_subsection;\n    psVar9->subseg = sVar12;\n  }\n  previous_subsection = sVar12;\n  previous_section = paVar5;\n  match.group_name = group_name;\n  match.info = info;\n  paVar5 = (segT)bfd_get_section_by_name_if(stdoutput,name,get_section,&match);\n  if (paVar5 == (segT)0x0) {\n    sec = subseg_force_new(name,0);\n  }\n  else {\n    subseg_set(paVar5,0);\n    sec = paVar5;\n  }\n  lVar6 = (**(code **)((long)stdoutput->xvec->backend_data + 0xa0))(stdoutput,sec);\n  if (lVar6 == 0) {\nLAB_001414e6:\n    uVar3 = (uint)attr;\n    if ((uVar3 & 0x1000002) == 0x1000000) {\n      pcVar7 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar7,name);\n    }\n    uVar13 = (uint)(attr >> 1) & 1;\n    uVar4 = uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n            uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000;\n    uVar13 = uVar13 & type != 8;\nLAB_00141553:\n    uVar16 = 4;\n    if ((uVar3 & 1) == 0) goto LAB_001416d0;\n  }\n  else {\n    uVar13 = *(uint *)(lVar6 + 0x10);\n    if ((type == 0) || (type == uVar13)) {\nLAB_001414dd:\n      type = uVar13;\n      if (paVar5 != (segT)0x0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar13 - 0xe < 3) || (paVar5 != (segT)0x0)) {\n        pcVar7 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n        uVar13 = *(uint *)(lVar6 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar13 != 7) && (type < 0x70000000)) {\n        pcVar7 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n      }\n    }\n    uVar8 = ~*(ulong *)(lVar6 + 0x18) & attr;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_001416b8:\n      attr = attr | *(ulong *)(lVar6 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar6 + 0x10) == 7) {\n      if ((attr - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar6 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (group_name == (char *)0x0) {\nLAB_00141661:\n          pcVar7 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar7,name);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar6 + 0xc) == -2) {\nLAB_001416a3:\n      if ((name[*(uint *)(lVar6 + 8)] == '.') && ((uVar8 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar17 = attr < 2;\n    bVar19 = attr == 2;\n    if (!bVar19) {\n      bVar17 = attr < 4;\n      bVar19 = attr == 4;\n      if (!bVar19) goto LAB_00141658;\n      lVar6 = 0x10;\n      pbVar14 = (byte *)name;\n      pbVar15 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar17 = *pbVar14 < *pbVar15;\n        bVar19 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      cVar11 = (!bVar17 && !bVar19) - bVar17;\n      uVar13 = (uint)cVar11;\n      if (cVar11 == '\0') {\n        uVar4 = 0x10;\n        uVar16 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (group_name == (char *)0x0) goto LAB_00141661;\n      uVar3 = (uint)attr;\n      uVar13 = (uint)(attr >> 1) & 1;\n      uVar4 = uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n              uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000;\n      uVar13 = type != 8 & uVar13;\n      goto LAB_00141553;\n    }\n    lVar6 = 8;\n    pbVar14 = (byte *)name;\n    pbVar15 = (byte *)".interp";\n    do {\n      if (lVar6 == 0) break;\n      lVar6 = lVar6 + -1;\n      bVar17 = *pbVar14 < *pbVar15;\n      bVar19 = *pbVar14 == *pbVar15;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n    } while (bVar19);\n    bVar18 = false;\n    bVar17 = (!bVar17 && !bVar19) == bVar17;\n    if (!bVar17) {\n      lVar6 = 8;\n      pbVar14 = (byte *)name;\n      pbVar15 = (byte *)".strtab";\n      do {\n        if (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar18 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      } while (bVar17);\n      bVar19 = false;\n      bVar17 = (!bVar18 && !bVar17) == bVar18;\n      if (!bVar17) {\n        lVar6 = 8;\n        pbVar14 = (byte *)name;\n        pbVar15 = (byte *)".symtab";\n        do {\n          if (lVar6 == 0) break;\n          lVar6 = lVar6 + -1;\n          bVar19 = *pbVar14 < *pbVar15;\n          bVar17 = *pbVar14 == *pbVar15;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n        } while (bVar17);\n        if ((!bVar19 && !bVar17) != bVar19) goto LAB_001418d2;\n      }\n    }\n    uVar4 = 1;\n    uVar13 = (uint)(type != 8);\nLAB_001416d0:\n    uVar16 = 0xc;\n  }\n  uVar13 = uVar13 * 2;\nLAB_00141567:\n  uVar13 = uVar16 | uVar4 | uVar13;\n  if (linkonce != 0) {\n    uVar13 = uVar13 | 0x20000;\n  }\n  if (paVar5 == (segT)0x0) {\n    if (type == 0) {\n      type = bfd_elf_get_default_section_type(uVar13);\n    }\n    pvVar1 = sec->used_by_bfd;\n    *(uint *)((long)pvVar1 + 4) = type;\n    *(bfd_vma *)((long)pvVar1 + 8) = attr;\n    *(uint *)((long)pvVar1 + 0x2c) = info;\n    if (type == 8) {\n      pbVar14 = (byte *)((long)sec->userdata + 8);\n      *pbVar14 = *pbVar14 | 2;\n    }\n    bfd_set_section_flags(stdoutput,sec,uVar13);\n    if ((uVar13 & 0x800000) != 0) {\n      sec->entsize = entsize;\n    }\n    *(char **)((long)sec->used_by_bfd + 0xb0) = group_name;\n    psVar10 = symbol_find(name);\n    if (psVar10 != (symbolS *)0x0) {\n      symbol_set_bfdsym(psVar10,sec->symbol);\n      return;\n    }\n    psVar10 = section_symbol(sec);\n    symbol_table_insert(psVar10);\n  }\n  else {\n    if ((type != 0) && (*(uint *)((long)paVar5->used_by_bfd + 4) != type)) {\n      pcVar7 = (char *)dcgettext(0,"ignoring changed section type for %s",5);\n      as_warn(pcVar7,name);\n    }\n    if (attr != 0) {\n      if (((paVar5->flags ^ uVar13) & 0x183841b) == 0) {\n        *(bfd_vma *)((long)sec->used_by_bfd + 8) = attr;\n      }\n      else {\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar7,name);\n      }\n      if (((uVar13 & 0x800000) != 0) && (paVar5->entsize != entsize)) {\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar7,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 "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "segT paVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "section_stack *psVar9;" type_identifier (pointer_declarator "*psVar9" * identifier) ;) (declaration "segT sec;" type_identifier identifier ;) (declaration "symbolS *psVar10;" type_identifier (pointer_declarator "*psVar10" * identifier) ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "subsegT sVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "bool bVar19;" primitive_type identifier ;) (declaration "byte bVar20;" type_identifier identifier ;) (declaration "section_match match;" type_identifier identifier ;) (expression_statement "bVar20 = 0;" (assignment_expression "bVar20 = 0" identifier = number_literal) ;) (expression_statement "paVar5 = now_seg;" (assignment_expression "paVar5 = now_seg" identifier = identifier) ;) (expression_statement "sVar12 = now_subseg;" (assignment_expression "sVar12 = now_subseg" identifier = identifier) ;) (if_statement "if (push != 0) {\n    psVar9 = (section_stack *)xmalloc(0x20);\n    paVar5 = now_seg;\n    psVar2 = psVar9;\n    psVar9->next = section_stack;\n    section_stack = psVar2;\n    psVar9->seg = paVar5;\n    psVar9->prev_seg = previous_section;\n    sVar12 = now_subseg;\n    psVar9->prev_subseg = previous_subsection;\n    psVar9->subseg = sVar12;\n  }" if (parenthesized_expression "(push != 0)" ( (binary_expression "push != 0" identifier != number_literal) )) (compound_statement "{\n    psVar9 = (section_stack *)xmalloc(0x20);\n    paVar5 = now_seg;\n    psVar2 = psVar9;\n    psVar9->next = section_stack;\n    section_stack = psVar2;\n    psVar9->seg = paVar5;\n    psVar9->prev_seg = previous_section;\n    sVar12 = now_subseg;\n    psVar9->prev_subseg = previous_subsection;\n    psVar9->subseg = sVar12;\n  }" { (expression_statement "psVar9 = (section_stack *)xmalloc(0x20);" (assignment_expression "psVar9 = (section_stack *)xmalloc(0x20)" identifier = (cast_expression "(section_stack *)xmalloc(0x20)" ( (type_descriptor "section_stack *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "paVar5 = now_seg;" (assignment_expression "paVar5 = now_seg" identifier = identifier) ;) (expression_statement "psVar2 = psVar9;" (assignment_expression "psVar2 = psVar9" identifier = identifier) ;) (expression_statement "psVar9->next = section_stack;" (assignment_expression "psVar9->next = section_stack" (field_expression "psVar9->next" identifier -> field_identifier) = identifier) ;) (expression_statement "section_stack = psVar2;" (assignment_expression "section_stack = psVar2" identifier = identifier) ;) (expression_statement "psVar9->seg = paVar5;" (assignment_expression "psVar9->seg = paVar5" (field_expression "psVar9->seg" identifier -> field_identifier) = identifier) ;) (expression_statement "psVar9->prev_seg = previous_section;" (assignment_expression "psVar9->prev_seg = previous_section" (field_expression "psVar9->prev_seg" identifier -> field_identifier) = identifier) ;) (expression_statement "sVar12 = now_subseg;" (assignment_expression "sVar12 = now_subseg" identifier = identifier) ;) (expression_statement "psVar9->prev_subseg = previous_subsection;" (assignment_expression "psVar9->prev_subseg = previous_subsection" (field_expression "psVar9->prev_subseg" identifier -> field_identifier) = identifier) ;) (expression_statement "psVar9->subseg = sVar12;" (assignment_expression "psVar9->subseg = sVar12" (field_expression "psVar9->subseg" identifier -> field_identifier) = identifier) ;) })) (expression_statement "previous_subsection = sVar12;" (assignment_expression "previous_subsection = sVar12" identifier = identifier) ;) (expression_statement "previous_section = paVar5;" (assignment_expression "previous_section = paVar5" 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 "paVar5 = (segT)bfd_get_section_by_name_if(stdoutput,name,get_section,&match);" (assignment_expression "paVar5 = (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 (paVar5 == (segT)0x0) {\n    sec = subseg_force_new(name,0);\n  }\n  else {\n    subseg_set(paVar5,0);\n    sec = paVar5;\n  }" if (parenthesized_expression "(paVar5 == (segT)0x0)" ( (binary_expression "paVar5 == (segT)0x0" identifier == (cast_expression "(segT)0x0" ( (type_descriptor "segT" type_identifier) ) number_literal)) )) (compound_statement "{\n    sec = subseg_force_new(name,0);\n  }" { (expression_statement "sec = subseg_force_new(name,0);" (assignment_expression "sec = 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(paVar5,0);\n    sec = paVar5;\n  }" else (compound_statement "{\n    subseg_set(paVar5,0);\n    sec = paVar5;\n  }" { (expression_statement "subseg_set(paVar5,0);" (call_expression "subseg_set(paVar5,0)" identifier (argument_list "(paVar5,0)" ( identifier , number_literal ))) ;) (expression_statement "sec = paVar5;" (assignment_expression "sec = paVar5" identifier = identifier) ;) }))) (expression_statement "lVar6 = (**(code **)((long)stdoutput->xvec->backend_data + 0xa0))(stdoutput,sec);" (assignment_expression "lVar6 = (**(code **)((long)stdoutput->xvec->backend_data + 0xa0))(stdoutput,sec)" identifier = (call_expression "(**(code **)((long)stdoutput->xvec->backend_data + 0xa0))(stdoutput,sec)" (parenthesized_expression "(**(code **)((long)stdoutput->xvec->backend_data + 0xa0))" ( (pointer_expression "**(code **)((long)stdoutput->xvec->backend_data + 0xa0)" * (pointer_expression "*(code **)((long)stdoutput->xvec->backend_data + 0xa0)" * (cast_expression "(code **)((long)stdoutput->xvec->backend_data + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)stdoutput->xvec->backend_data + 0xa0)" ( (binary_expression "(long)stdoutput->xvec->backend_data + 0xa0" (cast_expression "(long)stdoutput->xvec->backend_data" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "stdoutput->xvec->backend_data" (field_expression "stdoutput->xvec" identifier -> field_identifier) -> field_identifier)) + number_literal) ))))) )) (argument_list "(stdoutput,sec)" ( identifier , identifier )))) ;) (if_statement "if (lVar6 == 0) {\nLAB_001414e6:\n    uVar3 = (uint)attr;\n    if ((uVar3 & 0x1000002) == 0x1000000) {\n      pcVar7 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar7,name);\n    }\n    uVar13 = (uint)(attr >> 1) & 1;\n    uVar4 = uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n            uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000;\n    uVar13 = uVar13 & type != 8;\nLAB_00141553:\n    uVar16 = 4;\n    if ((uVar3 & 1) == 0) goto LAB_001416d0;\n  }\n  else {\n    uVar13 = *(uint *)(lVar6 + 0x10);\n    if ((type == 0) || (type == uVar13)) {\nLAB_001414dd:\n      type = uVar13;\n      if (paVar5 != (segT)0x0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar13 - 0xe < 3) || (paVar5 != (segT)0x0)) {\n        pcVar7 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n        uVar13 = *(uint *)(lVar6 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar13 != 7) && (type < 0x70000000)) {\n        pcVar7 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n      }\n    }\n    uVar8 = ~*(ulong *)(lVar6 + 0x18) & attr;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_001416b8:\n      attr = attr | *(ulong *)(lVar6 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar6 + 0x10) == 7) {\n      if ((attr - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar6 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (group_name == (char *)0x0) {\nLAB_00141661:\n          pcVar7 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar7,name);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar6 + 0xc) == -2) {\nLAB_001416a3:\n      if ((name[*(uint *)(lVar6 + 8)] == '.') && ((uVar8 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar17 = attr < 2;\n    bVar19 = attr == 2;\n    if (!bVar19) {\n      bVar17 = attr < 4;\n      bVar19 = attr == 4;\n      if (!bVar19) goto LAB_00141658;\n      lVar6 = 0x10;\n      pbVar14 = (byte *)name;\n      pbVar15 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar17 = *pbVar14 < *pbVar15;\n        bVar19 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      cVar11 = (!bVar17 && !bVar19) - bVar17;\n      uVar13 = (uint)cVar11;\n      if (cVar11 == '\0') {\n        uVar4 = 0x10;\n        uVar16 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (group_name == (char *)0x0) goto LAB_00141661;\n      uVar3 = (uint)attr;\n      uVar13 = (uint)(attr >> 1) & 1;\n      uVar4 = uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n              uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000;\n      uVar13 = type != 8 & uVar13;\n      goto LAB_00141553;\n    }\n    lVar6 = 8;\n    pbVar14 = (byte *)name;\n    pbVar15 = (byte *)".interp";\n    do {\n      if (lVar6 == 0) break;\n      lVar6 = lVar6 + -1;\n      bVar17 = *pbVar14 < *pbVar15;\n      bVar19 = *pbVar14 == *pbVar15;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n    } while (bVar19);\n    bVar18 = false;\n    bVar17 = (!bVar17 && !bVar19) == bVar17;\n    if (!bVar17) {\n      lVar6 = 8;\n      pbVar14 = (byte *)name;\n      pbVar15 = (byte *)".strtab";\n      do {\n        if (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar18 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      } while (bVar17);\n      bVar19 = false;\n      bVar17 = (!bVar18 && !bVar17) == bVar18;\n      if (!bVar17) {\n        lVar6 = 8;\n        pbVar14 = (byte *)name;\n        pbVar15 = (byte *)".symtab";\n        do {\n          if (lVar6 == 0) break;\n          lVar6 = lVar6 + -1;\n          bVar19 = *pbVar14 < *pbVar15;\n          bVar17 = *pbVar14 == *pbVar15;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n        } while (bVar17);\n        if ((!bVar19 && !bVar17) != bVar19) goto LAB_001418d2;\n      }\n    }\n    uVar4 = 1;\n    uVar13 = (uint)(type != 8);\nLAB_001416d0:\n    uVar16 = 0xc;\n  }" if (parenthesized_expression "(lVar6 == 0)" ( (binary_expression "lVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001414e6:\n    uVar3 = (uint)attr;\n    if ((uVar3 & 0x1000002) == 0x1000000) {\n      pcVar7 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar7,name);\n    }\n    uVar13 = (uint)(attr >> 1) & 1;\n    uVar4 = uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n            uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000;\n    uVar13 = uVar13 & type != 8;\nLAB_00141553:\n    uVar16 = 4;\n    if ((uVar3 & 1) == 0) goto LAB_001416d0;\n  }" { (labeled_statement "LAB_001414e6:\n    uVar3 = (uint)attr;" statement_identifier : (expression_statement "uVar3 = (uint)attr;" (assignment_expression "uVar3 = (uint)attr" identifier = (cast_expression "(uint)attr" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (if_statement "if ((uVar3 & 0x1000002) == 0x1000000) {\n      pcVar7 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar7,name);\n    }" if (parenthesized_expression "((uVar3 & 0x1000002) == 0x1000000)" ( (binary_expression "(uVar3 & 0x1000002) == 0x1000000" (parenthesized_expression "(uVar3 & 0x1000002)" ( (binary_expression "uVar3 & 0x1000002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      pcVar7 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    /* WARNING: Subroutine does not return */\n      as_fatal(pcVar7,name);\n    }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);" (assignment_expression "pcVar7 = (char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5)" identifier (argument_list "(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5)" ( number_literal , (string_literal ""SHF_ALLOC isn\'t set for GNU_MBIND section: %s"" " string_content escape_sequence string_content ") , number_literal ))))) ;) comment (expression_statement "as_fatal(pcVar7,name);" (call_expression "as_fatal(pcVar7,name)" identifier (argument_list "(pcVar7,name)" ( identifier , identifier ))) ;) })) (expression_statement "uVar13 = (uint)(attr >> 1) & 1;" (assignment_expression "uVar13 = (uint)(attr >> 1) & 1" identifier = (binary_expression "(uint)(attr >> 1) & 1" (call_expression "(uint)(attr >> 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(attr >> 1)" ( (binary_expression "attr >> 1" identifier >> number_literal) ))) & number_literal)) ;) (expression_statement "uVar4 = uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n            uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000;" (assignment_expression "uVar4 = uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n            uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000" identifier = (binary_expression "uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n            uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000" (binary_expression "uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n            uVar3 << 0x13 & 0x1000000" (binary_expression "uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000" (binary_expression "uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400" (binary_expression "uVar3 * 4 & 0x10 | uVar13" (binary_expression "uVar3 * 4 & 0x10" (binary_expression "uVar3 * 4" identifier * number_literal) & number_literal) | identifier) | (binary_expression "uVar3 & 0x400" identifier & number_literal)) | (binary_expression "uVar3 << 0x13 & 0x800000" (binary_expression "uVar3 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "uVar3 << 0x13 & 0x1000000" (binary_expression "uVar3 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "(uint)(attr >> 0x10) & 0x8000" (call_expression "(uint)(attr >> 0x10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(attr >> 0x10)" ( (binary_expression "attr >> 0x10" identifier >> number_literal) ))) & number_literal))) ;) (expression_statement "uVar13 = uVar13 & type != 8;" (assignment_expression "uVar13 = uVar13 & type != 8" identifier = (binary_expression "uVar13 & type != 8" identifier & (binary_expression "type != 8" identifier != number_literal))) ;) (labeled_statement "LAB_00141553:\n    uVar16 = 4;" statement_identifier : (expression_statement "uVar16 = 4;" (assignment_expression "uVar16 = 4" identifier = number_literal) ;)) (if_statement "if ((uVar3 & 1) == 0) goto LAB_001416d0;" if (parenthesized_expression "((uVar3 & 1) == 0)" ( (binary_expression "(uVar3 & 1) == 0" (parenthesized_expression "(uVar3 & 1)" ( (binary_expression "uVar3 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001416d0;" goto statement_identifier ;)) }) (else_clause "else {\n    uVar13 = *(uint *)(lVar6 + 0x10);\n    if ((type == 0) || (type == uVar13)) {\nLAB_001414dd:\n      type = uVar13;\n      if (paVar5 != (segT)0x0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar13 - 0xe < 3) || (paVar5 != (segT)0x0)) {\n        pcVar7 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n        uVar13 = *(uint *)(lVar6 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar13 != 7) && (type < 0x70000000)) {\n        pcVar7 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n      }\n    }\n    uVar8 = ~*(ulong *)(lVar6 + 0x18) & attr;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_001416b8:\n      attr = attr | *(ulong *)(lVar6 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar6 + 0x10) == 7) {\n      if ((attr - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar6 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (group_name == (char *)0x0) {\nLAB_00141661:\n          pcVar7 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar7,name);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar6 + 0xc) == -2) {\nLAB_001416a3:\n      if ((name[*(uint *)(lVar6 + 8)] == '.') && ((uVar8 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar17 = attr < 2;\n    bVar19 = attr == 2;\n    if (!bVar19) {\n      bVar17 = attr < 4;\n      bVar19 = attr == 4;\n      if (!bVar19) goto LAB_00141658;\n      lVar6 = 0x10;\n      pbVar14 = (byte *)name;\n      pbVar15 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar17 = *pbVar14 < *pbVar15;\n        bVar19 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      cVar11 = (!bVar17 && !bVar19) - bVar17;\n      uVar13 = (uint)cVar11;\n      if (cVar11 == '\0') {\n        uVar4 = 0x10;\n        uVar16 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (group_name == (char *)0x0) goto LAB_00141661;\n      uVar3 = (uint)attr;\n      uVar13 = (uint)(attr >> 1) & 1;\n      uVar4 = uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n              uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000;\n      uVar13 = type != 8 & uVar13;\n      goto LAB_00141553;\n    }\n    lVar6 = 8;\n    pbVar14 = (byte *)name;\n    pbVar15 = (byte *)".interp";\n    do {\n      if (lVar6 == 0) break;\n      lVar6 = lVar6 + -1;\n      bVar17 = *pbVar14 < *pbVar15;\n      bVar19 = *pbVar14 == *pbVar15;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n    } while (bVar19);\n    bVar18 = false;\n    bVar17 = (!bVar17 && !bVar19) == bVar17;\n    if (!bVar17) {\n      lVar6 = 8;\n      pbVar14 = (byte *)name;\n      pbVar15 = (byte *)".strtab";\n      do {\n        if (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar18 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      } while (bVar17);\n      bVar19 = false;\n      bVar17 = (!bVar18 && !bVar17) == bVar18;\n      if (!bVar17) {\n        lVar6 = 8;\n        pbVar14 = (byte *)name;\n        pbVar15 = (byte *)".symtab";\n        do {\n          if (lVar6 == 0) break;\n          lVar6 = lVar6 + -1;\n          bVar19 = *pbVar14 < *pbVar15;\n          bVar17 = *pbVar14 == *pbVar15;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n        } while (bVar17);\n        if ((!bVar19 && !bVar17) != bVar19) goto LAB_001418d2;\n      }\n    }\n    uVar4 = 1;\n    uVar13 = (uint)(type != 8);\nLAB_001416d0:\n    uVar16 = 0xc;\n  }" else (compound_statement "{\n    uVar13 = *(uint *)(lVar6 + 0x10);\n    if ((type == 0) || (type == uVar13)) {\nLAB_001414dd:\n      type = uVar13;\n      if (paVar5 != (segT)0x0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar13 - 0xe < 3) || (paVar5 != (segT)0x0)) {\n        pcVar7 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n        uVar13 = *(uint *)(lVar6 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar13 != 7) && (type < 0x70000000)) {\n        pcVar7 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n      }\n    }\n    uVar8 = ~*(ulong *)(lVar6 + 0x18) & attr;\n    if ((uVar8 & 0xfffff) == 0) {\nLAB_001416b8:\n      attr = attr | *(ulong *)(lVar6 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar6 + 0x10) == 7) {\n      if ((attr - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar6 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (group_name == (char *)0x0) {\nLAB_00141661:\n          pcVar7 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar7,name);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar6 + 0xc) == -2) {\nLAB_001416a3:\n      if ((name[*(uint *)(lVar6 + 8)] == '.') && ((uVar8 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar17 = attr < 2;\n    bVar19 = attr == 2;\n    if (!bVar19) {\n      bVar17 = attr < 4;\n      bVar19 = attr == 4;\n      if (!bVar19) goto LAB_00141658;\n      lVar6 = 0x10;\n      pbVar14 = (byte *)name;\n      pbVar15 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar17 = *pbVar14 < *pbVar15;\n        bVar19 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      cVar11 = (!bVar17 && !bVar19) - bVar17;\n      uVar13 = (uint)cVar11;\n      if (cVar11 == '\0') {\n        uVar4 = 0x10;\n        uVar16 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (group_name == (char *)0x0) goto LAB_00141661;\n      uVar3 = (uint)attr;\n      uVar13 = (uint)(attr >> 1) & 1;\n      uVar4 = uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n              uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000;\n      uVar13 = type != 8 & uVar13;\n      goto LAB_00141553;\n    }\n    lVar6 = 8;\n    pbVar14 = (byte *)name;\n    pbVar15 = (byte *)".interp";\n    do {\n      if (lVar6 == 0) break;\n      lVar6 = lVar6 + -1;\n      bVar17 = *pbVar14 < *pbVar15;\n      bVar19 = *pbVar14 == *pbVar15;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n    } while (bVar19);\n    bVar18 = false;\n    bVar17 = (!bVar17 && !bVar19) == bVar17;\n    if (!bVar17) {\n      lVar6 = 8;\n      pbVar14 = (byte *)name;\n      pbVar15 = (byte *)".strtab";\n      do {\n        if (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar18 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      } while (bVar17);\n      bVar19 = false;\n      bVar17 = (!bVar18 && !bVar17) == bVar18;\n      if (!bVar17) {\n        lVar6 = 8;\n        pbVar14 = (byte *)name;\n        pbVar15 = (byte *)".symtab";\n        do {\n          if (lVar6 == 0) break;\n          lVar6 = lVar6 + -1;\n          bVar19 = *pbVar14 < *pbVar15;\n          bVar17 = *pbVar14 == *pbVar15;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n        } while (bVar17);\n        if ((!bVar19 && !bVar17) != bVar19) goto LAB_001418d2;\n      }\n    }\n    uVar4 = 1;\n    uVar13 = (uint)(type != 8);\nLAB_001416d0:\n    uVar16 = 0xc;\n  }" { (expression_statement "uVar13 = *(uint *)(lVar6 + 0x10);" (assignment_expression "uVar13 = *(uint *)(lVar6 + 0x10)" identifier = (pointer_expression "*(uint *)(lVar6 + 0x10)" * (cast_expression "(uint *)(lVar6 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x10)" ( (binary_expression "lVar6 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((type == 0) || (type == uVar13)) {\nLAB_001414dd:\n      type = uVar13;\n      if (paVar5 != (segT)0x0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar13 - 0xe < 3) || (paVar5 != (segT)0x0)) {\n        pcVar7 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n        uVar13 = *(uint *)(lVar6 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar13 != 7) && (type < 0x70000000)) {\n        pcVar7 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n      }\n    }" if (parenthesized_expression "((type == 0) || (type == uVar13))" ( (binary_expression "(type == 0) || (type == uVar13)" (parenthesized_expression "(type == 0)" ( (binary_expression "type == 0" identifier == number_literal) )) || (parenthesized_expression "(type == uVar13)" ( (binary_expression "type == uVar13" identifier == identifier) ))) )) (compound_statement "{\nLAB_001414dd:\n      type = uVar13;\n      if (paVar5 != (segT)0x0) goto LAB_001414e6;\n    }" { (labeled_statement "LAB_001414dd:\n      type = uVar13;" statement_identifier : (expression_statement "type = uVar13;" (assignment_expression "type = uVar13" identifier = identifier) ;)) (if_statement "if (paVar5 != (segT)0x0) goto LAB_001414e6;" if (parenthesized_expression "(paVar5 != (segT)0x0)" ( (binary_expression "paVar5 != (segT)0x0" identifier != (cast_expression "(segT)0x0" ( (type_descriptor "segT" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_001414e6;" goto statement_identifier ;)) }) (else_clause "else {\n      if ((uVar13 - 0xe < 3) || (paVar5 != (segT)0x0)) {\n        pcVar7 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n        uVar13 = *(uint *)(lVar6 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar13 != 7) && (type < 0x70000000)) {\n        pcVar7 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n      }\n    }" else (compound_statement "{\n      if ((uVar13 - 0xe < 3) || (paVar5 != (segT)0x0)) {\n        pcVar7 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n        uVar13 = *(uint *)(lVar6 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar13 != 7) && (type < 0x70000000)) {\n        pcVar7 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n      }\n    }" { (if_statement "if ((uVar13 - 0xe < 3) || (paVar5 != (segT)0x0)) {\n        pcVar7 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n        uVar13 = *(uint *)(lVar6 + 0x10);\n        goto LAB_001414dd;\n      }" if (parenthesized_expression "((uVar13 - 0xe < 3) || (paVar5 != (segT)0x0))" ( (binary_expression "(uVar13 - 0xe < 3) || (paVar5 != (segT)0x0)" (parenthesized_expression "(uVar13 - 0xe < 3)" ( (binary_expression "uVar13 - 0xe < 3" (binary_expression "uVar13 - 0xe" identifier - number_literal) < number_literal) )) || (parenthesized_expression "(paVar5 != (segT)0x0)" ( (binary_expression "paVar5 != (segT)0x0" identifier != (cast_expression "(segT)0x0" ( (type_descriptor "segT" type_identifier) ) number_literal)) ))) )) (compound_statement "{\n        pcVar7 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n        uVar13 = *(uint *)(lVar6 + 0x10);\n        goto LAB_001414dd;\n      }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"ignoring incorrect section type for %s",5);" (assignment_expression "pcVar7 = (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(pcVar7,name);" (call_expression "as_warn(pcVar7,name)" identifier (argument_list "(pcVar7,name)" ( identifier , identifier ))) ;) (expression_statement "uVar13 = *(uint *)(lVar6 + 0x10);" (assignment_expression "uVar13 = *(uint *)(lVar6 + 0x10)" identifier = (pointer_expression "*(uint *)(lVar6 + 0x10)" * (cast_expression "(uint *)(lVar6 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x10)" ( (binary_expression "lVar6 + 0x10" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001414dd;" goto statement_identifier ;) })) (if_statement "if ((uVar13 != 7) && (type < 0x70000000)) {\n        pcVar7 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n      }" if (parenthesized_expression "((uVar13 != 7) && (type < 0x70000000))" ( (binary_expression "(uVar13 != 7) && (type < 0x70000000)" (parenthesized_expression "(uVar13 != 7)" ( (binary_expression "uVar13 != 7" identifier != number_literal) )) && (parenthesized_expression "(type < 0x70000000)" ( (binary_expression "type < 0x70000000" identifier < number_literal) ))) )) (compound_statement "{\n        pcVar7 = (char *)dcgettext(0,"setting incorrect section type for %s",5);\n        as_warn(pcVar7,name);\n      }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"setting incorrect section type for %s",5);" (assignment_expression "pcVar7 = (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(pcVar7,name);" (call_expression "as_warn(pcVar7,name)" identifier (argument_list "(pcVar7,name)" ( identifier , identifier ))) ;) })) }))) (expression_statement "uVar8 = ~*(ulong *)(lVar6 + 0x18) & attr;" (assignment_expression "uVar8 = ~*(ulong *)(lVar6 + 0x18) & attr" identifier = (binary_expression "~*(ulong *)(lVar6 + 0x18) & attr" (unary_expression "~*(ulong *)(lVar6 + 0x18)" ~ (pointer_expression "*(ulong *)(lVar6 + 0x18)" * (cast_expression "(ulong *)(lVar6 + 0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) ))))) & identifier)) ;) (if_statement "if ((uVar8 & 0xfffff) == 0) {\nLAB_001416b8:\n      attr = attr | *(ulong *)(lVar6 + 0x18);\n      goto LAB_001414e6;\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_001416b8:\n      attr = attr | *(ulong *)(lVar6 + 0x18);\n      goto LAB_001414e6;\n    }" { (labeled_statement "LAB_001416b8:\n      attr = attr | *(ulong *)(lVar6 + 0x18);" statement_identifier : (expression_statement "attr = attr | *(ulong *)(lVar6 + 0x18);" (assignment_expression "attr = attr | *(ulong *)(lVar6 + 0x18)" identifier = (binary_expression "attr | *(ulong *)(lVar6 + 0x18)" identifier | (pointer_expression "*(ulong *)(lVar6 + 0x18)" * (cast_expression "(ulong *)(lVar6 + 0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x18)" ( (binary_expression "lVar6 + 0x18" identifier + number_literal) )))))) ;)) (goto_statement "goto LAB_001414e6;" goto statement_identifier ;) })) (if_statement "if (*(int *)(lVar6 + 0x10) == 7) {\n      if ((attr - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar6 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (group_name == (char *)0x0) {\nLAB_00141661:\n          pcVar7 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar7,name);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }" if (parenthesized_expression "(*(int *)(lVar6 + 0x10) == 7)" ( (binary_expression "*(int *)(lVar6 + 0x10) == 7" (pointer_expression "*(int *)(lVar6 + 0x10)" * (cast_expression "(int *)(lVar6 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0x10)" ( (binary_expression "lVar6 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if ((attr - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar6 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (group_name == (char *)0x0) {\nLAB_00141661:\n          pcVar7 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar7,name);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }" { (if_statement "if ((attr - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar6 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (group_name == (char *)0x0) {\nLAB_00141661:\n          pcVar7 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar7,name);\n        }\n        goto LAB_001414e6;\n      }" if (parenthesized_expression "((attr - 2 & 0xfffffffffffffffd) != 0)" ( (binary_expression "(attr - 2 & 0xfffffffffffffffd) != 0" (parenthesized_expression "(attr - 2 & 0xfffffffffffffffd)" ( (binary_expression "attr - 2 & 0xfffffffffffffffd" (binary_expression "attr - 2" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n        if (*(int *)(lVar6 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (group_name == (char *)0x0) {\nLAB_00141661:\n          pcVar7 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar7,name);\n        }\n        goto LAB_001414e6;\n      }" { (if_statement "if (*(int *)(lVar6 + 0xc) == -2) goto LAB_001416a3;" if (parenthesized_expression "(*(int *)(lVar6 + 0xc) == -2)" ( (binary_expression "*(int *)(lVar6 + 0xc) == -2" (pointer_expression "*(int *)(lVar6 + 0xc)" * (cast_expression "(int *)(lVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0xc)" ( (binary_expression "lVar6 + 0xc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_001416a3;" goto statement_identifier ;)) (labeled_statement "LAB_00141658:\n        if (group_name == (char *)0x0) {\nLAB_00141661:\n          pcVar7 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar7,name);\n        }" statement_identifier : (if_statement "if (group_name == (char *)0x0) {\nLAB_00141661:\n          pcVar7 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar7,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_00141661:\n          pcVar7 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);\n          as_warn(pcVar7,name);\n        }" { (labeled_statement "LAB_00141661:\n          pcVar7 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);" statement_identifier : (expression_statement "pcVar7 = (char *)dcgettext(0,"setting incorrect section attributes for %s",5);" (assignment_expression "pcVar7 = (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(pcVar7,name);" (call_expression "as_warn(pcVar7,name)" identifier (argument_list "(pcVar7,name)" ( identifier , identifier ))) ;) }))) (goto_statement "goto LAB_001414e6;" goto statement_identifier ;) })) (goto_statement "goto LAB_001416b8;" goto statement_identifier ;) })) (if_statement "if (*(int *)(lVar6 + 0xc) == -2) {\nLAB_001416a3:\n      if ((name[*(uint *)(lVar6 + 8)] == '.') && ((uVar8 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }" if (parenthesized_expression "(*(int *)(lVar6 + 0xc) == -2)" ( (binary_expression "*(int *)(lVar6 + 0xc) == -2" (pointer_expression "*(int *)(lVar6 + 0xc)" * (cast_expression "(int *)(lVar6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 0xc)" ( (binary_expression "lVar6 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_001416a3:\n      if ((name[*(uint *)(lVar6 + 8)] == '.') && ((uVar8 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }" { (labeled_statement "LAB_001416a3:\n      if ((name[*(uint *)(lVar6 + 8)] == '.') && ((uVar8 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;" statement_identifier : (if_statement "if ((name[*(uint *)(lVar6 + 8)] == '.') && ((uVar8 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;" if (parenthesized_expression "((name[*(uint *)(lVar6 + 8)] == '.') && ((uVar8 & 0xffffffffffffffcf) == 0))" ( (binary_expression "(name[*(uint *)(lVar6 + 8)] == '.') && ((uVar8 & 0xffffffffffffffcf) == 0)" (parenthesized_expression "(name[*(uint *)(lVar6 + 8)] == '.')" ( (binary_expression "name[*(uint *)(lVar6 + 8)] == '.'" (subscript_expression "name[*(uint *)(lVar6 + 8)]" identifier [ (pointer_expression "*(uint *)(lVar6 + 8)" * (cast_expression "(uint *)(lVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar6 + 8)" ( (binary_expression "lVar6 + 8" identifier + number_literal) )))) ]) == (char_literal "'.'" ' character ')) )) && (parenthesized_expression "((uVar8 & 0xffffffffffffffcf) == 0)" ( (binary_expression "(uVar8 & 0xffffffffffffffcf) == 0" (parenthesized_expression "(uVar8 & 0xffffffffffffffcf)" ( (binary_expression "uVar8 & 0xffffffffffffffcf" identifier & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_001416b8;" goto statement_identifier ;))) })) (expression_statement "bVar17 = attr < 2;" (assignment_expression "bVar17 = attr < 2" identifier = (binary_expression "attr < 2" identifier < number_literal)) ;) (expression_statement "bVar19 = attr == 2;" (assignment_expression "bVar19 = attr == 2" identifier = (binary_expression "attr == 2" identifier == number_literal)) ;) (if_statement "if (!bVar19) {\n      bVar17 = attr < 4;\n      bVar19 = attr == 4;\n      if (!bVar19) goto LAB_00141658;\n      lVar6 = 0x10;\n      pbVar14 = (byte *)name;\n      pbVar15 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar17 = *pbVar14 < *pbVar15;\n        bVar19 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      cVar11 = (!bVar17 && !bVar19) - bVar17;\n      uVar13 = (uint)cVar11;\n      if (cVar11 == '\0') {\n        uVar4 = 0x10;\n        uVar16 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (group_name == (char *)0x0) goto LAB_00141661;\n      uVar3 = (uint)attr;\n      uVar13 = (uint)(attr >> 1) & 1;\n      uVar4 = uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n              uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000;\n      uVar13 = type != 8 & uVar13;\n      goto LAB_00141553;\n    }" if (parenthesized_expression "(!bVar19)" ( (unary_expression "!bVar19" ! identifier) )) (compound_statement "{\n      bVar17 = attr < 4;\n      bVar19 = attr == 4;\n      if (!bVar19) goto LAB_00141658;\n      lVar6 = 0x10;\n      pbVar14 = (byte *)name;\n      pbVar15 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar17 = *pbVar14 < *pbVar15;\n        bVar19 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);\n      cVar11 = (!bVar17 && !bVar19) - bVar17;\n      uVar13 = (uint)cVar11;\n      if (cVar11 == '\0') {\n        uVar4 = 0x10;\n        uVar16 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (group_name == (char *)0x0) goto LAB_00141661;\n      uVar3 = (uint)attr;\n      uVar13 = (uint)(attr >> 1) & 1;\n      uVar4 = uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n              uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000;\n      uVar13 = type != 8 & uVar13;\n      goto LAB_00141553;\n    }" { (expression_statement "bVar17 = attr < 4;" (assignment_expression "bVar17 = attr < 4" identifier = (binary_expression "attr < 4" identifier < number_literal)) ;) (expression_statement "bVar19 = attr == 4;" (assignment_expression "bVar19 = attr == 4" identifier = (binary_expression "attr == 4" identifier == number_literal)) ;) (if_statement "if (!bVar19) goto LAB_00141658;" if (parenthesized_expression "(!bVar19)" ( (unary_expression "!bVar19" ! identifier) )) (goto_statement "goto LAB_00141658;" goto statement_identifier ;)) (expression_statement "lVar6 = 0x10;" (assignment_expression "lVar6 = 0x10" identifier = number_literal) ;) (expression_statement "pbVar14 = (byte *)name;" (assignment_expression "pbVar14 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar15 = (byte *)".note.GNU-stack";" (assignment_expression "pbVar15 = (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 (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar17 = *pbVar14 < *pbVar15;\n        bVar19 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      } while (bVar19);" do (compound_statement "{\n        if (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar17 = *pbVar14 < *pbVar15;\n        bVar19 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      }" { (if_statement "if (lVar6 == 0) break;" if (parenthesized_expression "(lVar6 == 0)" ( (binary_expression "lVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar6 = lVar6 + -1;" (assignment_expression "lVar6 = lVar6 + -1" identifier = (binary_expression "lVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar14 < *pbVar15;" (assignment_expression "bVar17 = *pbVar14 < *pbVar15" identifier = (binary_expression "*pbVar14 < *pbVar15" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar19 = *pbVar14 == *pbVar15;" (assignment_expression "bVar19 = *pbVar14 == *pbVar15" identifier = (binary_expression "*pbVar14 == *pbVar15" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar19)" ( identifier )) ;) (expression_statement "cVar11 = (!bVar17 && !bVar19) - bVar17;" (assignment_expression "cVar11 = (!bVar17 && !bVar19) - bVar17" identifier = (binary_expression "(!bVar17 && !bVar19) - bVar17" (parenthesized_expression "(!bVar17 && !bVar19)" ( (binary_expression "!bVar17 && !bVar19" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar19" ! identifier)) )) - identifier)) ;) (expression_statement "uVar13 = (uint)cVar11;" (assignment_expression "uVar13 = (uint)cVar11" identifier = (cast_expression "(uint)cVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (cVar11 == '\0') {\n        uVar4 = 0x10;\n        uVar16 = 0xc;\n        goto LAB_00141567;\n      }" if (parenthesized_expression "(cVar11 == '\0')" ( (binary_expression "cVar11 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar4 = 0x10;\n        uVar16 = 0xc;\n        goto LAB_00141567;\n      }" { (expression_statement "uVar4 = 0x10;" (assignment_expression "uVar4 = 0x10" identifier = number_literal) ;) (expression_statement "uVar16 = 0xc;" (assignment_expression "uVar16 = 0xc" identifier = number_literal) ;) (goto_statement "goto LAB_00141567;" goto statement_identifier ;) })) (labeled_statement "LAB_001418d2:\n      if (group_name == (char *)0x0) goto LAB_00141661;" statement_identifier : (if_statement "if (group_name == (char *)0x0) goto LAB_00141661;" 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_00141661;" goto statement_identifier ;))) (expression_statement "uVar3 = (uint)attr;" (assignment_expression "uVar3 = (uint)attr" identifier = (cast_expression "(uint)attr" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar13 = (uint)(attr >> 1) & 1;" (assignment_expression "uVar13 = (uint)(attr >> 1) & 1" identifier = (binary_expression "(uint)(attr >> 1) & 1" (call_expression "(uint)(attr >> 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(attr >> 1)" ( (binary_expression "attr >> 1" identifier >> number_literal) ))) & number_literal)) ;) (expression_statement "uVar4 = uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n              uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000;" (assignment_expression "uVar4 = uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n              uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000" identifier = (binary_expression "uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n              uVar3 << 0x13 & 0x1000000 | (uint)(attr >> 0x10) & 0x8000" (binary_expression "uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000 |\n              uVar3 << 0x13 & 0x1000000" (binary_expression "uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400 | uVar3 << 0x13 & 0x800000" (binary_expression "uVar3 * 4 & 0x10 | uVar13 | uVar3 & 0x400" (binary_expression "uVar3 * 4 & 0x10 | uVar13" (binary_expression "uVar3 * 4 & 0x10" (binary_expression "uVar3 * 4" identifier * number_literal) & number_literal) | identifier) | (binary_expression "uVar3 & 0x400" identifier & number_literal)) | (binary_expression "uVar3 << 0x13 & 0x800000" (binary_expression "uVar3 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "uVar3 << 0x13 & 0x1000000" (binary_expression "uVar3 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "(uint)(attr >> 0x10) & 0x8000" (call_expression "(uint)(attr >> 0x10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(attr >> 0x10)" ( (binary_expression "attr >> 0x10" identifier >> number_literal) ))) & number_literal))) ;) (expression_statement "uVar13 = type != 8 & uVar13;" (assignment_expression "uVar13 = type != 8 & uVar13" identifier = (binary_expression "type != 8 & uVar13" (binary_expression "type != 8" identifier != number_literal) & identifier)) ;) (goto_statement "goto LAB_00141553;" goto statement_identifier ;) })) (expression_statement "lVar6 = 8;" (assignment_expression "lVar6 = 8" identifier = number_literal) ;) (expression_statement "pbVar14 = (byte *)name;" (assignment_expression "pbVar14 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar15 = (byte *)".interp";" (assignment_expression "pbVar15 = (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 (lVar6 == 0) break;\n      lVar6 = lVar6 + -1;\n      bVar17 = *pbVar14 < *pbVar15;\n      bVar19 = *pbVar14 == *pbVar15;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n    } while (bVar19);" do (compound_statement "{\n      if (lVar6 == 0) break;\n      lVar6 = lVar6 + -1;\n      bVar17 = *pbVar14 < *pbVar15;\n      bVar19 = *pbVar14 == *pbVar15;\n      pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n      pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n    }" { (if_statement "if (lVar6 == 0) break;" if (parenthesized_expression "(lVar6 == 0)" ( (binary_expression "lVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar6 = lVar6 + -1;" (assignment_expression "lVar6 = lVar6 + -1" identifier = (binary_expression "lVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar14 < *pbVar15;" (assignment_expression "bVar17 = *pbVar14 < *pbVar15" identifier = (binary_expression "*pbVar14 < *pbVar15" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar19 = *pbVar14 == *pbVar15;" (assignment_expression "bVar19 = *pbVar14 == *pbVar15" identifier = (binary_expression "*pbVar14 == *pbVar15" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar19)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar17 = (!bVar17 && !bVar19) == bVar17;" (assignment_expression "bVar17 = (!bVar17 && !bVar19) == bVar17" identifier = (binary_expression "(!bVar17 && !bVar19) == bVar17" (parenthesized_expression "(!bVar17 && !bVar19)" ( (binary_expression "!bVar17 && !bVar19" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar19" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar17) {\n      lVar6 = 8;\n      pbVar14 = (byte *)name;\n      pbVar15 = (byte *)".strtab";\n      do {\n        if (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar18 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      } while (bVar17);\n      bVar19 = false;\n      bVar17 = (!bVar18 && !bVar17) == bVar18;\n      if (!bVar17) {\n        lVar6 = 8;\n        pbVar14 = (byte *)name;\n        pbVar15 = (byte *)".symtab";\n        do {\n          if (lVar6 == 0) break;\n          lVar6 = lVar6 + -1;\n          bVar19 = *pbVar14 < *pbVar15;\n          bVar17 = *pbVar14 == *pbVar15;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n        } while (bVar17);\n        if ((!bVar19 && !bVar17) != bVar19) goto LAB_001418d2;\n      }\n    }" if (parenthesized_expression "(!bVar17)" ( (unary_expression "!bVar17" ! identifier) )) (compound_statement "{\n      lVar6 = 8;\n      pbVar14 = (byte *)name;\n      pbVar15 = (byte *)".strtab";\n      do {\n        if (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar18 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      } while (bVar17);\n      bVar19 = false;\n      bVar17 = (!bVar18 && !bVar17) == bVar18;\n      if (!bVar17) {\n        lVar6 = 8;\n        pbVar14 = (byte *)name;\n        pbVar15 = (byte *)".symtab";\n        do {\n          if (lVar6 == 0) break;\n          lVar6 = lVar6 + -1;\n          bVar19 = *pbVar14 < *pbVar15;\n          bVar17 = *pbVar14 == *pbVar15;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n        } while (bVar17);\n        if ((!bVar19 && !bVar17) != bVar19) goto LAB_001418d2;\n      }\n    }" { (expression_statement "lVar6 = 8;" (assignment_expression "lVar6 = 8" identifier = number_literal) ;) (expression_statement "pbVar14 = (byte *)name;" (assignment_expression "pbVar14 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar15 = (byte *)".strtab";" (assignment_expression "pbVar15 = (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 (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar18 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      } while (bVar17);" do (compound_statement "{\n        if (lVar6 == 0) break;\n        lVar6 = lVar6 + -1;\n        bVar18 = *pbVar14 < *pbVar15;\n        bVar17 = *pbVar14 == *pbVar15;\n        pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n        pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n      }" { (if_statement "if (lVar6 == 0) break;" if (parenthesized_expression "(lVar6 == 0)" ( (binary_expression "lVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar6 = lVar6 + -1;" (assignment_expression "lVar6 = lVar6 + -1" identifier = (binary_expression "lVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar14 < *pbVar15;" (assignment_expression "bVar18 = *pbVar14 < *pbVar15" identifier = (binary_expression "*pbVar14 < *pbVar15" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar17 = *pbVar14 == *pbVar15;" (assignment_expression "bVar17 = *pbVar14 == *pbVar15" identifier = (binary_expression "*pbVar14 == *pbVar15" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (expression_statement "bVar19 = false;" (assignment_expression "bVar19 = false" identifier = false) ;) (expression_statement "bVar17 = (!bVar18 && !bVar17) == bVar18;" (assignment_expression "bVar17 = (!bVar18 && !bVar17) == bVar18" identifier = (binary_expression "(!bVar18 && !bVar17) == bVar18" (parenthesized_expression "(!bVar18 && !bVar17)" ( (binary_expression "!bVar18 && !bVar17" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar17) {\n        lVar6 = 8;\n        pbVar14 = (byte *)name;\n        pbVar15 = (byte *)".symtab";\n        do {\n          if (lVar6 == 0) break;\n          lVar6 = lVar6 + -1;\n          bVar19 = *pbVar14 < *pbVar15;\n          bVar17 = *pbVar14 == *pbVar15;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n        } while (bVar17);\n        if ((!bVar19 && !bVar17) != bVar19) goto LAB_001418d2;\n      }" if (parenthesized_expression "(!bVar17)" ( (unary_expression "!bVar17" ! identifier) )) (compound_statement "{\n        lVar6 = 8;\n        pbVar14 = (byte *)name;\n        pbVar15 = (byte *)".symtab";\n        do {\n          if (lVar6 == 0) break;\n          lVar6 = lVar6 + -1;\n          bVar19 = *pbVar14 < *pbVar15;\n          bVar17 = *pbVar14 == *pbVar15;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n        } while (bVar17);\n        if ((!bVar19 && !bVar17) != bVar19) goto LAB_001418d2;\n      }" { (expression_statement "lVar6 = 8;" (assignment_expression "lVar6 = 8" identifier = number_literal) ;) (expression_statement "pbVar14 = (byte *)name;" (assignment_expression "pbVar14 = (byte *)name" identifier = (cast_expression "(byte *)name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar15 = (byte *)".symtab";" (assignment_expression "pbVar15 = (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 (lVar6 == 0) break;\n          lVar6 = lVar6 + -1;\n          bVar19 = *pbVar14 < *pbVar15;\n          bVar17 = *pbVar14 == *pbVar15;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n        } while (bVar17);" do (compound_statement "{\n          if (lVar6 == 0) break;\n          lVar6 = lVar6 + -1;\n          bVar19 = *pbVar14 < *pbVar15;\n          bVar17 = *pbVar14 == *pbVar15;\n          pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;\n          pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;\n        }" { (if_statement "if (lVar6 == 0) break;" if (parenthesized_expression "(lVar6 == 0)" ( (binary_expression "lVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar6 = lVar6 + -1;" (assignment_expression "lVar6 = lVar6 + -1" identifier = (binary_expression "lVar6 + -1" identifier + number_literal)) ;) (expression_statement "bVar19 = *pbVar14 < *pbVar15;" (assignment_expression "bVar19 = *pbVar14 < *pbVar15" identifier = (binary_expression "*pbVar14 < *pbVar15" (pointer_expression "*pbVar14" * identifier) < (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "bVar17 = *pbVar14 == *pbVar15;" (assignment_expression "bVar17 = *pbVar14 == *pbVar15" identifier = (binary_expression "*pbVar14 == *pbVar15" (pointer_expression "*pbVar14" * identifier) == (pointer_expression "*pbVar15" * identifier))) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1;" (assignment_expression "pbVar15 = pbVar15 + (ulong)bVar20 * -2 + 1" identifier = (binary_expression "pbVar15 + (ulong)bVar20 * -2 + 1" (binary_expression "pbVar15 + (ulong)bVar20 * -2" identifier + (binary_expression "(ulong)bVar20 * -2" (cast_expression "(ulong)bVar20" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar17)" ( identifier )) ;) (if_statement "if ((!bVar19 && !bVar17) != bVar19) goto LAB_001418d2;" if (parenthesized_expression "((!bVar19 && !bVar17) != bVar19)" ( (binary_expression "(!bVar19 && !bVar17) != bVar19" (parenthesized_expression "(!bVar19 && !bVar17)" ( (binary_expression "!bVar19 && !bVar17" (unary_expression "!bVar19" ! identifier) && (unary_expression "!bVar17" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_001418d2;" goto statement_identifier ;)) })) })) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) (expression_statement "uVar13 = (uint)(type != 8);" (assignment_expression "uVar13 = (uint)(type != 8)" identifier = (call_expression "(uint)(type != 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(type != 8)" ( (binary_expression "type != 8" identifier != number_literal) )))) ;) (labeled_statement "LAB_001416d0:\n    uVar16 = 0xc;" statement_identifier : (expression_statement "uVar16 = 0xc;" (assignment_expression "uVar16 = 0xc" identifier = number_literal) ;)) }))) (expression_statement "uVar13 = uVar13 * 2;" (assignment_expression "uVar13 = uVar13 * 2" identifier = (binary_expression "uVar13 * 2" identifier * number_literal)) ;) (labeled_statement "LAB_00141567:\n  uVar13 = uVar16 | uVar4 | uVar13;" statement_identifier : (expression_statement "uVar13 = uVar16 | uVar4 | uVar13;" (assignment_expression "uVar13 = uVar16 | uVar4 | uVar13" identifier = (binary_expression "uVar16 | uVar4 | uVar13" (binary_expression "uVar16 | uVar4" identifier | identifier) | identifier)) ;)) (if_statement "if (linkonce != 0) {\n    uVar13 = uVar13 | 0x20000;\n  }" if (parenthesized_expression "(linkonce != 0)" ( (binary_expression "linkonce != 0" identifier != number_literal) )) (compound_statement "{\n    uVar13 = uVar13 | 0x20000;\n  }" { (expression_statement "uVar13 = uVar13 | 0x20000;" (assignment_expression "uVar13 = uVar13 | 0x20000" identifier = (binary_expression "uVar13 | 0x20000" identifier | number_literal)) ;) })) (if_statement "if (paVar5 == (segT)0x0) {\n    if (type == 0) {\n      type = bfd_elf_get_default_section_type(uVar13);\n    }\n    pvVar1 = sec->used_by_bfd;\n    *(uint *)((long)pvVar1 + 4) = type;\n    *(bfd_vma *)((long)pvVar1 + 8) = attr;\n    *(uint *)((long)pvVar1 + 0x2c) = info;\n    if (type == 8) {\n      pbVar14 = (byte *)((long)sec->userdata + 8);\n      *pbVar14 = *pbVar14 | 2;\n    }\n    bfd_set_section_flags(stdoutput,sec,uVar13);\n    if ((uVar13 & 0x800000) != 0) {\n      sec->entsize = entsize;\n    }\n    *(char **)((long)sec->used_by_bfd + 0xb0) = group_name;\n    psVar10 = symbol_find(name);\n    if (psVar10 != (symbolS *)0x0) {\n      symbol_set_bfdsym(psVar10,sec->symbol);\n      return;\n    }\n    psVar10 = section_symbol(sec);\n    symbol_table_insert(psVar10);\n  }\n  else {\n    if ((type != 0) && (*(uint *)((long)paVar5->used_by_bfd + 4) != type)) {\n      pcVar7 = (char *)dcgettext(0,"ignoring changed section type for %s",5);\n      as_warn(pcVar7,name);\n    }\n    if (attr != 0) {\n      if (((paVar5->flags ^ uVar13) & 0x183841b) == 0) {\n        *(bfd_vma *)((long)sec->used_by_bfd + 8) = attr;\n      }\n      else {\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar7,name);\n      }\n      if (((uVar13 & 0x800000) != 0) && (paVar5->entsize != entsize)) {\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar7,name);\n      }\n    }\n  }" if (parenthesized_expression "(paVar5 == (segT)0x0)" ( (binary_expression "paVar5 == (segT)0x0" identifier == (cast_expression "(segT)0x0" ( (type_descriptor "segT" type_identifier) ) number_literal)) )) (compound_statement "{\n    if (type == 0) {\n      type = bfd_elf_get_default_section_type(uVar13);\n    }\n    pvVar1 = sec->used_by_bfd;\n    *(uint *)((long)pvVar1 + 4) = type;\n    *(bfd_vma *)((long)pvVar1 + 8) = attr;\n    *(uint *)((long)pvVar1 + 0x2c) = info;\n    if (type == 8) {\n      pbVar14 = (byte *)((long)sec->userdata + 8);\n      *pbVar14 = *pbVar14 | 2;\n    }\n    bfd_set_section_flags(stdoutput,sec,uVar13);\n    if ((uVar13 & 0x800000) != 0) {\n      sec->entsize = entsize;\n    }\n    *(char **)((long)sec->used_by_bfd + 0xb0) = group_name;\n    psVar10 = symbol_find(name);\n    if (psVar10 != (symbolS *)0x0) {\n      symbol_set_bfdsym(psVar10,sec->symbol);\n      return;\n    }\n    psVar10 = section_symbol(sec);\n    symbol_table_insert(psVar10);\n  }" { (if_statement "if (type == 0) {\n      type = bfd_elf_get_default_section_type(uVar13);\n    }" if (parenthesized_expression "(type == 0)" ( (binary_expression "type == 0" identifier == number_literal) )) (compound_statement "{\n      type = bfd_elf_get_default_section_type(uVar13);\n    }" { (expression_statement "type = bfd_elf_get_default_section_type(uVar13);" (assignment_expression "type = bfd_elf_get_default_section_type(uVar13)" identifier = (call_expression "bfd_elf_get_default_section_type(uVar13)" identifier (argument_list "(uVar13)" ( identifier )))) ;) })) (expression_statement "pvVar1 = sec->used_by_bfd;" (assignment_expression "pvVar1 = sec->used_by_bfd" identifier = (field_expression "sec->used_by_bfd" identifier -> field_identifier)) ;) (expression_statement "*(uint *)((long)pvVar1 + 4) = type;" (assignment_expression "*(uint *)((long)pvVar1 + 4) = type" (pointer_expression "*(uint *)((long)pvVar1 + 4)" * (cast_expression "(uint *)((long)pvVar1 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar1 + 4)" ( (binary_expression "(long)pvVar1 + 4" (cast_expression "(long)pvVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(bfd_vma *)((long)pvVar1 + 8) = attr;" (assignment_expression "*(bfd_vma *)((long)pvVar1 + 8) = attr" (pointer_expression "*(bfd_vma *)((long)pvVar1 + 8)" * (cast_expression "(bfd_vma *)((long)pvVar1 + 8)" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar1 + 8)" ( (binary_expression "(long)pvVar1 + 8" (cast_expression "(long)pvVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)((long)pvVar1 + 0x2c) = info;" (assignment_expression "*(uint *)((long)pvVar1 + 0x2c) = info" (pointer_expression "*(uint *)((long)pvVar1 + 0x2c)" * (cast_expression "(uint *)((long)pvVar1 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar1 + 0x2c)" ( (binary_expression "(long)pvVar1 + 0x2c" (cast_expression "(long)pvVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (type == 8) {\n      pbVar14 = (byte *)((long)sec->userdata + 8);\n      *pbVar14 = *pbVar14 | 2;\n    }" if (parenthesized_expression "(type == 8)" ( (binary_expression "type == 8" identifier == number_literal) )) (compound_statement "{\n      pbVar14 = (byte *)((long)sec->userdata + 8);\n      *pbVar14 = *pbVar14 | 2;\n    }" { (expression_statement "pbVar14 = (byte *)((long)sec->userdata + 8);" (assignment_expression "pbVar14 = (byte *)((long)sec->userdata + 8)" identifier = (cast_expression "(byte *)((long)sec->userdata + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)sec->userdata + 8)" ( (binary_expression "(long)sec->userdata + 8" (cast_expression "(long)sec->userdata" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "sec->userdata" identifier -> field_identifier)) + number_literal) )))) ;) (expression_statement "*pbVar14 = *pbVar14 | 2;" (assignment_expression "*pbVar14 = *pbVar14 | 2" (pointer_expression "*pbVar14" * identifier) = (binary_expression "*pbVar14 | 2" (pointer_expression "*pbVar14" * identifier) | number_literal)) ;) })) (expression_statement "bfd_set_section_flags(stdoutput,sec,uVar13);" (call_expression "bfd_set_section_flags(stdoutput,sec,uVar13)" identifier (argument_list "(stdoutput,sec,uVar13)" ( identifier , identifier , identifier ))) ;) (if_statement "if ((uVar13 & 0x800000) != 0) {\n      sec->entsize = entsize;\n    }" if (parenthesized_expression "((uVar13 & 0x800000) != 0)" ( (binary_expression "(uVar13 & 0x800000) != 0" (parenthesized_expression "(uVar13 & 0x800000)" ( (binary_expression "uVar13 & 0x800000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      sec->entsize = entsize;\n    }" { (expression_statement "sec->entsize = entsize;" (assignment_expression "sec->entsize = entsize" (field_expression "sec->entsize" identifier -> field_identifier) = identifier) ;) })) (expression_statement "*(char **)((long)sec->used_by_bfd + 0xb0) = group_name;" (assignment_expression "*(char **)((long)sec->used_by_bfd + 0xb0) = group_name" (pointer_expression "*(char **)((long)sec->used_by_bfd + 0xb0)" * (cast_expression "(char **)((long)sec->used_by_bfd + 0xb0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)sec->used_by_bfd + 0xb0)" ( (binary_expression "(long)sec->used_by_bfd + 0xb0" (cast_expression "(long)sec->used_by_bfd" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "sec->used_by_bfd" identifier -> field_identifier)) + number_literal) )))) = identifier) ;) (expression_statement "psVar10 = symbol_find(name);" (assignment_expression "psVar10 = symbol_find(name)" identifier = (call_expression "symbol_find(name)" identifier (argument_list "(name)" ( identifier )))) ;) (if_statement "if (psVar10 != (symbolS *)0x0) {\n      symbol_set_bfdsym(psVar10,sec->symbol);\n      return;\n    }" if (parenthesized_expression "(psVar10 != (symbolS *)0x0)" ( (binary_expression "psVar10 != (symbolS *)0x0" identifier != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      symbol_set_bfdsym(psVar10,sec->symbol);\n      return;\n    }" { (expression_statement "symbol_set_bfdsym(psVar10,sec->symbol);" (call_expression "symbol_set_bfdsym(psVar10,sec->symbol)" identifier (argument_list "(psVar10,sec->symbol)" ( identifier , (field_expression "sec->symbol" identifier -> field_identifier) ))) ;) (return_statement "return;" return ;) })) (expression_statement "psVar10 = section_symbol(sec);" (assignment_expression "psVar10 = section_symbol(sec)" identifier = (call_expression "section_symbol(sec)" identifier (argument_list "(sec)" ( identifier )))) ;) (expression_statement "symbol_table_insert(psVar10);" (call_expression "symbol_table_insert(psVar10)" identifier (argument_list "(psVar10)" ( identifier ))) ;) }) (else_clause "else {\n    if ((type != 0) && (*(uint *)((long)paVar5->used_by_bfd + 4) != type)) {\n      pcVar7 = (char *)dcgettext(0,"ignoring changed section type for %s",5);\n      as_warn(pcVar7,name);\n    }\n    if (attr != 0) {\n      if (((paVar5->flags ^ uVar13) & 0x183841b) == 0) {\n        *(bfd_vma *)((long)sec->used_by_bfd + 8) = attr;\n      }\n      else {\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar7,name);\n      }\n      if (((uVar13 & 0x800000) != 0) && (paVar5->entsize != entsize)) {\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar7,name);\n      }\n    }\n  }" else (compound_statement "{\n    if ((type != 0) && (*(uint *)((long)paVar5->used_by_bfd + 4) != type)) {\n      pcVar7 = (char *)dcgettext(0,"ignoring changed section type for %s",5);\n      as_warn(pcVar7,name);\n    }\n    if (attr != 0) {\n      if (((paVar5->flags ^ uVar13) & 0x183841b) == 0) {\n        *(bfd_vma *)((long)sec->used_by_bfd + 8) = attr;\n      }\n      else {\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar7,name);\n      }\n      if (((uVar13 & 0x800000) != 0) && (paVar5->entsize != entsize)) {\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar7,name);\n      }\n    }\n  }" { (if_statement "if ((type != 0) && (*(uint *)((long)paVar5->used_by_bfd + 4) != type)) {\n      pcVar7 = (char *)dcgettext(0,"ignoring changed section type for %s",5);\n      as_warn(pcVar7,name);\n    }" if (parenthesized_expression "((type != 0) && (*(uint *)((long)paVar5->used_by_bfd + 4) != type))" ( (binary_expression "(type != 0) && (*(uint *)((long)paVar5->used_by_bfd + 4) != type)" (parenthesized_expression "(type != 0)" ( (binary_expression "type != 0" identifier != number_literal) )) && (parenthesized_expression "(*(uint *)((long)paVar5->used_by_bfd + 4) != type)" ( (binary_expression "*(uint *)((long)paVar5->used_by_bfd + 4) != type" (pointer_expression "*(uint *)((long)paVar5->used_by_bfd + 4)" * (cast_expression "(uint *)((long)paVar5->used_by_bfd + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)paVar5->used_by_bfd + 4)" ( (binary_expression "(long)paVar5->used_by_bfd + 4" (cast_expression "(long)paVar5->used_by_bfd" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "paVar5->used_by_bfd" identifier -> field_identifier)) + number_literal) )))) != identifier) ))) )) (compound_statement "{\n      pcVar7 = (char *)dcgettext(0,"ignoring changed section type for %s",5);\n      as_warn(pcVar7,name);\n    }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"ignoring changed section type for %s",5);" (assignment_expression "pcVar7 = (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(pcVar7,name);" (call_expression "as_warn(pcVar7,name)" identifier (argument_list "(pcVar7,name)" ( identifier , identifier ))) ;) })) (if_statement "if (attr != 0) {\n      if (((paVar5->flags ^ uVar13) & 0x183841b) == 0) {\n        *(bfd_vma *)((long)sec->used_by_bfd + 8) = attr;\n      }\n      else {\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar7,name);\n      }\n      if (((uVar13 & 0x800000) != 0) && (paVar5->entsize != entsize)) {\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar7,name);\n      }\n    }" if (parenthesized_expression "(attr != 0)" ( (binary_expression "attr != 0" identifier != number_literal) )) (compound_statement "{\n      if (((paVar5->flags ^ uVar13) & 0x183841b) == 0) {\n        *(bfd_vma *)((long)sec->used_by_bfd + 8) = attr;\n      }\n      else {\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar7,name);\n      }\n      if (((uVar13 & 0x800000) != 0) && (paVar5->entsize != entsize)) {\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar7,name);\n      }\n    }" { (if_statement "if (((paVar5->flags ^ uVar13) & 0x183841b) == 0) {\n        *(bfd_vma *)((long)sec->used_by_bfd + 8) = attr;\n      }\n      else {\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar7,name);\n      }" if (parenthesized_expression "(((paVar5->flags ^ uVar13) & 0x183841b) == 0)" ( (binary_expression "((paVar5->flags ^ uVar13) & 0x183841b) == 0" (parenthesized_expression "((paVar5->flags ^ uVar13) & 0x183841b)" ( (binary_expression "(paVar5->flags ^ uVar13) & 0x183841b" (parenthesized_expression "(paVar5->flags ^ uVar13)" ( (binary_expression "paVar5->flags ^ uVar13" (field_expression "paVar5->flags" identifier -> field_identifier) ^ identifier) )) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(bfd_vma *)((long)sec->used_by_bfd + 8) = attr;\n      }" { (expression_statement "*(bfd_vma *)((long)sec->used_by_bfd + 8) = attr;" (assignment_expression "*(bfd_vma *)((long)sec->used_by_bfd + 8) = attr" (pointer_expression "*(bfd_vma *)((long)sec->used_by_bfd + 8)" * (cast_expression "(bfd_vma *)((long)sec->used_by_bfd + 8)" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)sec->used_by_bfd + 8)" ( (binary_expression "(long)sec->used_by_bfd + 8" (cast_expression "(long)sec->used_by_bfd" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "sec->used_by_bfd" identifier -> field_identifier)) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar7,name);\n      }" else (compound_statement "{\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);\n        as_warn(pcVar7,name);\n      }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"ignoring changed section attributes for %s",5);" (assignment_expression "pcVar7 = (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(pcVar7,name);" (call_expression "as_warn(pcVar7,name)" identifier (argument_list "(pcVar7,name)" ( identifier , identifier ))) ;) }))) (if_statement "if (((uVar13 & 0x800000) != 0) && (paVar5->entsize != entsize)) {\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar7,name);\n      }" if (parenthesized_expression "(((uVar13 & 0x800000) != 0) && (paVar5->entsize != entsize))" ( (binary_expression "((uVar13 & 0x800000) != 0) && (paVar5->entsize != entsize)" (parenthesized_expression "((uVar13 & 0x800000) != 0)" ( (binary_expression "(uVar13 & 0x800000) != 0" (parenthesized_expression "(uVar13 & 0x800000)" ( (binary_expression "uVar13 & 0x800000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(paVar5->entsize != entsize)" ( (binary_expression "paVar5->entsize != entsize" (field_expression "paVar5->entsize" identifier -> field_identifier) != identifier) ))) )) (compound_statement "{\n        pcVar7 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);\n        as_warn(pcVar7,name);\n      }" { (expression_statement "pcVar7 = (char *)dcgettext(0,"ignoring changed section entity size for %s",5);" (assignment_expression "pcVar7 = (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(pcVar7,name);" (call_expression "as_warn(pcVar7,name)" identifier (argument_list "(pcVar7,name)" ( identifier , identifier ))) ;) })) })) }))) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001413e0(byte *param_1,uint param_2,undefined4 param_3,ulong param_4,int param_5,\n                 long param_6,int param_7,int param_8)\n\n{\n  undefined8 *puVar1;\n  uint uVar2;\n  uint uVar3;\n  long lVar4;\n  long lVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined8 *puVar8;\n  long lVar9;\n  char cVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint uVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  long local_48;\n  undefined4 local_40;\n  \n  bVar19 = 0;\n  uVar6 = DAT_001b1ba8;\n  uVar11 = DAT_001b1d44;\n  if (param_8 != 0) {\n    puVar8 = (undefined8 *)xmalloc(0x20);\n    uVar6 = DAT_001b1ba8;\n    puVar1 = puVar8;\n    *puVar8 = DAT_001b1a00;\n    DAT_001b1a00 = puVar1;\n    puVar8[1] = uVar6;\n    puVar8[2] = DAT_001b1a10;\n    uVar11 = DAT_001b1d44;\n    *(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08;\n    *(undefined4 *)(puVar8 + 3) = uVar11;\n  }\n  DAT_001b1a08 = uVar11;\n  DAT_001b1a10 = uVar6;\n  local_48 = param_6;\n  local_40 = param_3;\n  lVar4 = bfd_get_section_by_name_if(DAT_001b1e50,param_1,FUN_0013f580,&local_48);\n  if (lVar4 == 0) {\n    lVar9 = FUN_0012b1e0(param_1,0);\n  }\n  else {\n    FUN_0012b210(lVar4);\n    lVar9 = lVar4;\n  }\n  lVar5 = (**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))(DAT_001b1e50,lVar9);\n  if (lVar5 == 0) {\nLAB_001414e6:\n    uVar2 = (uint)param_4;\n    if ((uVar2 & 0x1000002) == 0x1000000) {\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    \n      FUN_00121900(uVar6,param_1);\n    }\n    uVar12 = (uint)(param_4 >> 1) & 1;\n    uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n    uVar12 = uVar12 & param_2 != 8;\nLAB_00141553:\n    uVar15 = 4;\n    if ((uVar2 & 1) == 0) goto LAB_001416d0;\n  }\n  else {\n    uVar12 = *(uint *)(lVar5 + 0x10);\n    if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n    uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar16 = param_4 < 2;\n    bVar18 = param_4 == 2;\n    if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }\n    lVar5 = 8;\n    pbVar13 = param_1;\n    pbVar14 = (byte *)".interp";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }\n    uVar3 = 1;\n    uVar12 = (uint)(param_2 != 8);\nLAB_001416d0:\n    uVar15 = 0xc;\n  }\n  uVar12 = uVar12 * 2;\nLAB_00141567:\n  uVar12 = uVar15 | uVar3 | uVar12;\n  if (param_7 != 0) {\n    uVar12 = uVar12 | 0x20000;\n  }\n  if (lVar4 == 0) {\n    if (param_2 == 0) {\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }\n    lVar4 = *(long *)(lVar9 + 0xe0);\n    *(uint *)(lVar4 + 4) = param_2;\n    *(ulong *)(lVar4 + 8) = param_4;\n    *(undefined4 *)(lVar4 + 0x2c) = param_3;\n    if (param_2 == 8) {\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }\n    bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12);\n    if ((uVar12 & 0x800000) != 0) {\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }\n    *(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6;\n    lVar4 = FUN_0012e990(param_1);\n    if (lVar4 != 0) {\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }\n    uVar6 = FUN_0012b250(lVar9);\n    FUN_0012ba70(uVar6);\n  }\n  else {\n    if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_001413e0(byte *param_1,uint param_2,undefined4 param_3,ulong param_4,int param_5,\n                 long param_6,int param_7,int param_8)\n\n{\n  undefined8 *puVar1;\n  uint uVar2;\n  uint uVar3;\n  long lVar4;\n  long lVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined8 *puVar8;\n  long lVar9;\n  char cVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint uVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  long local_48;\n  undefined4 local_40;\n  \n  bVar19 = 0;\n  uVar6 = DAT_001b1ba8;\n  uVar11 = DAT_001b1d44;\n  if (param_8 != 0) {\n    puVar8 = (undefined8 *)xmalloc(0x20);\n    uVar6 = DAT_001b1ba8;\n    puVar1 = puVar8;\n    *puVar8 = DAT_001b1a00;\n    DAT_001b1a00 = puVar1;\n    puVar8[1] = uVar6;\n    puVar8[2] = DAT_001b1a10;\n    uVar11 = DAT_001b1d44;\n    *(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08;\n    *(undefined4 *)(puVar8 + 3) = uVar11;\n  }\n  DAT_001b1a08 = uVar11;\n  DAT_001b1a10 = uVar6;\n  local_48 = param_6;\n  local_40 = param_3;\n  lVar4 = bfd_get_section_by_name_if(DAT_001b1e50,param_1,FUN_0013f580,&local_48);\n  if (lVar4 == 0) {\n    lVar9 = FUN_0012b1e0(param_1,0);\n  }\n  else {\n    FUN_0012b210(lVar4);\n    lVar9 = lVar4;\n  }\n  lVar5 = (**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))(DAT_001b1e50,lVar9);\n  if (lVar5 == 0) {\nLAB_001414e6:\n    uVar2 = (uint)param_4;\n    if ((uVar2 & 0x1000002) == 0x1000000) {\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    \n      FUN_00121900(uVar6,param_1);\n    }\n    uVar12 = (uint)(param_4 >> 1) & 1;\n    uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n    uVar12 = uVar12 & param_2 != 8;\nLAB_00141553:\n    uVar15 = 4;\n    if ((uVar2 & 1) == 0) goto LAB_001416d0;\n  }\n  else {\n    uVar12 = *(uint *)(lVar5 + 0x10);\n    if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n    uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar16 = param_4 < 2;\n    bVar18 = param_4 == 2;\n    if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }\n    lVar5 = 8;\n    pbVar13 = param_1;\n    pbVar14 = (byte *)".interp";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }\n    uVar3 = 1;\n    uVar12 = (uint)(param_2 != 8);\nLAB_001416d0:\n    uVar15 = 0xc;\n  }\n  uVar12 = uVar12 * 2;\nLAB_00141567:\n  uVar12 = uVar15 | uVar3 | uVar12;\n  if (param_7 != 0) {\n    uVar12 = uVar12 | 0x20000;\n  }\n  if (lVar4 == 0) {\n    if (param_2 == 0) {\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }\n    lVar4 = *(long *)(lVar9 + 0xe0);\n    *(uint *)(lVar4 + 4) = param_2;\n    *(ulong *)(lVar4 + 8) = param_4;\n    *(undefined4 *)(lVar4 + 0x2c) = param_3;\n    if (param_2 == 8) {\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }\n    bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12);\n    if ((uVar12 & 0x800000) != 0) {\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }\n    *(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6;\n    lVar4 = FUN_0012e990(param_1);\n    if (lVar4 != 0) {\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }\n    uVar6 = FUN_0012b250(lVar9);\n    FUN_0012ba70(uVar6);\n  }\n  else {\n    if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001413e0(byte *param_1,uint param_2,undefined4 param_3,ulong param_4,int param_5,\n                 long param_6,int param_7,int param_8)" identifier (parameter_list "(byte *param_1,uint param_2,undefined4 param_3,ulong param_4,int param_5,\n                 long param_6,int param_7,int param_8)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "ulong param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "long param_6" (sized_type_specifier "long" long) identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "int param_8" primitive_type identifier) ))) (compound_statement "{\n  undefined8 *puVar1;\n  uint uVar2;\n  uint uVar3;\n  long lVar4;\n  long lVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined8 *puVar8;\n  long lVar9;\n  char cVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint uVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  long local_48;\n  undefined4 local_40;\n  \n  bVar19 = 0;\n  uVar6 = DAT_001b1ba8;\n  uVar11 = DAT_001b1d44;\n  if (param_8 != 0) {\n    puVar8 = (undefined8 *)xmalloc(0x20);\n    uVar6 = DAT_001b1ba8;\n    puVar1 = puVar8;\n    *puVar8 = DAT_001b1a00;\n    DAT_001b1a00 = puVar1;\n    puVar8[1] = uVar6;\n    puVar8[2] = DAT_001b1a10;\n    uVar11 = DAT_001b1d44;\n    *(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08;\n    *(undefined4 *)(puVar8 + 3) = uVar11;\n  }\n  DAT_001b1a08 = uVar11;\n  DAT_001b1a10 = uVar6;\n  local_48 = param_6;\n  local_40 = param_3;\n  lVar4 = bfd_get_section_by_name_if(DAT_001b1e50,param_1,FUN_0013f580,&local_48);\n  if (lVar4 == 0) {\n    lVar9 = FUN_0012b1e0(param_1,0);\n  }\n  else {\n    FUN_0012b210(lVar4);\n    lVar9 = lVar4;\n  }\n  lVar5 = (**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))(DAT_001b1e50,lVar9);\n  if (lVar5 == 0) {\nLAB_001414e6:\n    uVar2 = (uint)param_4;\n    if ((uVar2 & 0x1000002) == 0x1000000) {\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    \n      FUN_00121900(uVar6,param_1);\n    }\n    uVar12 = (uint)(param_4 >> 1) & 1;\n    uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n    uVar12 = uVar12 & param_2 != 8;\nLAB_00141553:\n    uVar15 = 4;\n    if ((uVar2 & 1) == 0) goto LAB_001416d0;\n  }\n  else {\n    uVar12 = *(uint *)(lVar5 + 0x10);\n    if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n    uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar16 = param_4 < 2;\n    bVar18 = param_4 == 2;\n    if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }\n    lVar5 = 8;\n    pbVar13 = param_1;\n    pbVar14 = (byte *)".interp";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }\n    uVar3 = 1;\n    uVar12 = (uint)(param_2 != 8);\nLAB_001416d0:\n    uVar15 = 0xc;\n  }\n  uVar12 = uVar12 * 2;\nLAB_00141567:\n  uVar12 = uVar15 | uVar3 | uVar12;\n  if (param_7 != 0) {\n    uVar12 = uVar12 | 0x20000;\n  }\n  if (lVar4 == 0) {\n    if (param_2 == 0) {\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }\n    lVar4 = *(long *)(lVar9 + 0xe0);\n    *(uint *)(lVar4 + 4) = param_2;\n    *(ulong *)(lVar4 + 8) = param_4;\n    *(undefined4 *)(lVar4 + 0x2c) = param_3;\n    if (param_2 == 8) {\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }\n    bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12);\n    if ((uVar12 & 0x800000) != 0) {\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }\n    *(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6;\n    lVar4 = FUN_0012e990(param_1);\n    if (lVar4 != 0) {\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }\n    uVar6 = FUN_0012b250(lVar9);\n    FUN_0012ba70(uVar6);\n  }\n  else {\n    if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n  }\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "undefined8 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "long local_48;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = DAT_001b1ba8;" (assignment_expression "uVar6 = DAT_001b1ba8" identifier = identifier) ;) (expression_statement "uVar11 = DAT_001b1d44;" (assignment_expression "uVar11 = DAT_001b1d44" identifier = identifier) ;) (if_statement "if (param_8 != 0) {\n    puVar8 = (undefined8 *)xmalloc(0x20);\n    uVar6 = DAT_001b1ba8;\n    puVar1 = puVar8;\n    *puVar8 = DAT_001b1a00;\n    DAT_001b1a00 = puVar1;\n    puVar8[1] = uVar6;\n    puVar8[2] = DAT_001b1a10;\n    uVar11 = DAT_001b1d44;\n    *(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08;\n    *(undefined4 *)(puVar8 + 3) = uVar11;\n  }" if (parenthesized_expression "(param_8 != 0)" ( (binary_expression "param_8 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar8 = (undefined8 *)xmalloc(0x20);\n    uVar6 = DAT_001b1ba8;\n    puVar1 = puVar8;\n    *puVar8 = DAT_001b1a00;\n    DAT_001b1a00 = puVar1;\n    puVar8[1] = uVar6;\n    puVar8[2] = DAT_001b1a10;\n    uVar11 = DAT_001b1d44;\n    *(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08;\n    *(undefined4 *)(puVar8 + 3) = uVar11;\n  }" { (expression_statement "puVar8 = (undefined8 *)xmalloc(0x20);" (assignment_expression "puVar8 = (undefined8 *)xmalloc(0x20)" identifier = (cast_expression "(undefined8 *)xmalloc(0x20)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x20)" identifier (argument_list "(0x20)" ( number_literal ))))) ;) (expression_statement "uVar6 = DAT_001b1ba8;" (assignment_expression "uVar6 = DAT_001b1ba8" identifier = identifier) ;) (expression_statement "puVar1 = puVar8;" (assignment_expression "puVar1 = puVar8" identifier = identifier) ;) (expression_statement "*puVar8 = DAT_001b1a00;" (assignment_expression "*puVar8 = DAT_001b1a00" (pointer_expression "*puVar8" * identifier) = identifier) ;) (expression_statement "DAT_001b1a00 = puVar1;" (assignment_expression "DAT_001b1a00 = puVar1" identifier = identifier) ;) (expression_statement "puVar8[1] = uVar6;" (assignment_expression "puVar8[1] = uVar6" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[2] = DAT_001b1a10;" (assignment_expression "puVar8[2] = DAT_001b1a10" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar11 = DAT_001b1d44;" (assignment_expression "uVar11 = DAT_001b1d44" identifier = identifier) ;) (expression_statement "*(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08;" (assignment_expression "*(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08" (pointer_expression "*(undefined4 *)((long)puVar8 + 0x1c)" * (cast_expression "(undefined4 *)((long)puVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 0x1c)" ( (binary_expression "(long)puVar8 + 0x1c" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar8 + 3) = uVar11;" (assignment_expression "*(undefined4 *)(puVar8 + 3) = uVar11" (pointer_expression "*(undefined4 *)(puVar8 + 3)" * (cast_expression "(undefined4 *)(puVar8 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 3)" ( (binary_expression "puVar8 + 3" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "DAT_001b1a08 = uVar11;" (assignment_expression "DAT_001b1a08 = uVar11" identifier = identifier) ;) (expression_statement "DAT_001b1a10 = uVar6;" (assignment_expression "DAT_001b1a10 = uVar6" identifier = identifier) ;) (expression_statement "local_48 = param_6;" (assignment_expression "local_48 = param_6" identifier = identifier) ;) (expression_statement "local_40 = param_3;" (assignment_expression "local_40 = param_3" identifier = identifier) ;) (expression_statement "lVar4 = bfd_get_section_by_name_if(DAT_001b1e50,param_1,FUN_0013f580,&local_48);" (assignment_expression "lVar4 = bfd_get_section_by_name_if(DAT_001b1e50,param_1,FUN_0013f580,&local_48)" identifier = (call_expression "bfd_get_section_by_name_if(DAT_001b1e50,param_1,FUN_0013f580,&local_48)" identifier (argument_list "(DAT_001b1e50,param_1,FUN_0013f580,&local_48)" ( identifier , identifier , identifier , (pointer_expression "&local_48" & identifier) )))) ;) (if_statement "if (lVar4 == 0) {\n    lVar9 = FUN_0012b1e0(param_1,0);\n  }\n  else {\n    FUN_0012b210(lVar4);\n    lVar9 = lVar4;\n  }" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    lVar9 = FUN_0012b1e0(param_1,0);\n  }" { (expression_statement "lVar9 = FUN_0012b1e0(param_1,0);" (assignment_expression "lVar9 = FUN_0012b1e0(param_1,0)" identifier = (call_expression "FUN_0012b1e0(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) }) (else_clause "else {\n    FUN_0012b210(lVar4);\n    lVar9 = lVar4;\n  }" else (compound_statement "{\n    FUN_0012b210(lVar4);\n    lVar9 = lVar4;\n  }" { (expression_statement "FUN_0012b210(lVar4);" (call_expression "FUN_0012b210(lVar4)" identifier (argument_list "(lVar4)" ( identifier ))) ;) (expression_statement "lVar9 = lVar4;" (assignment_expression "lVar9 = lVar4" identifier = identifier) ;) }))) (expression_statement "lVar5 = (**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))(DAT_001b1e50,lVar9);" (assignment_expression "lVar5 = (**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))(DAT_001b1e50,lVar9)" identifier = (call_expression "(**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))(DAT_001b1e50,lVar9)" (parenthesized_expression "(**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))" ( (pointer_expression "**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0)" * (pointer_expression "*(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0)" * (cast_expression "(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0)" ( (binary_expression "*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0" (pointer_expression "*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368)" * (cast_expression "(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(DAT_001b1e50 + 8) + 0x368)" ( (binary_expression "*(long *)(DAT_001b1e50 + 8) + 0x368" (pointer_expression "*(long *)(DAT_001b1e50 + 8)" * (cast_expression "(long *)(DAT_001b1e50 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_001b1e50 + 8)" ( (binary_expression "DAT_001b1e50 + 8" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_001b1e50,lVar9)" ( identifier , identifier )))) ;) (if_statement "if (lVar5 == 0) {\nLAB_001414e6:\n    uVar2 = (uint)param_4;\n    if ((uVar2 & 0x1000002) == 0x1000000) {\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    \n      FUN_00121900(uVar6,param_1);\n    }\n    uVar12 = (uint)(param_4 >> 1) & 1;\n    uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n    uVar12 = uVar12 & param_2 != 8;\nLAB_00141553:\n    uVar15 = 4;\n    if ((uVar2 & 1) == 0) goto LAB_001416d0;\n  }\n  else {\n    uVar12 = *(uint *)(lVar5 + 0x10);\n    if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n    uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar16 = param_4 < 2;\n    bVar18 = param_4 == 2;\n    if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }\n    lVar5 = 8;\n    pbVar13 = param_1;\n    pbVar14 = (byte *)".interp";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }\n    uVar3 = 1;\n    uVar12 = (uint)(param_2 != 8);\nLAB_001416d0:\n    uVar15 = 0xc;\n  }" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_001414e6:\n    uVar2 = (uint)param_4;\n    if ((uVar2 & 0x1000002) == 0x1000000) {\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    \n      FUN_00121900(uVar6,param_1);\n    }\n    uVar12 = (uint)(param_4 >> 1) & 1;\n    uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n    uVar12 = uVar12 & param_2 != 8;\nLAB_00141553:\n    uVar15 = 4;\n    if ((uVar2 & 1) == 0) goto LAB_001416d0;\n  }" { (labeled_statement "LAB_001414e6:\n    uVar2 = (uint)param_4;" statement_identifier : (expression_statement "uVar2 = (uint)param_4;" (assignment_expression "uVar2 = (uint)param_4" identifier = (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (if_statement "if ((uVar2 & 0x1000002) == 0x1000000) {\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    \n      FUN_00121900(uVar6,param_1);\n    }" if (parenthesized_expression "((uVar2 & 0x1000002) == 0x1000000)" ( (binary_expression "(uVar2 & 0x1000002) == 0x1000000" (parenthesized_expression "(uVar2 & 0x1000002)" ( (binary_expression "uVar2 & 0x1000002" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    \n      FUN_00121900(uVar6,param_1);\n    }" { (expression_statement "uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);" (assignment_expression "uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5)" identifier = (call_expression "dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5)" identifier (argument_list "(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5)" ( number_literal , (string_literal ""SHF_ALLOC isn\'t set for GNU_MBIND section: %s"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_00121900(uVar6,param_1);" (call_expression "FUN_00121900(uVar6,param_1)" identifier (argument_list "(uVar6,param_1)" ( identifier , identifier ))) ;) })) (expression_statement "uVar12 = (uint)(param_4 >> 1) & 1;" (assignment_expression "uVar12 = (uint)(param_4 >> 1) & 1" identifier = (binary_expression "(uint)(param_4 >> 1) & 1" (call_expression "(uint)(param_4 >> 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 >> 1)" ( (binary_expression "param_4 >> 1" identifier >> number_literal) ))) & number_literal)) ;) (expression_statement "uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;" (assignment_expression "uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000" identifier = (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000" (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000" (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000" (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400" (binary_expression "uVar2 * 4 & 0x10 | uVar12" (binary_expression "uVar2 * 4 & 0x10" (binary_expression "uVar2 * 4" identifier * number_literal) & number_literal) | identifier) | (binary_expression "uVar2 & 0x400" identifier & number_literal)) | (binary_expression "uVar2 << 0x13 & 0x800000" (binary_expression "uVar2 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "uVar2 << 0x13 & 0x1000000" (binary_expression "uVar2 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "(uint)(param_4 >> 0x10) & 0x8000" (call_expression "(uint)(param_4 >> 0x10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 >> 0x10)" ( (binary_expression "param_4 >> 0x10" identifier >> number_literal) ))) & number_literal))) ;) (expression_statement "uVar12 = uVar12 & param_2 != 8;" (assignment_expression "uVar12 = uVar12 & param_2 != 8" identifier = (binary_expression "uVar12 & param_2 != 8" identifier & (binary_expression "param_2 != 8" identifier != number_literal))) ;) (labeled_statement "LAB_00141553:\n    uVar15 = 4;" statement_identifier : (expression_statement "uVar15 = 4;" (assignment_expression "uVar15 = 4" identifier = number_literal) ;)) (if_statement "if ((uVar2 & 1) == 0) goto LAB_001416d0;" if (parenthesized_expression "((uVar2 & 1) == 0)" ( (binary_expression "(uVar2 & 1) == 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001416d0;" goto statement_identifier ;)) }) (else_clause "else {\n    uVar12 = *(uint *)(lVar5 + 0x10);\n    if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n    uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar16 = param_4 < 2;\n    bVar18 = param_4 == 2;\n    if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }\n    lVar5 = 8;\n    pbVar13 = param_1;\n    pbVar14 = (byte *)".interp";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }\n    uVar3 = 1;\n    uVar12 = (uint)(param_2 != 8);\nLAB_001416d0:\n    uVar15 = 0xc;\n  }" else (compound_statement "{\n    uVar12 = *(uint *)(lVar5 + 0x10);\n    if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n    uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar16 = param_4 < 2;\n    bVar18 = param_4 == 2;\n    if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }\n    lVar5 = 8;\n    pbVar13 = param_1;\n    pbVar14 = (byte *)".interp";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }\n    uVar3 = 1;\n    uVar12 = (uint)(param_2 != 8);\nLAB_001416d0:\n    uVar15 = 0xc;\n  }" { (expression_statement "uVar12 = *(uint *)(lVar5 + 0x10);" (assignment_expression "uVar12 = *(uint *)(lVar5 + 0x10)" identifier = (pointer_expression "*(uint *)(lVar5 + 0x10)" * (cast_expression "(uint *)(lVar5 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }" if (parenthesized_expression "((param_2 == 0) || (param_2 == uVar12))" ( (binary_expression "(param_2 == 0) || (param_2 == uVar12)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_2 == uVar12)" ( (binary_expression "param_2 == uVar12" identifier == identifier) ))) )) (compound_statement "{\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }" { (labeled_statement "LAB_001414dd:\n      param_2 = uVar12;" statement_identifier : (expression_statement "param_2 = uVar12;" (assignment_expression "param_2 = uVar12" identifier = identifier) ;)) (if_statement "if (lVar4 != 0) goto LAB_001414e6;" if (parenthesized_expression "(lVar4 != 0)" ( (binary_expression "lVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001414e6;" goto statement_identifier ;)) }) (else_clause "else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }" else (compound_statement "{\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }" { (if_statement "if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }" if (parenthesized_expression "((uVar12 - 0xe < 3) || (lVar4 != 0))" ( (binary_expression "(uVar12 - 0xe < 3) || (lVar4 != 0)" (parenthesized_expression "(uVar12 - 0xe < 3)" ( (binary_expression "uVar12 - 0xe < 3" (binary_expression "uVar12 - 0xe" identifier - number_literal) < number_literal) )) || (parenthesized_expression "(lVar4 != 0)" ( (binary_expression "lVar4 != 0" identifier != number_literal) ))) )) (compound_statement "{\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }" { (expression_statement "uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);" (assignment_expression "uVar6 = 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_00121590(uVar6,param_1);" (call_expression "FUN_00121590(uVar6,param_1)" identifier (argument_list "(uVar6,param_1)" ( identifier , identifier ))) ;) (expression_statement "uVar12 = *(uint *)(lVar5 + 0x10);" (assignment_expression "uVar12 = *(uint *)(lVar5 + 0x10)" identifier = (pointer_expression "*(uint *)(lVar5 + 0x10)" * (cast_expression "(uint *)(lVar5 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_001414dd;" goto statement_identifier ;) })) (if_statement "if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" if (parenthesized_expression "((uVar12 != 7) && (param_2 < 0x70000000))" ( (binary_expression "(uVar12 != 7) && (param_2 < 0x70000000)" (parenthesized_expression "(uVar12 != 7)" ( (binary_expression "uVar12 != 7" identifier != number_literal) )) && (parenthesized_expression "(param_2 < 0x70000000)" ( (binary_expression "param_2 < 0x70000000" identifier < number_literal) ))) )) (compound_statement "{\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" { (expression_statement "uVar6 = dcgettext(0,"setting incorrect section type for %s",5);" (assignment_expression "uVar6 = 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_00121590(uVar6,param_1);" (call_expression "FUN_00121590(uVar6,param_1)" identifier (argument_list "(uVar6,param_1)" ( identifier , identifier ))) ;) })) }))) (expression_statement "uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;" (assignment_expression "uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4" identifier = (binary_expression "~*(ulong *)(lVar5 + 0x18) & param_4" (unary_expression "~*(ulong *)(lVar5 + 0x18)" ~ (pointer_expression "*(ulong *)(lVar5 + 0x18)" * (cast_expression "(ulong *)(lVar5 + 0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x18)" ( (binary_expression "lVar5 + 0x18" identifier + number_literal) ))))) & identifier)) ;) (if_statement "if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }" if (parenthesized_expression "((uVar7 & 0xfffff) == 0)" ( (binary_expression "(uVar7 & 0xfffff) == 0" (parenthesized_expression "(uVar7 & 0xfffff)" ( (binary_expression "uVar7 & 0xfffff" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }" { (labeled_statement "LAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);" statement_identifier : (expression_statement "param_4 = param_4 | *(ulong *)(lVar5 + 0x18);" (assignment_expression "param_4 = param_4 | *(ulong *)(lVar5 + 0x18)" identifier = (binary_expression "param_4 | *(ulong *)(lVar5 + 0x18)" identifier | (pointer_expression "*(ulong *)(lVar5 + 0x18)" * (cast_expression "(ulong *)(lVar5 + 0x18)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x18)" ( (binary_expression "lVar5 + 0x18" identifier + number_literal) )))))) ;)) (goto_statement "goto LAB_001414e6;" goto statement_identifier ;) })) (if_statement "if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }" if (parenthesized_expression "(*(int *)(lVar5 + 0x10) == 7)" ( (binary_expression "*(int *)(lVar5 + 0x10) == 7" (pointer_expression "*(int *)(lVar5 + 0x10)" * (cast_expression "(int *)(lVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x10)" ( (binary_expression "lVar5 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }" { (if_statement "if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }" if (parenthesized_expression "((param_4 - 2 & 0xfffffffffffffffd) != 0)" ( (binary_expression "(param_4 - 2 & 0xfffffffffffffffd) != 0" (parenthesized_expression "(param_4 - 2 & 0xfffffffffffffffd)" ( (binary_expression "param_4 - 2 & 0xfffffffffffffffd" (binary_expression "param_4 - 2" identifier - number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }" { (if_statement "if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;" if (parenthesized_expression "(*(int *)(lVar5 + 0xc) == -2)" ( (binary_expression "*(int *)(lVar5 + 0xc) == -2" (pointer_expression "*(int *)(lVar5 + 0xc)" * (cast_expression "(int *)(lVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0xc)" ( (binary_expression "lVar5 + 0xc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_001416a3;" goto statement_identifier ;)) (labeled_statement "LAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }" statement_identifier : (if_statement "if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }" { (labeled_statement "LAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);" statement_identifier : (expression_statement "uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);" (assignment_expression "uVar6 = 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_00121590(uVar6,param_1);" (call_expression "FUN_00121590(uVar6,param_1)" identifier (argument_list "(uVar6,param_1)" ( identifier , identifier ))) ;) }))) (goto_statement "goto LAB_001414e6;" goto statement_identifier ;) })) (goto_statement "goto LAB_001416b8;" goto statement_identifier ;) })) (if_statement "if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }" if (parenthesized_expression "(*(int *)(lVar5 + 0xc) == -2)" ( (binary_expression "*(int *)(lVar5 + 0xc) == -2" (pointer_expression "*(int *)(lVar5 + 0xc)" * (cast_expression "(int *)(lVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0xc)" ( (binary_expression "lVar5 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }" { (labeled_statement "LAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;" statement_identifier : (if_statement "if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;" if (parenthesized_expression "((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))" ( (binary_expression "(param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0)" (parenthesized_expression "(param_1[*(uint *)(lVar5 + 8)] == 0x2e)" ( (binary_expression "param_1[*(uint *)(lVar5 + 8)] == 0x2e" (subscript_expression "param_1[*(uint *)(lVar5 + 8)]" identifier [ (pointer_expression "*(uint *)(lVar5 + 8)" * (cast_expression "(uint *)(lVar5 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 8)" ( (binary_expression "lVar5 + 8" identifier + number_literal) )))) ]) == number_literal) )) && (parenthesized_expression "((uVar7 & 0xffffffffffffffcf) == 0)" ( (binary_expression "(uVar7 & 0xffffffffffffffcf) == 0" (parenthesized_expression "(uVar7 & 0xffffffffffffffcf)" ( (binary_expression "uVar7 & 0xffffffffffffffcf" identifier & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_001416b8;" goto statement_identifier ;))) })) (expression_statement "bVar16 = param_4 < 2;" (assignment_expression "bVar16 = param_4 < 2" identifier = (binary_expression "param_4 < 2" identifier < number_literal)) ;) (expression_statement "bVar18 = param_4 == 2;" (assignment_expression "bVar18 = param_4 == 2" identifier = (binary_expression "param_4 == 2" identifier == number_literal)) ;) (if_statement "if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (compound_statement "{\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }" { (expression_statement "bVar16 = param_4 < 4;" (assignment_expression "bVar16 = param_4 < 4" identifier = (binary_expression "param_4 < 4" identifier < number_literal)) ;) (expression_statement "bVar18 = param_4 == 4;" (assignment_expression "bVar18 = param_4 == 4" identifier = (binary_expression "param_4 == 4" identifier == number_literal)) ;) (if_statement "if (!bVar18) goto LAB_00141658;" if (parenthesized_expression "(!bVar18)" ( (unary_expression "!bVar18" ! identifier) )) (goto_statement "goto LAB_00141658;" goto statement_identifier ;)) (expression_statement "lVar5 = 0x10;" (assignment_expression "lVar5 = 0x10" identifier = number_literal) ;) (expression_statement "pbVar13 = param_1;" (assignment_expression "pbVar13 = param_1" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)".note.GNU-stack";" (assignment_expression "pbVar14 = (byte *)".note.GNU-stack"" identifier = (cast_expression "(byte *)".note.GNU-stack"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".note.GNU-stack"" " string_content "))) ;) (do_statement "do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);" do (compound_statement "{\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar13 < *pbVar14;" (assignment_expression "bVar16 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar18 = *pbVar13 == *pbVar14;" (assignment_expression "bVar18 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "cVar10 = (!bVar16 && !bVar18) - bVar16;" (assignment_expression "cVar10 = (!bVar16 && !bVar18) - bVar16" identifier = (binary_expression "(!bVar16 && !bVar18) - bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" ( (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) - identifier)) ;) (expression_statement "uVar12 = (uint)cVar10;" (assignment_expression "uVar12 = (uint)cVar10" identifier = (cast_expression "(uint)cVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }" if (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }" { (expression_statement "uVar3 = 0x10;" (assignment_expression "uVar3 = 0x10" identifier = number_literal) ;) (expression_statement "uVar15 = 0xc;" (assignment_expression "uVar15 = 0xc" identifier = number_literal) ;) (goto_statement "goto LAB_00141567;" goto statement_identifier ;) })) (labeled_statement "LAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;" statement_identifier : (if_statement "if (param_6 == 0) goto LAB_00141661;" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00141661;" goto statement_identifier ;))) (expression_statement "uVar2 = (uint)param_4;" (assignment_expression "uVar2 = (uint)param_4" identifier = (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar12 = (uint)(param_4 >> 1) & 1;" (assignment_expression "uVar12 = (uint)(param_4 >> 1) & 1" identifier = (binary_expression "(uint)(param_4 >> 1) & 1" (call_expression "(uint)(param_4 >> 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 >> 1)" ( (binary_expression "param_4 >> 1" identifier >> number_literal) ))) & number_literal)) ;) (expression_statement "uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;" (assignment_expression "uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000" identifier = (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000" (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000" (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000" (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400" (binary_expression "uVar2 * 4 & 0x10 | uVar12" (binary_expression "uVar2 * 4 & 0x10" (binary_expression "uVar2 * 4" identifier * number_literal) & number_literal) | identifier) | (binary_expression "uVar2 & 0x400" identifier & number_literal)) | (binary_expression "uVar2 << 0x13 & 0x800000" (binary_expression "uVar2 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "uVar2 << 0x13 & 0x1000000" (binary_expression "uVar2 << 0x13" identifier << number_literal) & number_literal)) | (binary_expression "(uint)(param_4 >> 0x10) & 0x8000" (call_expression "(uint)(param_4 >> 0x10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 >> 0x10)" ( (binary_expression "param_4 >> 0x10" identifier >> number_literal) ))) & number_literal))) ;) (expression_statement "uVar12 = param_2 != 8 & uVar12;" (assignment_expression "uVar12 = param_2 != 8 & uVar12" identifier = (binary_expression "param_2 != 8 & uVar12" (binary_expression "param_2 != 8" identifier != number_literal) & identifier)) ;) (goto_statement "goto LAB_00141553;" goto statement_identifier ;) })) (expression_statement "lVar5 = 8;" (assignment_expression "lVar5 = 8" identifier = number_literal) ;) (expression_statement "pbVar13 = param_1;" (assignment_expression "pbVar13 = param_1" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)".interp";" (assignment_expression "pbVar14 = (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 (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);" do (compound_statement "{\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar16 = *pbVar13 < *pbVar14;" (assignment_expression "bVar16 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar18 = *pbVar13 == *pbVar14;" (assignment_expression "bVar18 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar18)" ( identifier )) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar16 && !bVar18) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar18) == bVar16" identifier = (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" ( (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" ! identifier) && (unary_expression "!bVar18" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }" { (expression_statement "lVar5 = 8;" (assignment_expression "lVar5 = 8" identifier = number_literal) ;) (expression_statement "pbVar13 = param_1;" (assignment_expression "pbVar13 = param_1" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)".strtab";" (assignment_expression "pbVar14 = (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 (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);" do (compound_statement "{\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar17 = *pbVar13 < *pbVar14;" (assignment_expression "bVar17 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (expression_statement "bVar16 = (!bVar17 && !bVar16) == bVar17;" (assignment_expression "bVar16 = (!bVar17 && !bVar16) == bVar17" identifier = (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" ( (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) == identifier)) ;) (if_statement "if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }" if (parenthesized_expression "(!bVar16)" ( (unary_expression "!bVar16" ! identifier) )) (compound_statement "{\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }" { (expression_statement "lVar5 = 8;" (assignment_expression "lVar5 = 8" identifier = number_literal) ;) (expression_statement "pbVar13 = param_1;" (assignment_expression "pbVar13 = param_1" identifier = identifier) ;) (expression_statement "pbVar14 = (byte *)".symtab";" (assignment_expression "pbVar14 = (byte *)".symtab"" identifier = (cast_expression "(byte *)".symtab"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".symtab"" " string_content "))) ;) (do_statement "do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);" do (compound_statement "{\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        }" { (if_statement "if (lVar5 == 0) break;" if (parenthesized_expression "(lVar5 == 0)" ( (binary_expression "lVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar18 = *pbVar13 < *pbVar14;" (assignment_expression "bVar18 = *pbVar13 < *pbVar14" identifier = (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" * identifier) < (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" identifier = (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar14" * identifier))) ;) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar13 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1" identifier = (binary_expression "pbVar14 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar19 * -2" identifier + (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar16)" ( identifier )) ;) (if_statement "if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;" if (parenthesized_expression "((!bVar18 && !bVar16) != bVar18)" ( (binary_expression "(!bVar18 && !bVar16) != bVar18" (parenthesized_expression "(!bVar18 && !bVar16)" ( (binary_expression "!bVar18 && !bVar16" (unary_expression "!bVar18" ! identifier) && (unary_expression "!bVar16" ! identifier)) )) != identifier) )) (goto_statement "goto LAB_001418d2;" goto statement_identifier ;)) })) })) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" identifier = number_literal) ;) (expression_statement "uVar12 = (uint)(param_2 != 8);" (assignment_expression "uVar12 = (uint)(param_2 != 8)" identifier = (call_expression "(uint)(param_2 != 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 != 8)" ( (binary_expression "param_2 != 8" identifier != number_literal) )))) ;) (labeled_statement "LAB_001416d0:\n    uVar15 = 0xc;" statement_identifier : (expression_statement "uVar15 = 0xc;" (assignment_expression "uVar15 = 0xc" identifier = number_literal) ;)) }))) (expression_statement "uVar12 = uVar12 * 2;" (assignment_expression "uVar12 = uVar12 * 2" identifier = (binary_expression "uVar12 * 2" identifier * number_literal)) ;) (labeled_statement "LAB_00141567:\n  uVar12 = uVar15 | uVar3 | uVar12;" statement_identifier : (expression_statement "uVar12 = uVar15 | uVar3 | uVar12;" (assignment_expression "uVar12 = uVar15 | uVar3 | uVar12" identifier = (binary_expression "uVar15 | uVar3 | uVar12" (binary_expression "uVar15 | uVar3" identifier | identifier) | identifier)) ;)) (if_statement "if (param_7 != 0) {\n    uVar12 = uVar12 | 0x20000;\n  }" if (parenthesized_expression "(param_7 != 0)" ( (binary_expression "param_7 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar12 = uVar12 | 0x20000;\n  }" { (expression_statement "uVar12 = uVar12 | 0x20000;" (assignment_expression "uVar12 = uVar12 | 0x20000" identifier = (binary_expression "uVar12 | 0x20000" identifier | number_literal)) ;) })) (if_statement "if (lVar4 == 0) {\n    if (param_2 == 0) {\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }\n    lVar4 = *(long *)(lVar9 + 0xe0);\n    *(uint *)(lVar4 + 4) = param_2;\n    *(ulong *)(lVar4 + 8) = param_4;\n    *(undefined4 *)(lVar4 + 0x2c) = param_3;\n    if (param_2 == 8) {\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }\n    bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12);\n    if ((uVar12 & 0x800000) != 0) {\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }\n    *(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6;\n    lVar4 = FUN_0012e990(param_1);\n    if (lVar4 != 0) {\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }\n    uVar6 = FUN_0012b250(lVar9);\n    FUN_0012ba70(uVar6);\n  }\n  else {\n    if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n  }" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    if (param_2 == 0) {\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }\n    lVar4 = *(long *)(lVar9 + 0xe0);\n    *(uint *)(lVar4 + 4) = param_2;\n    *(ulong *)(lVar4 + 8) = param_4;\n    *(undefined4 *)(lVar4 + 0x2c) = param_3;\n    if (param_2 == 8) {\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }\n    bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12);\n    if ((uVar12 & 0x800000) != 0) {\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }\n    *(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6;\n    lVar4 = FUN_0012e990(param_1);\n    if (lVar4 != 0) {\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }\n    uVar6 = FUN_0012b250(lVar9);\n    FUN_0012ba70(uVar6);\n  }" { (if_statement "if (param_2 == 0) {\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }" { (expression_statement "param_2 = bfd_elf_get_default_section_type(uVar12);" (assignment_expression "param_2 = bfd_elf_get_default_section_type(uVar12)" identifier = (call_expression "bfd_elf_get_default_section_type(uVar12)" identifier (argument_list "(uVar12)" ( identifier )))) ;) })) (expression_statement "lVar4 = *(long *)(lVar9 + 0xe0);" (assignment_expression "lVar4 = *(long *)(lVar9 + 0xe0)" identifier = (pointer_expression "*(long *)(lVar9 + 0xe0)" * (cast_expression "(long *)(lVar9 + 0xe0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0xe0)" ( (binary_expression "lVar9 + 0xe0" identifier + number_literal) ))))) ;) (expression_statement "*(uint *)(lVar4 + 4) = param_2;" (assignment_expression "*(uint *)(lVar4 + 4) = param_2" (pointer_expression "*(uint *)(lVar4 + 4)" * (cast_expression "(uint *)(lVar4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 4)" ( (binary_expression "lVar4 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(ulong *)(lVar4 + 8) = param_4;" (assignment_expression "*(ulong *)(lVar4 + 8) = param_4" (pointer_expression "*(ulong *)(lVar4 + 8)" * (cast_expression "(ulong *)(lVar4 + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 8)" ( (binary_expression "lVar4 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(lVar4 + 0x2c) = param_3;" (assignment_expression "*(undefined4 *)(lVar4 + 0x2c) = param_3" (pointer_expression "*(undefined4 *)(lVar4 + 0x2c)" * (cast_expression "(undefined4 *)(lVar4 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x2c)" ( (binary_expression "lVar4 + 0x2c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (param_2 == 8) {\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }" if (parenthesized_expression "(param_2 == 8)" ( (binary_expression "param_2 == 8" identifier == number_literal) )) (compound_statement "{\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }" { (expression_statement "pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);" (assignment_expression "pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8)" identifier = (cast_expression "(byte *)(*(long *)(lVar9 + 0xa8) + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar9 + 0xa8) + 8)" ( (binary_expression "*(long *)(lVar9 + 0xa8) + 8" (pointer_expression "*(long *)(lVar9 + 0xa8)" * (cast_expression "(long *)(lVar9 + 0xa8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0xa8)" ( (binary_expression "lVar9 + 0xa8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*pbVar13 = *pbVar13 | 2;" (assignment_expression "*pbVar13 = *pbVar13 | 2" (pointer_expression "*pbVar13" * identifier) = (binary_expression "*pbVar13 | 2" (pointer_expression "*pbVar13" * identifier) | number_literal)) ;) })) (expression_statement "bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12);" (call_expression "bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12)" identifier (argument_list "(DAT_001b1e50,lVar9,uVar12)" ( identifier , identifier , identifier ))) ;) (if_statement "if ((uVar12 & 0x800000) != 0) {\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }" if (parenthesized_expression "((uVar12 & 0x800000) != 0)" ( (binary_expression "(uVar12 & 0x800000) != 0" (parenthesized_expression "(uVar12 & 0x800000)" ( (binary_expression "uVar12 & 0x800000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }" { (expression_statement "*(int *)(lVar9 + 0xc4) = param_5;" (assignment_expression "*(int *)(lVar9 + 0xc4) = param_5" (pointer_expression "*(int *)(lVar9 + 0xc4)" * (cast_expression "(int *)(lVar9 + 0xc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0xc4)" ( (binary_expression "lVar9 + 0xc4" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6;" (assignment_expression "*(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6" (pointer_expression "*(long *)(*(long *)(lVar9 + 0xe0) + 0xb0)" * (cast_expression "(long *)(*(long *)(lVar9 + 0xe0) + 0xb0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar9 + 0xe0) + 0xb0)" ( (binary_expression "*(long *)(lVar9 + 0xe0) + 0xb0" (pointer_expression "*(long *)(lVar9 + 0xe0)" * (cast_expression "(long *)(lVar9 + 0xe0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0xe0)" ( (binary_expression "lVar9 + 0xe0" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "lVar4 = FUN_0012e990(param_1);" (assignment_expression "lVar4 = FUN_0012e990(param_1)" identifier = (call_expression "FUN_0012e990(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (lVar4 != 0) {\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }" if (parenthesized_expression "(lVar4 != 0)" ( (binary_expression "lVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }" { (expression_statement "FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));" (call_expression "FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8))" identifier (argument_list "(lVar4,*(undefined8 *)(lVar9 + 0xf8))" ( identifier , (pointer_expression "*(undefined8 *)(lVar9 + 0xf8)" * (cast_expression "(undefined8 *)(lVar9 + 0xf8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0xf8)" ( (binary_expression "lVar9 + 0xf8" identifier + number_literal) )))) ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar6 = FUN_0012b250(lVar9);" (assignment_expression "uVar6 = FUN_0012b250(lVar9)" identifier = (call_expression "FUN_0012b250(lVar9)" identifier (argument_list "(lVar9)" ( identifier )))) ;) (expression_statement "FUN_0012ba70(uVar6);" (call_expression "FUN_0012ba70(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) }) (else_clause "else {\n    if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n  }" else (compound_statement "{\n    if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n  }" { (if_statement "if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }" if (parenthesized_expression "((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2))" ( (binary_expression "(param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)" (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)" ( (binary_expression "*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2" (pointer_expression "*(uint *)(*(long *)(lVar4 + 0xe0) + 4)" * (cast_expression "(uint *)(*(long *)(lVar4 + 0xe0) + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar4 + 0xe0) + 4)" ( (binary_expression "*(long *)(lVar4 + 0xe0) + 4" (pointer_expression "*(long *)(lVar4 + 0xe0)" * (cast_expression "(long *)(lVar4 + 0xe0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0xe0)" ( (binary_expression "lVar4 + 0xe0" identifier + number_literal) )))) + number_literal) )))) != identifier) ))) )) (compound_statement "{\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }" { (expression_statement "uVar6 = dcgettext(0,"ignoring changed section type for %s",5);" (assignment_expression "uVar6 = 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_00121590(uVar6,param_1);" (call_expression "FUN_00121590(uVar6,param_1)" identifier (argument_list "(uVar6,param_1)" ( identifier , identifier ))) ;) })) (if_statement "if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }" { (if_statement "if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" if (parenthesized_expression "(((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0)" ( (binary_expression "((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0" (parenthesized_expression "((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b)" ( (binary_expression "(*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b" (parenthesized_expression "(*(uint *)(lVar4 + 0x20) ^ uVar12)" ( (binary_expression "*(uint *)(lVar4 + 0x20) ^ uVar12" (pointer_expression "*(uint *)(lVar4 + 0x20)" * (cast_expression "(uint *)(lVar4 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x20)" ( (binary_expression "lVar4 + 0x20" identifier + number_literal) )))) ^ identifier) )) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }" { (expression_statement "*(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;" (assignment_expression "*(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4" (pointer_expression "*(ulong *)(*(long *)(lVar9 + 0xe0) + 8)" * (cast_expression "(ulong *)(*(long *)(lVar9 + 0xe0) + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar9 + 0xe0) + 8)" ( (binary_expression "*(long *)(lVar9 + 0xe0) + 8" (pointer_expression "*(long *)(lVar9 + 0xe0)" * (cast_expression "(long *)(lVar9 + 0xe0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar9 + 0xe0)" ( (binary_expression "lVar9 + 0xe0" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) }) (else_clause "else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" else (compound_statement "{\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" { (expression_statement "uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);" (assignment_expression "uVar6 = 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_00121590(uVar6,param_1);" (call_expression "FUN_00121590(uVar6,param_1)" identifier (argument_list "(uVar6,param_1)" ( identifier , identifier ))) ;) }))) (if_statement "if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" if (parenthesized_expression "(((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5))" ( (binary_expression "((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)" (parenthesized_expression "((uVar12 & 0x800000) != 0)" ( (binary_expression "(uVar12 & 0x800000) != 0" (parenthesized_expression "(uVar12 & 0x800000)" ( (binary_expression "uVar12 & 0x800000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)(lVar4 + 0xc4) != param_5)" ( (binary_expression "*(int *)(lVar4 + 0xc4) != param_5" (pointer_expression "*(int *)(lVar4 + 0xc4)" * (cast_expression "(int *)(lVar4 + 0xc4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0xc4)" ( (binary_expression "lVar4 + 0xc4" identifier + number_literal) )))) != identifier) ))) )) (compound_statement "{\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" { (expression_statement "uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);" (assignment_expression "uVar6 = 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_00121590(uVar6,param_1);" (call_expression "FUN_00121590(uVar6,param_1)" identifier (argument_list "(uVar6,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 (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) 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 (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = 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 ))) ;) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (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 )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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) | IDENT) | (binary_expression IDENT & LIT)) | (binary_expression (binary_expression IDENT << LIT) & LIT)) | (binary_expression (binary_expression IDENT << LIT) & LIT)) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & (binary_expression IDENT != LIT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression 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 = (binary_expression (unary_expression ~ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) )) (goto_statement goto statement_identifier ;))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (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 = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (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 = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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) | IDENT) | (binary_expression IDENT & LIT)) | (binary_expression (binary_expression IDENT << LIT) & LIT)) | (binary_expression (binary_expression IDENT << LIT) & LIT)) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != LIT) & IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ^ IDENT) )) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) })) }))) (return_statement return ;) })))
(function_definition "void FUN_001413e0(byte *param_1,uint param_2,undefined4 param_3,ulong param_4,int param_5,\n                 long param_6,int param_7,int param_8)\n\n{\n  undefined8 *puVar1;\n  uint uVar2;\n  uint uVar3;\n  long lVar4;\n  long lVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined8 *puVar8;\n  long lVar9;\n  char cVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint uVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  long local_48;\n  undefined4 local_40;\n  \n  bVar19 = 0;\n  uVar6 = DAT_001b1ba8;\n  uVar11 = DAT_001b1d44;\n  if (param_8 != 0) {\n    puVar8 = (undefined8 *)xmalloc(0x20);\n    uVar6 = DAT_001b1ba8;\n    puVar1 = puVar8;\n    *puVar8 = DAT_001b1a00;\n    DAT_001b1a00 = puVar1;\n    puVar8[1] = uVar6;\n    puVar8[2] = DAT_001b1a10;\n    uVar11 = DAT_001b1d44;\n    *(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08;\n    *(undefined4 *)(puVar8 + 3) = uVar11;\n  }\n  DAT_001b1a08 = uVar11;\n  DAT_001b1a10 = uVar6;\n  local_48 = param_6;\n  local_40 = param_3;\n  lVar4 = bfd_get_section_by_name_if(DAT_001b1e50,param_1,FUN_0013f580,&local_48);\n  if (lVar4 == 0) {\n    lVar9 = FUN_0012b1e0(param_1,0);\n  }\n  else {\n    FUN_0012b210(lVar4);\n    lVar9 = lVar4;\n  }\n  lVar5 = (**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))(DAT_001b1e50,lVar9);\n  if (lVar5 == 0) {\nLAB_001414e6:\n    uVar2 = (uint)param_4;\n    if ((uVar2 & 0x1000002) == 0x1000000) {\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    \n      FUN_00121900(uVar6,param_1);\n    }\n    uVar12 = (uint)(param_4 >> 1) & 1;\n    uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n    uVar12 = uVar12 & param_2 != 8;\nLAB_00141553:\n    uVar15 = 4;\n    if ((uVar2 & 1) == 0) goto LAB_001416d0;\n  }\n  else {\n    uVar12 = *(uint *)(lVar5 + 0x10);\n    if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n    uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar16 = param_4 < 2;\n    bVar18 = param_4 == 2;\n    if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }\n    lVar5 = 8;\n    pbVar13 = param_1;\n    pbVar14 = (byte *)".interp";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }\n    uVar3 = 1;\n    uVar12 = (uint)(param_2 != 8);\nLAB_001416d0:\n    uVar15 = 0xc;\n  }\n  uVar12 = uVar12 * 2;\nLAB_00141567:\n  uVar12 = uVar15 | uVar3 | uVar12;\n  if (param_7 != 0) {\n    uVar12 = uVar12 | 0x20000;\n  }\n  if (lVar4 == 0) {\n    if (param_2 == 0) {\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }\n    lVar4 = *(long *)(lVar9 + 0xe0);\n    *(uint *)(lVar4 + 4) = param_2;\n    *(ulong *)(lVar4 + 8) = param_4;\n    *(undefined4 *)(lVar4 + 0x2c) = param_3;\n    if (param_2 == 8) {\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }\n    bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12);\n    if ((uVar12 & 0x800000) != 0) {\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }\n    *(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6;\n    lVar4 = FUN_0012e990(param_1);\n    if (lVar4 != 0) {\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }\n    uVar6 = FUN_0012b250(lVar9);\n    FUN_0012ba70(uVar6);\n  }\n  else {\n    if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001413e0(byte *param_1,uint param_2,undefined4 param_3,ulong param_4,int param_5,\n                 long param_6,int param_7,int param_8)" (identifier "FUN_001413e0") (parameter_list "(byte *param_1,uint param_2,undefined4 param_3,ulong param_4,int param_5,\n                 long param_6,int param_7,int param_8)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "ulong param_4" (type_identifier "ulong") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "long param_6" (sized_type_specifier "long" (long "long")) (identifier "param_6")) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) (, ",") (parameter_declaration "int param_8" (primitive_type "int") (identifier "param_8")) () ")"))) (compound_statement "{\n  undefined8 *puVar1;\n  uint uVar2;\n  uint uVar3;\n  long lVar4;\n  long lVar5;\n  undefined8 uVar6;\n  ulong uVar7;\n  undefined8 *puVar8;\n  long lVar9;\n  char cVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  byte *pbVar13;\n  byte *pbVar14;\n  uint uVar15;\n  bool bVar16;\n  bool bVar17;\n  bool bVar18;\n  byte bVar19;\n  long local_48;\n  undefined4 local_40;\n  \n  bVar19 = 0;\n  uVar6 = DAT_001b1ba8;\n  uVar11 = DAT_001b1d44;\n  if (param_8 != 0) {\n    puVar8 = (undefined8 *)xmalloc(0x20);\n    uVar6 = DAT_001b1ba8;\n    puVar1 = puVar8;\n    *puVar8 = DAT_001b1a00;\n    DAT_001b1a00 = puVar1;\n    puVar8[1] = uVar6;\n    puVar8[2] = DAT_001b1a10;\n    uVar11 = DAT_001b1d44;\n    *(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08;\n    *(undefined4 *)(puVar8 + 3) = uVar11;\n  }\n  DAT_001b1a08 = uVar11;\n  DAT_001b1a10 = uVar6;\n  local_48 = param_6;\n  local_40 = param_3;\n  lVar4 = bfd_get_section_by_name_if(DAT_001b1e50,param_1,FUN_0013f580,&local_48);\n  if (lVar4 == 0) {\n    lVar9 = FUN_0012b1e0(param_1,0);\n  }\n  else {\n    FUN_0012b210(lVar4);\n    lVar9 = lVar4;\n  }\n  lVar5 = (**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))(DAT_001b1e50,lVar9);\n  if (lVar5 == 0) {\nLAB_001414e6:\n    uVar2 = (uint)param_4;\n    if ((uVar2 & 0x1000002) == 0x1000000) {\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    \n      FUN_00121900(uVar6,param_1);\n    }\n    uVar12 = (uint)(param_4 >> 1) & 1;\n    uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n    uVar12 = uVar12 & param_2 != 8;\nLAB_00141553:\n    uVar15 = 4;\n    if ((uVar2 & 1) == 0) goto LAB_001416d0;\n  }\n  else {\n    uVar12 = *(uint *)(lVar5 + 0x10);\n    if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n    uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar16 = param_4 < 2;\n    bVar18 = param_4 == 2;\n    if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }\n    lVar5 = 8;\n    pbVar13 = param_1;\n    pbVar14 = (byte *)".interp";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }\n    uVar3 = 1;\n    uVar12 = (uint)(param_2 != 8);\nLAB_001416d0:\n    uVar15 = 0xc;\n  }\n  uVar12 = uVar12 * 2;\nLAB_00141567:\n  uVar12 = uVar15 | uVar3 | uVar12;\n  if (param_7 != 0) {\n    uVar12 = uVar12 | 0x20000;\n  }\n  if (lVar4 == 0) {\n    if (param_2 == 0) {\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }\n    lVar4 = *(long *)(lVar9 + 0xe0);\n    *(uint *)(lVar4 + 4) = param_2;\n    *(ulong *)(lVar4 + 8) = param_4;\n    *(undefined4 *)(lVar4 + 0x2c) = param_3;\n    if (param_2 == 8) {\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }\n    bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12);\n    if ((uVar12 & 0x800000) != 0) {\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }\n    *(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6;\n    lVar4 = FUN_0012e990(param_1);\n    if (lVar4 != 0) {\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }\n    uVar6 = FUN_0012b250(lVar9);\n    FUN_0012ba70(uVar6);\n  }\n  else {\n    if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n  }\n  return;\n}" ({ "{") (declaration "undefined8 *puVar1;" (type_identifier "undefined8") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "undefined8 uVar6;" (type_identifier "undefined8") (identifier "uVar6") (; ";")) (declaration "ulong uVar7;" (type_identifier "ulong") (identifier "uVar7") (; ";")) (declaration "undefined8 *puVar8;" (type_identifier "undefined8") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "char cVar10;" (primitive_type "char") (identifier "cVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "byte *pbVar14;" (type_identifier "byte") (pointer_declarator "*pbVar14" (* "*") (identifier "pbVar14")) (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "bool bVar16;" (primitive_type "bool") (identifier "bVar16") (; ";")) (declaration "bool bVar17;" (primitive_type "bool") (identifier "bVar17") (; ";")) (declaration "bool bVar18;" (primitive_type "bool") (identifier "bVar18") (; ";")) (declaration "byte bVar19;" (type_identifier "byte") (identifier "bVar19") (; ";")) (declaration "long local_48;" (sized_type_specifier "long" (long "long")) (identifier "local_48") (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" (identifier "bVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = DAT_001b1ba8;" (assignment_expression "uVar6 = DAT_001b1ba8" (identifier "uVar6") (= "=") (identifier "DAT_001b1ba8")) (; ";")) (expression_statement "uVar11 = DAT_001b1d44;" (assignment_expression "uVar11 = DAT_001b1d44" (identifier "uVar11") (= "=") (identifier "DAT_001b1d44")) (; ";")) (if_statement "if (param_8 != 0) {\n    puVar8 = (undefined8 *)xmalloc(0x20);\n    uVar6 = DAT_001b1ba8;\n    puVar1 = puVar8;\n    *puVar8 = DAT_001b1a00;\n    DAT_001b1a00 = puVar1;\n    puVar8[1] = uVar6;\n    puVar8[2] = DAT_001b1a10;\n    uVar11 = DAT_001b1d44;\n    *(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08;\n    *(undefined4 *)(puVar8 + 3) = uVar11;\n  }" (if "if") (parenthesized_expression "(param_8 != 0)" (( "(") (binary_expression "param_8 != 0" (identifier "param_8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    puVar8 = (undefined8 *)xmalloc(0x20);\n    uVar6 = DAT_001b1ba8;\n    puVar1 = puVar8;\n    *puVar8 = DAT_001b1a00;\n    DAT_001b1a00 = puVar1;\n    puVar8[1] = uVar6;\n    puVar8[2] = DAT_001b1a10;\n    uVar11 = DAT_001b1d44;\n    *(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08;\n    *(undefined4 *)(puVar8 + 3) = uVar11;\n  }" ({ "{") (expression_statement "puVar8 = (undefined8 *)xmalloc(0x20);" (assignment_expression "puVar8 = (undefined8 *)xmalloc(0x20)" (identifier "puVar8") (= "=") (cast_expression "(undefined8 *)xmalloc(0x20)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x20)" (identifier "xmalloc") (argument_list "(0x20)" (( "(") (number_literal "0x20") () ")"))))) (; ";")) (expression_statement "uVar6 = DAT_001b1ba8;" (assignment_expression "uVar6 = DAT_001b1ba8" (identifier "uVar6") (= "=") (identifier "DAT_001b1ba8")) (; ";")) (expression_statement "puVar1 = puVar8;" (assignment_expression "puVar1 = puVar8" (identifier "puVar1") (= "=") (identifier "puVar8")) (; ";")) (expression_statement "*puVar8 = DAT_001b1a00;" (assignment_expression "*puVar8 = DAT_001b1a00" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (identifier "DAT_001b1a00")) (; ";")) (expression_statement "DAT_001b1a00 = puVar1;" (assignment_expression "DAT_001b1a00 = puVar1" (identifier "DAT_001b1a00") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "puVar8[1] = uVar6;" (assignment_expression "puVar8[1] = uVar6" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "puVar8[2] = DAT_001b1a10;" (assignment_expression "puVar8[2] = DAT_001b1a10" (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "DAT_001b1a10")) (; ";")) (expression_statement "uVar11 = DAT_001b1d44;" (assignment_expression "uVar11 = DAT_001b1d44" (identifier "uVar11") (= "=") (identifier "DAT_001b1d44")) (; ";")) (expression_statement "*(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08;" (assignment_expression "*(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08" (pointer_expression "*(undefined4 *)((long)puVar8 + 0x1c)" (* "*") (cast_expression "(undefined4 *)((long)puVar8 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar8 + 0x1c)" (( "(") (binary_expression "(long)puVar8 + 0x1c" (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "DAT_001b1a08")) (; ";")) (expression_statement "*(undefined4 *)(puVar8 + 3) = uVar11;" (assignment_expression "*(undefined4 *)(puVar8 + 3) = uVar11" (pointer_expression "*(undefined4 *)(puVar8 + 3)" (* "*") (cast_expression "(undefined4 *)(puVar8 + 3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 3)" (( "(") (binary_expression "puVar8 + 3" (identifier "puVar8") (+ "+") (number_literal "3")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (expression_statement "DAT_001b1a08 = uVar11;" (assignment_expression "DAT_001b1a08 = uVar11" (identifier "DAT_001b1a08") (= "=") (identifier "uVar11")) (; ";")) (expression_statement "DAT_001b1a10 = uVar6;" (assignment_expression "DAT_001b1a10 = uVar6" (identifier "DAT_001b1a10") (= "=") (identifier "uVar6")) (; ";")) (expression_statement "local_48 = param_6;" (assignment_expression "local_48 = param_6" (identifier "local_48") (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_40 = param_3;" (assignment_expression "local_40 = param_3" (identifier "local_40") (= "=") (identifier "param_3")) (; ";")) (expression_statement "lVar4 = bfd_get_section_by_name_if(DAT_001b1e50,param_1,FUN_0013f580,&local_48);" (assignment_expression "lVar4 = bfd_get_section_by_name_if(DAT_001b1e50,param_1,FUN_0013f580,&local_48)" (identifier "lVar4") (= "=") (call_expression "bfd_get_section_by_name_if(DAT_001b1e50,param_1,FUN_0013f580,&local_48)" (identifier "bfd_get_section_by_name_if") (argument_list "(DAT_001b1e50,param_1,FUN_0013f580,&local_48)" (( "(") (identifier "DAT_001b1e50") (, ",") (identifier "param_1") (, ",") (identifier "FUN_0013f580") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (if_statement "if (lVar4 == 0) {\n    lVar9 = FUN_0012b1e0(param_1,0);\n  }\n  else {\n    FUN_0012b210(lVar4);\n    lVar9 = lVar4;\n  }" (if "if") (parenthesized_expression "(lVar4 == 0)" (( "(") (binary_expression "lVar4 == 0" (identifier "lVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    lVar9 = FUN_0012b1e0(param_1,0);\n  }" ({ "{") (expression_statement "lVar9 = FUN_0012b1e0(param_1,0);" (assignment_expression "lVar9 = FUN_0012b1e0(param_1,0)" (identifier "lVar9") (= "=") (call_expression "FUN_0012b1e0(param_1,0)" (identifier "FUN_0012b1e0") (argument_list "(param_1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    FUN_0012b210(lVar4);\n    lVar9 = lVar4;\n  }" (else "else") (compound_statement "{\n    FUN_0012b210(lVar4);\n    lVar9 = lVar4;\n  }" ({ "{") (expression_statement "FUN_0012b210(lVar4);" (call_expression "FUN_0012b210(lVar4)" (identifier "FUN_0012b210") (argument_list "(lVar4)" (( "(") (identifier "lVar4") () ")"))) (; ";")) (expression_statement "lVar9 = lVar4;" (assignment_expression "lVar9 = lVar4" (identifier "lVar9") (= "=") (identifier "lVar4")) (; ";")) (} "}")))) (expression_statement "lVar5 = (**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))(DAT_001b1e50,lVar9);" (assignment_expression "lVar5 = (**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))(DAT_001b1e50,lVar9)" (identifier "lVar5") (= "=") (call_expression "(**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))(DAT_001b1e50,lVar9)" (parenthesized_expression "(**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))" (( "(") (pointer_expression "**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0)" (* "*") (pointer_expression "*(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0)" (* "*") (cast_expression "(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0)" (( "(") (binary_expression "*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0" (pointer_expression "*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368)" (* "*") (cast_expression "(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(DAT_001b1e50 + 8) + 0x368)" (( "(") (binary_expression "*(long *)(DAT_001b1e50 + 8) + 0x368" (pointer_expression "*(long *)(DAT_001b1e50 + 8)" (* "*") (cast_expression "(long *)(DAT_001b1e50 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_001b1e50 + 8)" (( "(") (binary_expression "DAT_001b1e50 + 8" (identifier "DAT_001b1e50") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x368")) () ")")))) (+ "+") (number_literal "0xa0")) () ")"))))) () ")")) (argument_list "(DAT_001b1e50,lVar9)" (( "(") (identifier "DAT_001b1e50") (, ",") (identifier "lVar9") () ")")))) (; ";")) (if_statement "if (lVar5 == 0) {\nLAB_001414e6:\n    uVar2 = (uint)param_4;\n    if ((uVar2 & 0x1000002) == 0x1000000) {\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    \n      FUN_00121900(uVar6,param_1);\n    }\n    uVar12 = (uint)(param_4 >> 1) & 1;\n    uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n    uVar12 = uVar12 & param_2 != 8;\nLAB_00141553:\n    uVar15 = 4;\n    if ((uVar2 & 1) == 0) goto LAB_001416d0;\n  }\n  else {\n    uVar12 = *(uint *)(lVar5 + 0x10);\n    if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n    uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar16 = param_4 < 2;\n    bVar18 = param_4 == 2;\n    if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }\n    lVar5 = 8;\n    pbVar13 = param_1;\n    pbVar14 = (byte *)".interp";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }\n    uVar3 = 1;\n    uVar12 = (uint)(param_2 != 8);\nLAB_001416d0:\n    uVar15 = 0xc;\n  }" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001414e6:\n    uVar2 = (uint)param_4;\n    if ((uVar2 & 0x1000002) == 0x1000000) {\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    \n      FUN_00121900(uVar6,param_1);\n    }\n    uVar12 = (uint)(param_4 >> 1) & 1;\n    uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n    uVar12 = uVar12 & param_2 != 8;\nLAB_00141553:\n    uVar15 = 4;\n    if ((uVar2 & 1) == 0) goto LAB_001416d0;\n  }" ({ "{") (labeled_statement "LAB_001414e6:\n    uVar2 = (uint)param_4;" (statement_identifier "LAB_001414e6") (: ":") (expression_statement "uVar2 = (uint)param_4;" (assignment_expression "uVar2 = (uint)param_4" (identifier "uVar2") (= "=") (cast_expression "(uint)param_4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_4"))) (; ";"))) (if_statement "if ((uVar2 & 0x1000002) == 0x1000000) {\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    \n      FUN_00121900(uVar6,param_1);\n    }" (if "if") (parenthesized_expression "((uVar2 & 0x1000002) == 0x1000000)" (( "(") (binary_expression "(uVar2 & 0x1000002) == 0x1000000" (parenthesized_expression "(uVar2 & 0x1000002)" (( "(") (binary_expression "uVar2 & 0x1000002" (identifier "uVar2") (& "&") (number_literal "0x1000002")) () ")")) (== "==") (number_literal "0x1000000")) () ")")) (compound_statement "{\n      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);\n                    \n      FUN_00121900(uVar6,param_1);\n    }" ({ "{") (expression_statement "uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);" (assignment_expression "uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5)" (identifier "dcgettext") (argument_list "(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5)" (( "(") (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") () ")")))) (; ";")) (expression_statement "FUN_00121900(uVar6,param_1);" (call_expression "FUN_00121900(uVar6,param_1)" (identifier "FUN_00121900") (argument_list "(uVar6,param_1)" (( "(") (identifier "uVar6") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar12 = (uint)(param_4 >> 1) & 1;" (assignment_expression "uVar12 = (uint)(param_4 >> 1) & 1" (identifier "uVar12") (= "=") (binary_expression "(uint)(param_4 >> 1) & 1" (call_expression "(uint)(param_4 >> 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_4 >> 1)" (( "(") (binary_expression "param_4 >> 1" (identifier "param_4") (>> ">>") (number_literal "1")) () ")"))) (& "&") (number_literal "1"))) (; ";")) (expression_statement "uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;" (assignment_expression "uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000" (identifier "uVar3") (= "=") (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000" (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n            uVar2 << 0x13 & 0x1000000" (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000" (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400" (binary_expression "uVar2 * 4 & 0x10 | uVar12" (binary_expression "uVar2 * 4 & 0x10" (binary_expression "uVar2 * 4" (identifier "uVar2") (* "*") (number_literal "4")) (& "&") (number_literal "0x10")) (| "|") (identifier "uVar12")) (| "|") (binary_expression "uVar2 & 0x400" (identifier "uVar2") (& "&") (number_literal "0x400"))) (| "|") (binary_expression "uVar2 << 0x13 & 0x800000" (binary_expression "uVar2 << 0x13" (identifier "uVar2") (<< "<<") (number_literal "0x13")) (& "&") (number_literal "0x800000"))) (| "|") (binary_expression "uVar2 << 0x13 & 0x1000000" (binary_expression "uVar2 << 0x13" (identifier "uVar2") (<< "<<") (number_literal "0x13")) (& "&") (number_literal "0x1000000"))) (| "|") (binary_expression "(uint)(param_4 >> 0x10) & 0x8000" (call_expression "(uint)(param_4 >> 0x10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_4 >> 0x10)" (( "(") (binary_expression "param_4 >> 0x10" (identifier "param_4") (>> ">>") (number_literal "0x10")) () ")"))) (& "&") (number_literal "0x8000")))) (; ";")) (expression_statement "uVar12 = uVar12 & param_2 != 8;" (assignment_expression "uVar12 = uVar12 & param_2 != 8" (identifier "uVar12") (= "=") (binary_expression "uVar12 & param_2 != 8" (identifier "uVar12") (& "&") (binary_expression "param_2 != 8" (identifier "param_2") (!= "!=") (number_literal "8")))) (; ";")) (labeled_statement "LAB_00141553:\n    uVar15 = 4;" (statement_identifier "LAB_00141553") (: ":") (expression_statement "uVar15 = 4;" (assignment_expression "uVar15 = 4" (identifier "uVar15") (= "=") (number_literal "4")) (; ";"))) (if_statement "if ((uVar2 & 1) == 0) goto LAB_001416d0;" (if "if") (parenthesized_expression "((uVar2 & 1) == 0)" (( "(") (binary_expression "(uVar2 & 1) == 0" (parenthesized_expression "(uVar2 & 1)" (( "(") (binary_expression "uVar2 & 1" (identifier "uVar2") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001416d0;" (goto "goto") (statement_identifier "LAB_001416d0") (; ";"))) (} "}")) (else_clause "else {\n    uVar12 = *(uint *)(lVar5 + 0x10);\n    if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n    uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar16 = param_4 < 2;\n    bVar18 = param_4 == 2;\n    if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }\n    lVar5 = 8;\n    pbVar13 = param_1;\n    pbVar14 = (byte *)".interp";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }\n    uVar3 = 1;\n    uVar12 = (uint)(param_2 != 8);\nLAB_001416d0:\n    uVar15 = 0xc;\n  }" (else "else") (compound_statement "{\n    uVar12 = *(uint *)(lVar5 + 0x10);\n    if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n    uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;\n    if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }\n    if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }\n    if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }\n    bVar16 = param_4 < 2;\n    bVar18 = param_4 == 2;\n    if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }\n    lVar5 = 8;\n    pbVar13 = param_1;\n    pbVar14 = (byte *)".interp";\n    do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);\n    bVar17 = false;\n    bVar16 = (!bVar16 && !bVar18) == bVar16;\n    if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }\n    uVar3 = 1;\n    uVar12 = (uint)(param_2 != 8);\nLAB_001416d0:\n    uVar15 = 0xc;\n  }" ({ "{") (expression_statement "uVar12 = *(uint *)(lVar5 + 0x10);" (assignment_expression "uVar12 = *(uint *)(lVar5 + 0x10)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(lVar5 + 0x10)" (* "*") (cast_expression "(uint *)(lVar5 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x10)" (( "(") (binary_expression "lVar5 + 0x10" (identifier "lVar5") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((param_2 == 0) || (param_2 == uVar12)) {\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }\n    else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }" (if "if") (parenthesized_expression "((param_2 == 0) || (param_2 == uVar12))" (( "(") (binary_expression "(param_2 == 0) || (param_2 == uVar12)" (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_2 == uVar12)" (( "(") (binary_expression "param_2 == uVar12" (identifier "param_2") (== "==") (identifier "uVar12")) () ")"))) () ")")) (compound_statement "{\nLAB_001414dd:\n      param_2 = uVar12;\n      if (lVar4 != 0) goto LAB_001414e6;\n    }" ({ "{") (labeled_statement "LAB_001414dd:\n      param_2 = uVar12;" (statement_identifier "LAB_001414dd") (: ":") (expression_statement "param_2 = uVar12;" (assignment_expression "param_2 = uVar12" (identifier "param_2") (= "=") (identifier "uVar12")) (; ";"))) (if_statement "if (lVar4 != 0) goto LAB_001414e6;" (if "if") (parenthesized_expression "(lVar4 != 0)" (( "(") (binary_expression "lVar4 != 0" (identifier "lVar4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001414e6;" (goto "goto") (statement_identifier "LAB_001414e6") (; ";"))) (} "}")) (else_clause "else {\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }" (else "else") (compound_statement "{\n      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }\n      if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }" ({ "{") (if_statement "if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }" (if "if") (parenthesized_expression "((uVar12 - 0xe < 3) || (lVar4 != 0))" (( "(") (binary_expression "(uVar12 - 0xe < 3) || (lVar4 != 0)" (parenthesized_expression "(uVar12 - 0xe < 3)" (( "(") (binary_expression "uVar12 - 0xe < 3" (binary_expression "uVar12 - 0xe" (identifier "uVar12") (- "-") (number_literal "0xe")) (< "<") (number_literal "3")) () ")")) (|| "||") (parenthesized_expression "(lVar4 != 0)" (( "(") (binary_expression "lVar4 != 0" (identifier "lVar4") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n        uVar12 = *(uint *)(lVar5 + 0x10);\n        goto LAB_001414dd;\n      }" ({ "{") (expression_statement "uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);" (assignment_expression "uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5)" (identifier "uVar6") (= "=") (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_00121590(uVar6,param_1);" (call_expression "FUN_00121590(uVar6,param_1)" (identifier "FUN_00121590") (argument_list "(uVar6,param_1)" (( "(") (identifier "uVar6") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "uVar12 = *(uint *)(lVar5 + 0x10);" (assignment_expression "uVar12 = *(uint *)(lVar5 + 0x10)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(lVar5 + 0x10)" (* "*") (cast_expression "(uint *)(lVar5 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x10)" (( "(") (binary_expression "lVar5 + 0x10" (identifier "lVar5") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (goto_statement "goto LAB_001414dd;" (goto "goto") (statement_identifier "LAB_001414dd") (; ";")) (} "}"))) (if_statement "if ((uVar12 != 7) && (param_2 < 0x70000000)) {\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" (if "if") (parenthesized_expression "((uVar12 != 7) && (param_2 < 0x70000000))" (( "(") (binary_expression "(uVar12 != 7) && (param_2 < 0x70000000)" (parenthesized_expression "(uVar12 != 7)" (( "(") (binary_expression "uVar12 != 7" (identifier "uVar12") (!= "!=") (number_literal "7")) () ")")) (&& "&&") (parenthesized_expression "(param_2 < 0x70000000)" (( "(") (binary_expression "param_2 < 0x70000000" (identifier "param_2") (< "<") (number_literal "0x70000000")) () ")"))) () ")")) (compound_statement "{\n        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" ({ "{") (expression_statement "uVar6 = dcgettext(0,"setting incorrect section type for %s",5);" (assignment_expression "uVar6 = dcgettext(0,"setting incorrect section type for %s",5)" (identifier "uVar6") (= "=") (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_00121590(uVar6,param_1);" (call_expression "FUN_00121590(uVar6,param_1)" (identifier "FUN_00121590") (argument_list "(uVar6,param_1)" (( "(") (identifier "uVar6") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;" (assignment_expression "uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4" (identifier "uVar7") (= "=") (binary_expression "~*(ulong *)(lVar5 + 0x18) & param_4" (unary_expression "~*(ulong *)(lVar5 + 0x18)" (~ "~") (pointer_expression "*(ulong *)(lVar5 + 0x18)" (* "*") (cast_expression "(ulong *)(lVar5 + 0x18)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x18)" (( "(") (binary_expression "lVar5 + 0x18" (identifier "lVar5") (+ "+") (number_literal "0x18")) () ")"))))) (& "&") (identifier "param_4"))) (; ";")) (if_statement "if ((uVar7 & 0xfffff) == 0) {\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }" (if "if") (parenthesized_expression "((uVar7 & 0xfffff) == 0)" (( "(") (binary_expression "(uVar7 & 0xfffff) == 0" (parenthesized_expression "(uVar7 & 0xfffff)" (( "(") (binary_expression "uVar7 & 0xfffff" (identifier "uVar7") (& "&") (number_literal "0xfffff")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);\n      goto LAB_001414e6;\n    }" ({ "{") (labeled_statement "LAB_001416b8:\n      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);" (statement_identifier "LAB_001416b8") (: ":") (expression_statement "param_4 = param_4 | *(ulong *)(lVar5 + 0x18);" (assignment_expression "param_4 = param_4 | *(ulong *)(lVar5 + 0x18)" (identifier "param_4") (= "=") (binary_expression "param_4 | *(ulong *)(lVar5 + 0x18)" (identifier "param_4") (| "|") (pointer_expression "*(ulong *)(lVar5 + 0x18)" (* "*") (cast_expression "(ulong *)(lVar5 + 0x18)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x18)" (( "(") (binary_expression "lVar5 + 0x18" (identifier "lVar5") (+ "+") (number_literal "0x18")) () ")")))))) (; ";"))) (goto_statement "goto LAB_001414e6;" (goto "goto") (statement_identifier "LAB_001414e6") (; ";")) (} "}"))) (if_statement "if (*(int *)(lVar5 + 0x10) == 7) {\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }" (if "if") (parenthesized_expression "(*(int *)(lVar5 + 0x10) == 7)" (( "(") (binary_expression "*(int *)(lVar5 + 0x10) == 7" (pointer_expression "*(int *)(lVar5 + 0x10)" (* "*") (cast_expression "(int *)(lVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x10)" (( "(") (binary_expression "lVar5 + 0x10" (identifier "lVar5") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "7")) () ")")) (compound_statement "{\n      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }\n      goto LAB_001416b8;\n    }" ({ "{") (if_statement "if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }" (if "if") (parenthesized_expression "((param_4 - 2 & 0xfffffffffffffffd) != 0)" (( "(") (binary_expression "(param_4 - 2 & 0xfffffffffffffffd) != 0" (parenthesized_expression "(param_4 - 2 & 0xfffffffffffffffd)" (( "(") (binary_expression "param_4 - 2 & 0xfffffffffffffffd" (binary_expression "param_4 - 2" (identifier "param_4") (- "-") (number_literal "2")) (& "&") (number_literal "0xfffffffffffffffd")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;\nLAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }\n        goto LAB_001414e6;\n      }" ({ "{") (if_statement "if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;" (if "if") (parenthesized_expression "(*(int *)(lVar5 + 0xc) == -2)" (( "(") (binary_expression "*(int *)(lVar5 + 0xc) == -2" (pointer_expression "*(int *)(lVar5 + 0xc)" (* "*") (cast_expression "(int *)(lVar5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0xc)" (( "(") (binary_expression "lVar5 + 0xc" (identifier "lVar5") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "-2")) () ")")) (goto_statement "goto LAB_001416a3;" (goto "goto") (statement_identifier "LAB_001416a3") (; ";"))) (labeled_statement "LAB_00141658:\n        if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }" (statement_identifier "LAB_00141658") (: ":") (if_statement "if (param_6 == 0) {\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }" (if "if") (parenthesized_expression "(param_6 == 0)" (( "(") (binary_expression "param_6 == 0" (identifier "param_6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);\n          FUN_00121590(uVar6,param_1);\n        }" ({ "{") (labeled_statement "LAB_00141661:\n          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);" (statement_identifier "LAB_00141661") (: ":") (expression_statement "uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);" (assignment_expression "uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5)" (identifier "uVar6") (= "=") (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_00121590(uVar6,param_1);" (call_expression "FUN_00121590(uVar6,param_1)" (identifier "FUN_00121590") (argument_list "(uVar6,param_1)" (( "(") (identifier "uVar6") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_001414e6;" (goto "goto") (statement_identifier "LAB_001414e6") (; ";")) (} "}"))) (goto_statement "goto LAB_001416b8;" (goto "goto") (statement_identifier "LAB_001416b8") (; ";")) (} "}"))) (if_statement "if (*(int *)(lVar5 + 0xc) == -2) {\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }" (if "if") (parenthesized_expression "(*(int *)(lVar5 + 0xc) == -2)" (( "(") (binary_expression "*(int *)(lVar5 + 0xc) == -2" (pointer_expression "*(int *)(lVar5 + 0xc)" (* "*") (cast_expression "(int *)(lVar5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0xc)" (( "(") (binary_expression "lVar5 + 0xc" (identifier "lVar5") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "-2")) () ")")) (compound_statement "{\nLAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;\n    }" ({ "{") (labeled_statement "LAB_001416a3:\n      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;" (statement_identifier "LAB_001416a3") (: ":") (if_statement "if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))\n      goto LAB_001416b8;" (if "if") (parenthesized_expression "((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))" (( "(") (binary_expression "(param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0)" (parenthesized_expression "(param_1[*(uint *)(lVar5 + 8)] == 0x2e)" (( "(") (binary_expression "param_1[*(uint *)(lVar5 + 8)] == 0x2e" (subscript_expression "param_1[*(uint *)(lVar5 + 8)]" (identifier "param_1") ([ "[") (pointer_expression "*(uint *)(lVar5 + 8)" (* "*") (cast_expression "(uint *)(lVar5 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 8)" (( "(") (binary_expression "lVar5 + 8" (identifier "lVar5") (+ "+") (number_literal "8")) () ")")))) (] "]")) (== "==") (number_literal "0x2e")) () ")")) (&& "&&") (parenthesized_expression "((uVar7 & 0xffffffffffffffcf) == 0)" (( "(") (binary_expression "(uVar7 & 0xffffffffffffffcf) == 0" (parenthesized_expression "(uVar7 & 0xffffffffffffffcf)" (( "(") (binary_expression "uVar7 & 0xffffffffffffffcf" (identifier "uVar7") (& "&") (number_literal "0xffffffffffffffcf")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_001416b8;" (goto "goto") (statement_identifier "LAB_001416b8") (; ";")))) (} "}"))) (expression_statement "bVar16 = param_4 < 2;" (assignment_expression "bVar16 = param_4 < 2" (identifier "bVar16") (= "=") (binary_expression "param_4 < 2" (identifier "param_4") (< "<") (number_literal "2"))) (; ";")) (expression_statement "bVar18 = param_4 == 2;" (assignment_expression "bVar18 = param_4 == 2" (identifier "bVar18") (= "=") (binary_expression "param_4 == 2" (identifier "param_4") (== "==") (number_literal "2"))) (; ";")) (if_statement "if (!bVar18) {\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }" (if "if") (parenthesized_expression "(!bVar18)" (( "(") (unary_expression "!bVar18" (! "!") (identifier "bVar18")) () ")")) (compound_statement "{\n      bVar16 = param_4 < 4;\n      bVar18 = param_4 == 4;\n      if (!bVar18) goto LAB_00141658;\n      lVar5 = 0x10;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".note.GNU-stack";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);\n      cVar10 = (!bVar16 && !bVar18) - bVar16;\n      uVar12 = (uint)cVar10;\n      if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }\nLAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;\n      uVar2 = (uint)param_4;\n      uVar12 = (uint)(param_4 >> 1) & 1;\n      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;\n      uVar12 = param_2 != 8 & uVar12;\n      goto LAB_00141553;\n    }" ({ "{") (expression_statement "bVar16 = param_4 < 4;" (assignment_expression "bVar16 = param_4 < 4" (identifier "bVar16") (= "=") (binary_expression "param_4 < 4" (identifier "param_4") (< "<") (number_literal "4"))) (; ";")) (expression_statement "bVar18 = param_4 == 4;" (assignment_expression "bVar18 = param_4 == 4" (identifier "bVar18") (= "=") (binary_expression "param_4 == 4" (identifier "param_4") (== "==") (number_literal "4"))) (; ";")) (if_statement "if (!bVar18) goto LAB_00141658;" (if "if") (parenthesized_expression "(!bVar18)" (( "(") (unary_expression "!bVar18" (! "!") (identifier "bVar18")) () ")")) (goto_statement "goto LAB_00141658;" (goto "goto") (statement_identifier "LAB_00141658") (; ";"))) (expression_statement "lVar5 = 0x10;" (assignment_expression "lVar5 = 0x10" (identifier "lVar5") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "pbVar13 = param_1;" (assignment_expression "pbVar13 = param_1" (identifier "pbVar13") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar14 = (byte *)".note.GNU-stack";" (assignment_expression "pbVar14 = (byte *)".note.GNU-stack"" (identifier "pbVar14") (= "=") (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 (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar18);" (do "do") (compound_statement "{\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar16 = *pbVar13 < *pbVar14;\n        bVar18 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar5 == 0) break;" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" (identifier "lVar5") (= "=") (binary_expression "lVar5 + -1" (identifier "lVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar13 < *pbVar14;" (assignment_expression "bVar16 = *pbVar13 < *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar18 = *pbVar13 == *pbVar14;" (assignment_expression "bVar18 = *pbVar13 == *pbVar14" (identifier "bVar18") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar19 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar19 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (; ";")) (expression_statement "cVar10 = (!bVar16 && !bVar18) - bVar16;" (assignment_expression "cVar10 = (!bVar16 && !bVar18) - bVar16" (identifier "cVar10") (= "=") (binary_expression "(!bVar16 && !bVar18) - bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" (( "(") (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar18" (! "!") (identifier "bVar18"))) () ")")) (- "-") (identifier "bVar16"))) (; ";")) (expression_statement "uVar12 = (uint)cVar10;" (assignment_expression "uVar12 = (uint)cVar10" (identifier "uVar12") (= "=") (cast_expression "(uint)cVar10" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "cVar10"))) (; ";")) (if_statement "if (cVar10 == '\0') {\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }" (if "if") (parenthesized_expression "(cVar10 == '\0')" (( "(") (binary_expression "cVar10 == '\0'" (identifier "cVar10") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar3 = 0x10;\n        uVar15 = 0xc;\n        goto LAB_00141567;\n      }" ({ "{") (expression_statement "uVar3 = 0x10;" (assignment_expression "uVar3 = 0x10" (identifier "uVar3") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "uVar15 = 0xc;" (assignment_expression "uVar15 = 0xc" (identifier "uVar15") (= "=") (number_literal "0xc")) (; ";")) (goto_statement "goto LAB_00141567;" (goto "goto") (statement_identifier "LAB_00141567") (; ";")) (} "}"))) (labeled_statement "LAB_001418d2:\n      if (param_6 == 0) goto LAB_00141661;" (statement_identifier "LAB_001418d2") (: ":") (if_statement "if (param_6 == 0) goto LAB_00141661;" (if "if") (parenthesized_expression "(param_6 == 0)" (( "(") (binary_expression "param_6 == 0" (identifier "param_6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00141661;" (goto "goto") (statement_identifier "LAB_00141661") (; ";")))) (expression_statement "uVar2 = (uint)param_4;" (assignment_expression "uVar2 = (uint)param_4" (identifier "uVar2") (= "=") (cast_expression "(uint)param_4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_4"))) (; ";")) (expression_statement "uVar12 = (uint)(param_4 >> 1) & 1;" (assignment_expression "uVar12 = (uint)(param_4 >> 1) & 1" (identifier "uVar12") (= "=") (binary_expression "(uint)(param_4 >> 1) & 1" (call_expression "(uint)(param_4 >> 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_4 >> 1)" (( "(") (binary_expression "param_4 >> 1" (identifier "param_4") (>> ">>") (number_literal "1")) () ")"))) (& "&") (number_literal "1"))) (; ";")) (expression_statement "uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;" (assignment_expression "uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000" (identifier "uVar3") (= "=") (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000" (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |\n              uVar2 << 0x13 & 0x1000000" (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000" (binary_expression "uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400" (binary_expression "uVar2 * 4 & 0x10 | uVar12" (binary_expression "uVar2 * 4 & 0x10" (binary_expression "uVar2 * 4" (identifier "uVar2") (* "*") (number_literal "4")) (& "&") (number_literal "0x10")) (| "|") (identifier "uVar12")) (| "|") (binary_expression "uVar2 & 0x400" (identifier "uVar2") (& "&") (number_literal "0x400"))) (| "|") (binary_expression "uVar2 << 0x13 & 0x800000" (binary_expression "uVar2 << 0x13" (identifier "uVar2") (<< "<<") (number_literal "0x13")) (& "&") (number_literal "0x800000"))) (| "|") (binary_expression "uVar2 << 0x13 & 0x1000000" (binary_expression "uVar2 << 0x13" (identifier "uVar2") (<< "<<") (number_literal "0x13")) (& "&") (number_literal "0x1000000"))) (| "|") (binary_expression "(uint)(param_4 >> 0x10) & 0x8000" (call_expression "(uint)(param_4 >> 0x10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_4 >> 0x10)" (( "(") (binary_expression "param_4 >> 0x10" (identifier "param_4") (>> ">>") (number_literal "0x10")) () ")"))) (& "&") (number_literal "0x8000")))) (; ";")) (expression_statement "uVar12 = param_2 != 8 & uVar12;" (assignment_expression "uVar12 = param_2 != 8 & uVar12" (identifier "uVar12") (= "=") (binary_expression "param_2 != 8 & uVar12" (binary_expression "param_2 != 8" (identifier "param_2") (!= "!=") (number_literal "8")) (& "&") (identifier "uVar12"))) (; ";")) (goto_statement "goto LAB_00141553;" (goto "goto") (statement_identifier "LAB_00141553") (; ";")) (} "}"))) (expression_statement "lVar5 = 8;" (assignment_expression "lVar5 = 8" (identifier "lVar5") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar13 = param_1;" (assignment_expression "pbVar13 = param_1" (identifier "pbVar13") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar14 = (byte *)".interp";" (assignment_expression "pbVar14 = (byte *)".interp"" (identifier "pbVar14") (= "=") (cast_expression "(byte *)".interp"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".interp"" (" """) (string_content ".interp") (" """)))) (; ";")) (do_statement "do {\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    } while (bVar18);" (do "do") (compound_statement "{\n      if (lVar5 == 0) break;\n      lVar5 = lVar5 + -1;\n      bVar16 = *pbVar13 < *pbVar14;\n      bVar18 = *pbVar13 == *pbVar14;\n      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n    }" ({ "{") (if_statement "if (lVar5 == 0) break;" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" (identifier "lVar5") (= "=") (binary_expression "lVar5 + -1" (identifier "lVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar16 = *pbVar13 < *pbVar14;" (assignment_expression "bVar16 = *pbVar13 < *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar18 = *pbVar13 == *pbVar14;" (assignment_expression "bVar18 = *pbVar13 == *pbVar14" (identifier "bVar18") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar19 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar19 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (; ";")) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" (identifier "bVar17") (= "=") (false "false")) (; ";")) (expression_statement "bVar16 = (!bVar16 && !bVar18) == bVar16;" (assignment_expression "bVar16 = (!bVar16 && !bVar18) == bVar16" (identifier "bVar16") (= "=") (binary_expression "(!bVar16 && !bVar18) == bVar16" (parenthesized_expression "(!bVar16 && !bVar18)" (( "(") (binary_expression "!bVar16 && !bVar18" (unary_expression "!bVar16" (! "!") (identifier "bVar16")) (&& "&&") (unary_expression "!bVar18" (! "!") (identifier "bVar18"))) () ")")) (== "==") (identifier "bVar16"))) (; ";")) (if_statement "if (!bVar16) {\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }" (if "if") (parenthesized_expression "(!bVar16)" (( "(") (unary_expression "!bVar16" (! "!") (identifier "bVar16")) () ")")) (compound_statement "{\n      lVar5 = 8;\n      pbVar13 = param_1;\n      pbVar14 = (byte *)".strtab";\n      do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);\n      bVar18 = false;\n      bVar16 = (!bVar17 && !bVar16) == bVar17;\n      if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }\n    }" ({ "{") (expression_statement "lVar5 = 8;" (assignment_expression "lVar5 = 8" (identifier "lVar5") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar13 = param_1;" (assignment_expression "pbVar13 = param_1" (identifier "pbVar13") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar14 = (byte *)".strtab";" (assignment_expression "pbVar14 = (byte *)".strtab"" (identifier "pbVar14") (= "=") (cast_expression "(byte *)".strtab"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".strtab"" (" """) (string_content ".strtab") (" """)))) (; ";")) (do_statement "do {\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      } while (bVar16);" (do "do") (compound_statement "{\n        if (lVar5 == 0) break;\n        lVar5 = lVar5 + -1;\n        bVar17 = *pbVar13 < *pbVar14;\n        bVar16 = *pbVar13 == *pbVar14;\n        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar5 == 0) break;" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" (identifier "lVar5") (= "=") (binary_expression "lVar5 + -1" (identifier "lVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar17 = *pbVar13 < *pbVar14;" (assignment_expression "bVar17 = *pbVar13 < *pbVar14" (identifier "bVar17") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar19 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar19 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (; ";")) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";")) (expression_statement "bVar16 = (!bVar17 && !bVar16) == bVar17;" (assignment_expression "bVar16 = (!bVar17 && !bVar16) == bVar17" (identifier "bVar16") (= "=") (binary_expression "(!bVar17 && !bVar16) == bVar17" (parenthesized_expression "(!bVar17 && !bVar16)" (( "(") (binary_expression "!bVar17 && !bVar16" (unary_expression "!bVar17" (! "!") (identifier "bVar17")) (&& "&&") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) () ")")) (== "==") (identifier "bVar17"))) (; ";")) (if_statement "if (!bVar16) {\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }" (if "if") (parenthesized_expression "(!bVar16)" (( "(") (unary_expression "!bVar16" (! "!") (identifier "bVar16")) () ")")) (compound_statement "{\n        lVar5 = 8;\n        pbVar13 = param_1;\n        pbVar14 = (byte *)".symtab";\n        do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);\n        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;\n      }" ({ "{") (expression_statement "lVar5 = 8;" (assignment_expression "lVar5 = 8" (identifier "lVar5") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar13 = param_1;" (assignment_expression "pbVar13 = param_1" (identifier "pbVar13") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbVar14 = (byte *)".symtab";" (assignment_expression "pbVar14 = (byte *)".symtab"" (identifier "pbVar14") (= "=") (cast_expression "(byte *)".symtab"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".symtab"" (" """) (string_content ".symtab") (" """)))) (; ";")) (do_statement "do {\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        } while (bVar16);" (do "do") (compound_statement "{\n          if (lVar5 == 0) break;\n          lVar5 = lVar5 + -1;\n          bVar18 = *pbVar13 < *pbVar14;\n          bVar16 = *pbVar13 == *pbVar14;\n          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;\n          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;\n        }" ({ "{") (if_statement "if (lVar5 == 0) break;" (if "if") (parenthesized_expression "(lVar5 == 0)" (( "(") (binary_expression "lVar5 == 0" (identifier "lVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar5 = lVar5 + -1;" (assignment_expression "lVar5 = lVar5 + -1" (identifier "lVar5") (= "=") (binary_expression "lVar5 + -1" (identifier "lVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar18 = *pbVar13 < *pbVar14;" (assignment_expression "bVar18 = *pbVar13 < *pbVar14" (identifier "bVar18") (= "=") (binary_expression "*pbVar13 < *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (< "<") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "bVar16 = *pbVar13 == *pbVar14;" (assignment_expression "bVar16 = *pbVar13 == *pbVar14" (identifier "bVar16") (= "=") (binary_expression "*pbVar13 == *pbVar14" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (== "==") (pointer_expression "*pbVar14" (* "*") (identifier "pbVar14")))) (; ";")) (expression_statement "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar13 + (ulong)bVar19 * -2" (identifier "pbVar13") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;" (assignment_expression "pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1" (identifier "pbVar14") (= "=") (binary_expression "pbVar14 + (ulong)bVar19 * -2 + 1" (binary_expression "pbVar14 + (ulong)bVar19 * -2" (identifier "pbVar14") (+ "+") (binary_expression "(ulong)bVar19 * -2" (cast_expression "(ulong)bVar19" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar16)" (( "(") (identifier "bVar16") () ")")) (; ";")) (if_statement "if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;" (if "if") (parenthesized_expression "((!bVar18 && !bVar16) != bVar18)" (( "(") (binary_expression "(!bVar18 && !bVar16) != bVar18" (parenthesized_expression "(!bVar18 && !bVar16)" (( "(") (binary_expression "!bVar18 && !bVar16" (unary_expression "!bVar18" (! "!") (identifier "bVar18")) (&& "&&") (unary_expression "!bVar16" (! "!") (identifier "bVar16"))) () ")")) (!= "!=") (identifier "bVar18")) () ")")) (goto_statement "goto LAB_001418d2;" (goto "goto") (statement_identifier "LAB_001418d2") (; ";"))) (} "}"))) (} "}"))) (expression_statement "uVar3 = 1;" (assignment_expression "uVar3 = 1" (identifier "uVar3") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar12 = (uint)(param_2 != 8);" (assignment_expression "uVar12 = (uint)(param_2 != 8)" (identifier "uVar12") (= "=") (call_expression "(uint)(param_2 != 8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_2 != 8)" (( "(") (binary_expression "param_2 != 8" (identifier "param_2") (!= "!=") (number_literal "8")) () ")")))) (; ";")) (labeled_statement "LAB_001416d0:\n    uVar15 = 0xc;" (statement_identifier "LAB_001416d0") (: ":") (expression_statement "uVar15 = 0xc;" (assignment_expression "uVar15 = 0xc" (identifier "uVar15") (= "=") (number_literal "0xc")) (; ";"))) (} "}")))) (expression_statement "uVar12 = uVar12 * 2;" (assignment_expression "uVar12 = uVar12 * 2" (identifier "uVar12") (= "=") (binary_expression "uVar12 * 2" (identifier "uVar12") (* "*") (number_literal "2"))) (; ";")) (labeled_statement "LAB_00141567:\n  uVar12 = uVar15 | uVar3 | uVar12;" (statement_identifier "LAB_00141567") (: ":") (expression_statement "uVar12 = uVar15 | uVar3 | uVar12;" (assignment_expression "uVar12 = uVar15 | uVar3 | uVar12" (identifier "uVar12") (= "=") (binary_expression "uVar15 | uVar3 | uVar12" (binary_expression "uVar15 | uVar3" (identifier "uVar15") (| "|") (identifier "uVar3")) (| "|") (identifier "uVar12"))) (; ";"))) (if_statement "if (param_7 != 0) {\n    uVar12 = uVar12 | 0x20000;\n  }" (if "if") (parenthesized_expression "(param_7 != 0)" (( "(") (binary_expression "param_7 != 0" (identifier "param_7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar12 = uVar12 | 0x20000;\n  }" ({ "{") (expression_statement "uVar12 = uVar12 | 0x20000;" (assignment_expression "uVar12 = uVar12 | 0x20000" (identifier "uVar12") (= "=") (binary_expression "uVar12 | 0x20000" (identifier "uVar12") (| "|") (number_literal "0x20000"))) (; ";")) (} "}"))) (if_statement "if (lVar4 == 0) {\n    if (param_2 == 0) {\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }\n    lVar4 = *(long *)(lVar9 + 0xe0);\n    *(uint *)(lVar4 + 4) = param_2;\n    *(ulong *)(lVar4 + 8) = param_4;\n    *(undefined4 *)(lVar4 + 0x2c) = param_3;\n    if (param_2 == 8) {\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }\n    bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12);\n    if ((uVar12 & 0x800000) != 0) {\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }\n    *(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6;\n    lVar4 = FUN_0012e990(param_1);\n    if (lVar4 != 0) {\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }\n    uVar6 = FUN_0012b250(lVar9);\n    FUN_0012ba70(uVar6);\n  }\n  else {\n    if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(lVar4 == 0)" (( "(") (binary_expression "lVar4 == 0" (identifier "lVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (param_2 == 0) {\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }\n    lVar4 = *(long *)(lVar9 + 0xe0);\n    *(uint *)(lVar4 + 4) = param_2;\n    *(ulong *)(lVar4 + 8) = param_4;\n    *(undefined4 *)(lVar4 + 0x2c) = param_3;\n    if (param_2 == 8) {\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }\n    bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12);\n    if ((uVar12 & 0x800000) != 0) {\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }\n    *(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6;\n    lVar4 = FUN_0012e990(param_1);\n    if (lVar4 != 0) {\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }\n    uVar6 = FUN_0012b250(lVar9);\n    FUN_0012ba70(uVar6);\n  }" ({ "{") (if_statement "if (param_2 == 0) {\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      param_2 = bfd_elf_get_default_section_type(uVar12);\n    }" ({ "{") (expression_statement "param_2 = bfd_elf_get_default_section_type(uVar12);" (assignment_expression "param_2 = bfd_elf_get_default_section_type(uVar12)" (identifier "param_2") (= "=") (call_expression "bfd_elf_get_default_section_type(uVar12)" (identifier "bfd_elf_get_default_section_type") (argument_list "(uVar12)" (( "(") (identifier "uVar12") () ")")))) (; ";")) (} "}"))) (expression_statement "lVar4 = *(long *)(lVar9 + 0xe0);" (assignment_expression "lVar4 = *(long *)(lVar9 + 0xe0)" (identifier "lVar4") (= "=") (pointer_expression "*(long *)(lVar9 + 0xe0)" (* "*") (cast_expression "(long *)(lVar9 + 0xe0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0xe0)" (( "(") (binary_expression "lVar9 + 0xe0" (identifier "lVar9") (+ "+") (number_literal "0xe0")) () ")"))))) (; ";")) (expression_statement "*(uint *)(lVar4 + 4) = param_2;" (assignment_expression "*(uint *)(lVar4 + 4) = param_2" (pointer_expression "*(uint *)(lVar4 + 4)" (* "*") (cast_expression "(uint *)(lVar4 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 4)" (( "(") (binary_expression "lVar4 + 4" (identifier "lVar4") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(ulong *)(lVar4 + 8) = param_4;" (assignment_expression "*(ulong *)(lVar4 + 8) = param_4" (pointer_expression "*(ulong *)(lVar4 + 8)" (* "*") (cast_expression "(ulong *)(lVar4 + 8)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 8)" (( "(") (binary_expression "lVar4 + 8" (identifier "lVar4") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (expression_statement "*(undefined4 *)(lVar4 + 0x2c) = param_3;" (assignment_expression "*(undefined4 *)(lVar4 + 0x2c) = param_3" (pointer_expression "*(undefined4 *)(lVar4 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(lVar4 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x2c)" (( "(") (binary_expression "lVar4 + 0x2c" (identifier "lVar4") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (if_statement "if (param_2 == 8) {\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }" (if "if") (parenthesized_expression "(param_2 == 8)" (( "(") (binary_expression "param_2 == 8" (identifier "param_2") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);\n      *pbVar13 = *pbVar13 | 2;\n    }" ({ "{") (expression_statement "pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);" (assignment_expression "pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8)" (identifier "pbVar13") (= "=") (cast_expression "(byte *)(*(long *)(lVar9 + 0xa8) + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar9 + 0xa8) + 8)" (( "(") (binary_expression "*(long *)(lVar9 + 0xa8) + 8" (pointer_expression "*(long *)(lVar9 + 0xa8)" (* "*") (cast_expression "(long *)(lVar9 + 0xa8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0xa8)" (( "(") (binary_expression "lVar9 + 0xa8" (identifier "lVar9") (+ "+") (number_literal "0xa8")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*pbVar13 = *pbVar13 | 2;" (assignment_expression "*pbVar13 = *pbVar13 | 2" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (= "=") (binary_expression "*pbVar13 | 2" (pointer_expression "*pbVar13" (* "*") (identifier "pbVar13")) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12);" (call_expression "bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12)" (identifier "bfd_set_section_flags") (argument_list "(DAT_001b1e50,lVar9,uVar12)" (( "(") (identifier "DAT_001b1e50") (, ",") (identifier "lVar9") (, ",") (identifier "uVar12") () ")"))) (; ";")) (if_statement "if ((uVar12 & 0x800000) != 0) {\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }" (if "if") (parenthesized_expression "((uVar12 & 0x800000) != 0)" (( "(") (binary_expression "(uVar12 & 0x800000) != 0" (parenthesized_expression "(uVar12 & 0x800000)" (( "(") (binary_expression "uVar12 & 0x800000" (identifier "uVar12") (& "&") (number_literal "0x800000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(lVar9 + 0xc4) = param_5;\n    }" ({ "{") (expression_statement "*(int *)(lVar9 + 0xc4) = param_5;" (assignment_expression "*(int *)(lVar9 + 0xc4) = param_5" (pointer_expression "*(int *)(lVar9 + 0xc4)" (* "*") (cast_expression "(int *)(lVar9 + 0xc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0xc4)" (( "(") (binary_expression "lVar9 + 0xc4" (identifier "lVar9") (+ "+") (number_literal "0xc4")) () ")")))) (= "=") (identifier "param_5")) (; ";")) (} "}"))) (expression_statement "*(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6;" (assignment_expression "*(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6" (pointer_expression "*(long *)(*(long *)(lVar9 + 0xe0) + 0xb0)" (* "*") (cast_expression "(long *)(*(long *)(lVar9 + 0xe0) + 0xb0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar9 + 0xe0) + 0xb0)" (( "(") (binary_expression "*(long *)(lVar9 + 0xe0) + 0xb0" (pointer_expression "*(long *)(lVar9 + 0xe0)" (* "*") (cast_expression "(long *)(lVar9 + 0xe0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0xe0)" (( "(") (binary_expression "lVar9 + 0xe0" (identifier "lVar9") (+ "+") (number_literal "0xe0")) () ")")))) (+ "+") (number_literal "0xb0")) () ")")))) (= "=") (identifier "param_6")) (; ";")) (expression_statement "lVar4 = FUN_0012e990(param_1);" (assignment_expression "lVar4 = FUN_0012e990(param_1)" (identifier "lVar4") (= "=") (call_expression "FUN_0012e990(param_1)" (identifier "FUN_0012e990") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (lVar4 != 0) {\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }" (if "if") (parenthesized_expression "(lVar4 != 0)" (( "(") (binary_expression "lVar4 != 0" (identifier "lVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));\n      return;\n    }" ({ "{") (expression_statement "FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));" (call_expression "FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8))" (identifier "FUN_0012fb90") (argument_list "(lVar4,*(undefined8 *)(lVar9 + 0xf8))" (( "(") (identifier "lVar4") (, ",") (pointer_expression "*(undefined8 *)(lVar9 + 0xf8)" (* "*") (cast_expression "(undefined8 *)(lVar9 + 0xf8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0xf8)" (( "(") (binary_expression "lVar9 + 0xf8" (identifier "lVar9") (+ "+") (number_literal "0xf8")) () ")")))) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar6 = FUN_0012b250(lVar9);" (assignment_expression "uVar6 = FUN_0012b250(lVar9)" (identifier "uVar6") (= "=") (call_expression "FUN_0012b250(lVar9)" (identifier "FUN_0012b250") (argument_list "(lVar9)" (( "(") (identifier "lVar9") () ")")))) (; ";")) (expression_statement "FUN_0012ba70(uVar6);" (call_expression "FUN_0012ba70(uVar6)" (identifier "FUN_0012ba70") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n  }" (else "else") (compound_statement "{\n    if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }\n    if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }\n  }" ({ "{") (if_statement "if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }" (if "if") (parenthesized_expression "((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2))" (( "(") (binary_expression "(param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)" (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)" (( "(") (binary_expression "*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2" (pointer_expression "*(uint *)(*(long *)(lVar4 + 0xe0) + 4)" (* "*") (cast_expression "(uint *)(*(long *)(lVar4 + 0xe0) + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar4 + 0xe0) + 4)" (( "(") (binary_expression "*(long *)(lVar4 + 0xe0) + 4" (pointer_expression "*(long *)(lVar4 + 0xe0)" (* "*") (cast_expression "(long *)(lVar4 + 0xe0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0xe0)" (( "(") (binary_expression "lVar4 + 0xe0" (identifier "lVar4") (+ "+") (number_literal "0xe0")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (!= "!=") (identifier "param_2")) () ")"))) () ")")) (compound_statement "{\n      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);\n      FUN_00121590(uVar6,param_1);\n    }" ({ "{") (expression_statement "uVar6 = dcgettext(0,"ignoring changed section type for %s",5);" (assignment_expression "uVar6 = dcgettext(0,"ignoring changed section type for %s",5)" (identifier "uVar6") (= "=") (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_00121590(uVar6,param_1);" (call_expression "FUN_00121590(uVar6,param_1)" (identifier "FUN_00121590") (argument_list "(uVar6,param_1)" (( "(") (identifier "uVar6") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_4 != 0) {\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }" (if "if") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }\n    }" ({ "{") (if_statement "if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }\n      else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" (if "if") (parenthesized_expression "(((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0)" (( "(") (binary_expression "((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0" (parenthesized_expression "((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b)" (( "(") (binary_expression "(*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b" (parenthesized_expression "(*(uint *)(lVar4 + 0x20) ^ uVar12)" (( "(") (binary_expression "*(uint *)(lVar4 + 0x20) ^ uVar12" (pointer_expression "*(uint *)(lVar4 + 0x20)" (* "*") (cast_expression "(uint *)(lVar4 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x20)" (( "(") (binary_expression "lVar4 + 0x20" (identifier "lVar4") (+ "+") (number_literal "0x20")) () ")")))) (^ "^") (identifier "uVar12")) () ")")) (& "&") (number_literal "0x183841b")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;\n      }" ({ "{") (expression_statement "*(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;" (assignment_expression "*(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4" (pointer_expression "*(ulong *)(*(long *)(lVar9 + 0xe0) + 8)" (* "*") (cast_expression "(ulong *)(*(long *)(lVar9 + 0xe0) + 8)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar9 + 0xe0) + 8)" (( "(") (binary_expression "*(long *)(lVar9 + 0xe0) + 8" (pointer_expression "*(long *)(lVar9 + 0xe0)" (* "*") (cast_expression "(long *)(lVar9 + 0xe0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar9 + 0xe0)" (( "(") (binary_expression "lVar9 + 0xe0" (identifier "lVar9") (+ "+") (number_literal "0xe0")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "param_4")) (; ";")) (} "}")) (else_clause "else {\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" (else "else") (compound_statement "{\n        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" ({ "{") (expression_statement "uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);" (assignment_expression "uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5)" (identifier "uVar6") (= "=") (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_00121590(uVar6,param_1);" (call_expression "FUN_00121590(uVar6,param_1)" (identifier "FUN_00121590") (argument_list "(uVar6,param_1)" (( "(") (identifier "uVar6") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}")))) (if_statement "if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" (if "if") (parenthesized_expression "(((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5))" (( "(") (binary_expression "((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)" (parenthesized_expression "((uVar12 & 0x800000) != 0)" (( "(") (binary_expression "(uVar12 & 0x800000) != 0" (parenthesized_expression "(uVar12 & 0x800000)" (( "(") (binary_expression "uVar12 & 0x800000" (identifier "uVar12") (& "&") (number_literal "0x800000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(lVar4 + 0xc4) != param_5)" (( "(") (binary_expression "*(int *)(lVar4 + 0xc4) != param_5" (pointer_expression "*(int *)(lVar4 + 0xc4)" (* "*") (cast_expression "(int *)(lVar4 + 0xc4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0xc4)" (( "(") (binary_expression "lVar4 + 0xc4" (identifier "lVar4") (+ "+") (number_literal "0xc4")) () ")")))) (!= "!=") (identifier "param_5")) () ")"))) () ")")) (compound_statement "{\n        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);\n        FUN_00121590(uVar6,param_1);\n      }" ({ "{") (expression_statement "uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);" (assignment_expression "uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5)" (identifier "uVar6") (= "=") (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_00121590(uVar6,param_1);" (call_expression "FUN_00121590(uVar6,param_1)" (identifier "FUN_00121590") (argument_list "(uVar6,param_1)" (( "(") (identifier "uVar6") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

{
  void *pvVar1;
  type_3 *psVar2;
  type_1 var_8;
  type_1 var_24;
  type_4 var_4;
  long var_7;
  char *pcVar7;
  type_5 var_15;
  type_3 *psVar9;
  type_4 sec;
  type_6 *var_29;
  char var_20;
  type_7 sVar12;
  type_1 var_12;
  type_8 *var_17;
  type_8 *var_18;
  type_1 var_23;
  bool var_19;
  bool var_21;
  bool var_22;
  type_8 bVar20;
  type_9 match;
  
  bVar20 = 0;
  var_4 = now_seg;
  sVar12 = now_subseg;
  if (var_1 != 0) {
    psVar9 = (type_3 *)var_2(0x20);
    var_4 = now_seg;
    psVar2 = psVar9;
    psVar9->next = type_3;
    type_3 = psVar2;
    psVar9->seg = var_4;
    psVar9->prev_seg = previous_section;
    sVar12 = now_subseg;
    psVar9->prev_subseg = previous_subsection;
    psVar9->subseg = sVar12;
  }
  previous_subsection = sVar12;
  previous_section = var_4;
  match.var_16 = var_16;
  match.info = info;
  var_4 = (type_4)var_3(stdoutput,name,get_section,&match);
  if (var_4 == (type_4)0x0) {
    sec = var_5(name,0);
  }
  else {
    var_6(var_4,0);
    sec = var_4;
  }
  var_7 = (**(type_10 **)((long)stdoutput->xvec->backend_data + 0xa0))(stdoutput,sec);
  if (var_7 == 0) {
LAB_001414e6:
    var_8 = (type_1)var_11;
    if ((var_8 & 0x1000002) == 0x1000000) {
      pcVar7 = (char *)var_9(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);
                    /* WARNING: Subroutine does not return */
      var_10(pcVar7,name);
    }
    var_12 = (type_1)(var_11 >> 1) & 1;
    var_24 = var_8 * 4 & 0x10 | var_12 | var_8 & 0x400 | var_8 << 0x13 & 0x800000 |
            var_8 << 0x13 & 0x1000000 | (type_1)(var_11 >> 0x10) & 0x8000;
    var_12 = var_12 & var_13 != 8;
LAB_00141553:
    var_23 = 4;
    if ((var_8 & 1) == 0) goto LAB_001416d0;
  }
  else {
    var_12 = *(type_1 *)(var_7 + 0x10);
    if ((var_13 == 0) || (var_13 == var_12)) {
LAB_001414dd:
      var_13 = var_12;
      if (var_4 != (type_4)0x0) goto LAB_001414e6;
    }
    else {
      if ((var_12 - 0xe < 3) || (var_4 != (type_4)0x0)) {
        pcVar7 = (char *)var_9(0,"ignoring incorrect section type for %s",5);
        var_14(pcVar7,name);
        var_12 = *(type_1 *)(var_7 + 0x10);
        goto LAB_001414dd;
      }
      if ((var_12 != 7) && (var_13 < 0x70000000)) {
        pcVar7 = (char *)var_9(0,"setting incorrect section type for %s",5);
        var_14(pcVar7,name);
      }
    }
    var_15 = ~*(type_5 *)(var_7 + 0x18) & var_11;
    if ((var_15 & 0xfffff) == 0) {
LAB_001416b8:
      var_11 = var_11 | *(type_5 *)(var_7 + 0x18);
      goto LAB_001414e6;
    }
    if (*(int *)(var_7 + 0x10) == 7) {
      if ((var_11 - 2 & 0xfffffffffffffffd) != 0) {
        if (*(int *)(var_7 + 0xc) == -2) goto LAB_001416a3;
LAB_00141658:
        if (var_16 == (char *)0x0) {
LAB_00141661:
          pcVar7 = (char *)var_9(0,"setting incorrect section attributes for %s",5);
          var_14(pcVar7,name);
        }
        goto LAB_001414e6;
      }
      goto LAB_001416b8;
    }
    if (*(int *)(var_7 + 0xc) == -2) {
LAB_001416a3:
      if ((name[*(type_1 *)(var_7 + 8)] == '.') && ((var_15 & 0xffffffffffffffcf) == 0))
      goto LAB_001416b8;
    }
    var_19 = var_11 < 2;
    var_22 = var_11 == 2;
    if (!var_22) {
      var_19 = var_11 < 4;
      var_22 = var_11 == 4;
      if (!var_22) goto LAB_00141658;
      var_7 = 0x10;
      var_17 = (type_8 *)name;
      var_18 = (type_8 *)".note.GNU-stack";
      do {
        if (var_7 == 0) break;
        var_7 = var_7 + -1;
        var_19 = *var_17 < *var_18;
        var_22 = *var_17 == *var_18;
        var_17 = var_17 + (type_5)bVar20 * -2 + 1;
        var_18 = var_18 + (type_5)bVar20 * -2 + 1;
      } while (var_22);
      var_20 = (!var_19 && !var_22) - var_19;
      var_12 = (type_1)var_20;
      if (var_20 == '\0') {
        var_24 = 0x10;
        var_23 = 0xc;
        goto LAB_00141567;
      }
LAB_001418d2:
      if (var_16 == (char *)0x0) goto LAB_00141661;
      var_8 = (type_1)var_11;
      var_12 = (type_1)(var_11 >> 1) & 1;
      var_24 = var_8 * 4 & 0x10 | var_12 | var_8 & 0x400 | var_8 << 0x13 & 0x800000 |
              var_8 << 0x13 & 0x1000000 | (type_1)(var_11 >> 0x10) & 0x8000;
      var_12 = var_13 != 8 & var_12;
      goto LAB_00141553;
    }
    var_7 = 8;
    var_17 = (type_8 *)name;
    var_18 = (type_8 *)".interp";
    do {
      if (var_7 == 0) break;
      var_7 = var_7 + -1;
      var_19 = *var_17 < *var_18;
      var_22 = *var_17 == *var_18;
      var_17 = var_17 + (type_5)bVar20 * -2 + 1;
      var_18 = var_18 + (type_5)bVar20 * -2 + 1;
    } while (var_22);
    var_21 = false;
    var_19 = (!var_19 && !var_22) == var_19;
    if (!var_19) {
      var_7 = 8;
      var_17 = (type_8 *)name;
      var_18 = (type_8 *)".strtab";
      do {
        if (var_7 == 0) break;
        var_7 = var_7 + -1;
        var_21 = *var_17 < *var_18;
        var_19 = *var_17 == *var_18;
        var_17 = var_17 + (type_5)bVar20 * -2 + 1;
        var_18 = var_18 + (type_5)bVar20 * -2 + 1;
      } while (var_19);
      var_22 = false;
      var_19 = (!var_21 && !var_19) == var_21;
      if (!var_19) {
        var_7 = 8;
        var_17 = (type_8 *)name;
        var_18 = (type_8 *)".symtab";
        do {
          if (var_7 == 0) break;
          var_7 = var_7 + -1;
          var_22 = *var_17 < *var_18;
          var_19 = *var_17 == *var_18;
          var_17 = var_17 + (type_5)bVar20 * -2 + 1;
          var_18 = var_18 + (type_5)bVar20 * -2 + 1;
        } while (var_19);
        if ((!var_22 && !var_19) != var_22) goto LAB_001418d2;
      }
    }
    var_24 = 1;
    var_12 = (type_1)(var_13 != 8);
LAB_001416d0:
    var_23 = 0xc;
  }
  var_12 = var_12 * 2;
LAB_00141567:
  var_12 = var_23 | var_24 | var_12;
  if (var_25 != 0) {
    var_12 = var_12 | 0x20000;
  }
  if (var_4 == (type_4)0x0) {
    if (var_13 == 0) {
      var_13 = var_26(var_12);
    }
    pvVar1 = sec->used_by_bfd;
    *(type_1 *)((long)pvVar1 + 4) = var_13;
    *(type_2 *)((long)pvVar1 + 8) = var_11;
    *(type_1 *)((long)pvVar1 + 0x2c) = info;
    if (var_13 == 8) {
      var_17 = (type_8 *)((long)sec->userdata + 8);
      *var_17 = *var_17 | 2;
    }
    var_27(stdoutput,sec,var_12);
    if ((var_12 & 0x800000) != 0) {
      sec->var_33 = var_33;
    }
    *(char **)((long)sec->used_by_bfd + 0xb0) = var_16;
    var_29 = var_28(name);
    if (var_29 != (type_6 *)0x0) {
      var_30(var_29,sec->symbol);
      return;
    }
    var_29 = var_31(sec);
    var_32(var_29);
  }
  else {
    if ((var_13 != 0) && (*(type_1 *)((long)var_4->used_by_bfd + 4) != var_13)) {
      pcVar7 = (char *)var_9(0,"ignoring changed section type for %s",5);
      var_14(pcVar7,name);
    }
    if (var_11 != 0) {
      if (((var_4->flags ^ var_12) & 0x183841b) == 0) {
        *(type_2 *)((long)sec->used_by_bfd + 8) = var_11;
      }
      else {
        pcVar7 = (char *)var_9(0,"ignoring changed section attributes for %s",5);
        var_14(pcVar7,name);
      }
      if (((var_12 & 0x800000) != 0) && (var_4->var_33 != var_33)) {
        pcVar7 = (char *)var_9(0,"ignoring changed section entity size for %s",5);
        var_14(pcVar7,name);
      }
    }
  }
  return;
}


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

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

{
  undefined8 *puVar1;
  uint uVar2;
  uint uVar3;
  long lVar4;
  long lVar5;
  undefined8 uVar6;
  ulong uVar7;
  undefined8 *puVar8;
  long lVar9;
  char cVar10;
  undefined4 uVar11;
  uint uVar12;
  byte *pbVar13;
  byte *pbVar14;
  uint uVar15;
  bool bVar16;
  bool bVar17;
  bool bVar18;
  byte bVar19;
  long local_48;
  undefined4 local_40;
  
  bVar19 = 0;
  uVar6 = DAT_001b1ba8;
  uVar11 = DAT_001b1d44;
  if (param_8 != 0) {
    puVar8 = (undefined8 *)xmalloc(0x20);
    uVar6 = DAT_001b1ba8;
    puVar1 = puVar8;
    *puVar8 = DAT_001b1a00;
    DAT_001b1a00 = puVar1;
    puVar8[1] = uVar6;
    puVar8[2] = DAT_001b1a10;
    uVar11 = DAT_001b1d44;
    *(undefined4 *)((long)puVar8 + 0x1c) = DAT_001b1a08;
    *(undefined4 *)(puVar8 + 3) = uVar11;
  }
  DAT_001b1a08 = uVar11;
  DAT_001b1a10 = uVar6;
  local_48 = param_6;
  local_40 = param_3;
  lVar4 = bfd_get_section_by_name_if(DAT_001b1e50,param_1,FUN_0013f580,&local_48);
  if (lVar4 == 0) {
    lVar9 = FUN_0012b1e0(param_1,0);
  }
  else {
    FUN_0012b210(lVar4);
    lVar9 = lVar4;
  }
  lVar5 = (**(code **)(*(long *)(*(long *)(DAT_001b1e50 + 8) + 0x368) + 0xa0))(DAT_001b1e50,lVar9);
  if (lVar5 == 0) {
LAB_001414e6:
    uVar2 = (uint)param_4;
    if ((uVar2 & 0x1000002) == 0x1000000) {
      uVar6 = dcgettext(0,"SHF_ALLOC isn\'t set for GNU_MBIND section: %s",5);
                    /* WARNING: Subroutine does not return */
      FUN_00121900(uVar6,param_1);
    }
    uVar12 = (uint)(param_4 >> 1) & 1;
    uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |
            uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;
    uVar12 = uVar12 & param_2 != 8;
LAB_00141553:
    uVar15 = 4;
    if ((uVar2 & 1) == 0) goto LAB_001416d0;
  }
  else {
    uVar12 = *(uint *)(lVar5 + 0x10);
    if ((param_2 == 0) || (param_2 == uVar12)) {
LAB_001414dd:
      param_2 = uVar12;
      if (lVar4 != 0) goto LAB_001414e6;
    }
    else {
      if ((uVar12 - 0xe < 3) || (lVar4 != 0)) {
        uVar6 = dcgettext(0,"ignoring incorrect section type for %s",5);
        FUN_00121590(uVar6,param_1);
        uVar12 = *(uint *)(lVar5 + 0x10);
        goto LAB_001414dd;
      }
      if ((uVar12 != 7) && (param_2 < 0x70000000)) {
        uVar6 = dcgettext(0,"setting incorrect section type for %s",5);
        FUN_00121590(uVar6,param_1);
      }
    }
    uVar7 = ~*(ulong *)(lVar5 + 0x18) & param_4;
    if ((uVar7 & 0xfffff) == 0) {
LAB_001416b8:
      param_4 = param_4 | *(ulong *)(lVar5 + 0x18);
      goto LAB_001414e6;
    }
    if (*(int *)(lVar5 + 0x10) == 7) {
      if ((param_4 - 2 & 0xfffffffffffffffd) != 0) {
        if (*(int *)(lVar5 + 0xc) == -2) goto LAB_001416a3;
LAB_00141658:
        if (param_6 == 0) {
LAB_00141661:
          uVar6 = dcgettext(0,"setting incorrect section attributes for %s",5);
          FUN_00121590(uVar6,param_1);
        }
        goto LAB_001414e6;
      }
      goto LAB_001416b8;
    }
    if (*(int *)(lVar5 + 0xc) == -2) {
LAB_001416a3:
      if ((param_1[*(uint *)(lVar5 + 8)] == 0x2e) && ((uVar7 & 0xffffffffffffffcf) == 0))
      goto LAB_001416b8;
    }
    bVar16 = param_4 < 2;
    bVar18 = param_4 == 2;
    if (!bVar18) {
      bVar16 = param_4 < 4;
      bVar18 = param_4 == 4;
      if (!bVar18) goto LAB_00141658;
      lVar5 = 0x10;
      pbVar13 = param_1;
      pbVar14 = (byte *)".note.GNU-stack";
      do {
        if (lVar5 == 0) break;
        lVar5 = lVar5 + -1;
        bVar16 = *pbVar13 < *pbVar14;
        bVar18 = *pbVar13 == *pbVar14;
        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;
        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;
      } while (bVar18);
      cVar10 = (!bVar16 && !bVar18) - bVar16;
      uVar12 = (uint)cVar10;
      if (cVar10 == '\0') {
        uVar3 = 0x10;
        uVar15 = 0xc;
        goto LAB_00141567;
      }
LAB_001418d2:
      if (param_6 == 0) goto LAB_00141661;
      uVar2 = (uint)param_4;
      uVar12 = (uint)(param_4 >> 1) & 1;
      uVar3 = uVar2 * 4 & 0x10 | uVar12 | uVar2 & 0x400 | uVar2 << 0x13 & 0x800000 |
              uVar2 << 0x13 & 0x1000000 | (uint)(param_4 >> 0x10) & 0x8000;
      uVar12 = param_2 != 8 & uVar12;
      goto LAB_00141553;
    }
    lVar5 = 8;
    pbVar13 = param_1;
    pbVar14 = (byte *)".interp";
    do {
      if (lVar5 == 0) break;
      lVar5 = lVar5 + -1;
      bVar16 = *pbVar13 < *pbVar14;
      bVar18 = *pbVar13 == *pbVar14;
      pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;
      pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;
    } while (bVar18);
    bVar17 = false;
    bVar16 = (!bVar16 && !bVar18) == bVar16;
    if (!bVar16) {
      lVar5 = 8;
      pbVar13 = param_1;
      pbVar14 = (byte *)".strtab";
      do {
        if (lVar5 == 0) break;
        lVar5 = lVar5 + -1;
        bVar17 = *pbVar13 < *pbVar14;
        bVar16 = *pbVar13 == *pbVar14;
        pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;
        pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;
      } while (bVar16);
      bVar18 = false;
      bVar16 = (!bVar17 && !bVar16) == bVar17;
      if (!bVar16) {
        lVar5 = 8;
        pbVar13 = param_1;
        pbVar14 = (byte *)".symtab";
        do {
          if (lVar5 == 0) break;
          lVar5 = lVar5 + -1;
          bVar18 = *pbVar13 < *pbVar14;
          bVar16 = *pbVar13 == *pbVar14;
          pbVar13 = pbVar13 + (ulong)bVar19 * -2 + 1;
          pbVar14 = pbVar14 + (ulong)bVar19 * -2 + 1;
        } while (bVar16);
        if ((!bVar18 && !bVar16) != bVar18) goto LAB_001418d2;
      }
    }
    uVar3 = 1;
    uVar12 = (uint)(param_2 != 8);
LAB_001416d0:
    uVar15 = 0xc;
  }
  uVar12 = uVar12 * 2;
LAB_00141567:
  uVar12 = uVar15 | uVar3 | uVar12;
  if (param_7 != 0) {
    uVar12 = uVar12 | 0x20000;
  }
  if (lVar4 == 0) {
    if (param_2 == 0) {
      param_2 = bfd_elf_get_default_section_type(uVar12);
    }
    lVar4 = *(long *)(lVar9 + 0xe0);
    *(uint *)(lVar4 + 4) = param_2;
    *(ulong *)(lVar4 + 8) = param_4;
    *(undefined4 *)(lVar4 + 0x2c) = param_3;
    if (param_2 == 8) {
      pbVar13 = (byte *)(*(long *)(lVar9 + 0xa8) + 8);
      *pbVar13 = *pbVar13 | 2;
    }
    bfd_set_section_flags(DAT_001b1e50,lVar9,uVar12);
    if ((uVar12 & 0x800000) != 0) {
      *(int *)(lVar9 + 0xc4) = param_5;
    }
    *(long *)(*(long *)(lVar9 + 0xe0) + 0xb0) = param_6;
    lVar4 = FUN_0012e990(param_1);
    if (lVar4 != 0) {
      FUN_0012fb90(lVar4,*(undefined8 *)(lVar9 + 0xf8));
      return;
    }
    uVar6 = FUN_0012b250(lVar9);
    FUN_0012ba70(uVar6);
  }
  else {
    if ((param_2 != 0) && (*(uint *)(*(long *)(lVar4 + 0xe0) + 4) != param_2)) {
      uVar6 = dcgettext(0,"ignoring changed section type for %s",5);
      FUN_00121590(uVar6,param_1);
    }
    if (param_4 != 0) {
      if (((*(uint *)(lVar4 + 0x20) ^ uVar12) & 0x183841b) == 0) {
        *(ulong *)(*(long *)(lVar9 + 0xe0) + 8) = param_4;
      }
      else {
        uVar6 = dcgettext(0,"ignoring changed section attributes for %s",5);
        FUN_00121590(uVar6,param_1);
      }
      if (((uVar12 & 0x800000) != 0) && (*(int *)(lVar4 + 0xc4) != param_5)) {
        uVar6 = dcgettext(0,"ignoring changed section entity size for %s",5);
        FUN_00121590(uVar6,param_1);
      }
    }
  }
  return;
}

