
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void attach_allocated_section_to_segment(Layout * this, Target *
   target, Output_section * os) */

void __thiscall
gold::Layout::attach_allocated_section_to_segment(Layout *this,Target *target,Output_section *os)

{
  General_options *pGVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  Elf_Word EVar5;
  Elf_Xword EVar6;
  bool bVar7;
  uint uVar8;
  char *format;
  Output_segment *pOVar9;
  int iVar10;
  pointer ppOVar11;
  byte *pbVar12;
  byte *pbVar13;
  bool bVar14;
  byte bVar15;
  uint64_t addr;
  undefined4 uStack_14;
  
  bVar15 = 0;
  uStack_14 = 0xad059;
  EVar6 = os->flags_;
  if ((EVar6 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/layout.cc",0x7af,"attach_allocated_section_to_segment");
  }
  pGVar1 = parameters->options_;
  if (pGVar1 == (General_options *)0x0) {
LAB_000ad5a2:
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
  }
  if (((pGVar1->relocatable_).value == false) &&
     ((this->script_options_->script_sections_).saw_sections_clause_ == false)) {
    uVar8 = (-(uint)((EVar6 & 1) == 0) & 0xfffffffe) + 6;
    if ((EVar6 & 4) != 0) {
      uVar8 = uVar8 | 1;
    }
    uVar8 = uVar8 | (uint)os->extra_segment_flags_;
    bVar7 = General_options::section_start(pGVar1,os->name_,&addr);
    if ((-1 < (char)os->field_0x92) &&
       (ppOVar11 = (this->segment_list_).
                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>
                   ._M_impl._M_start,
       (this->segment_list_).
       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.
       _M_finish != ppOVar11)) {
      do {
        pOVar9 = *ppOVar11;
        if ((pOVar9->type_ == 1) && ((pOVar9->field_0x19c & 8) == 0)) {
          pGVar1 = parameters->options_;
          if (pGVar1 == (General_options *)0x0) goto LAB_000ad5a2;
          if ((((pGVar1->omagic_).value != false) || (((uVar8 ^ pOVar9->flags_) & 2) == 0)) &&
             (((target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false))
              || (((uVar8 ^ pOVar9->flags_) & 1) == 0)))) {
            if ((pGVar1->Tbss_).user_set_via_option != false) {
              EVar5 = os->type_;
              bVar14 = Output_segment::has_any_data_sections(pOVar9);
              if ((EVar5 == 8) == bVar14) goto LAB_000ad348;
              pOVar9 = *ppOVar11;
            }
            if (((-1 < (char)os->field_0x91) || (os->type_ == 8)) ||
               ((pOVar9->field_0x19c & 4) != 0)) {
              if (bVar7) {
                if ((pOVar9->field_0x19c & 2) != 0) goto LAB_000ad348;
                Output_segment::add_initial_output_data(pOVar9,&os->super_Output_data);
                pOVar9 = *ppOVar11;
                if (pOVar9->type_ != 7) {
                  pOVar9->flags_ = pOVar9->flags_ | uVar8;
                }
                pOVar9->field_0x19c = pOVar9->field_0x19c | 2;
                *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;
                *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;
                *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;
                *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;
              }
              else {
                Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);
              }
              if (((this->segment_list_).
                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>
                   ._M_impl._M_finish != ppOVar11) && (-1 < (char)os->field_0x92))
              goto LAB_000ad22a;
              break;
            }
          }
        }
LAB_000ad348:
        ppOVar11 = ppOVar11 + 1;
      } while ((this->segment_list_).
               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.
               _M_impl._M_finish != ppOVar11);
    }
    pOVar9 = make_output_segment(this,1,uVar8);
    if (((char)os->field_0x91 < '\0') && (os->type_ != 8)) {
      pOVar9->field_0x19c = pOVar9->field_0x19c | 4;
    }
    Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);
    if (bVar7) {
      pOVar9->field_0x19c = pOVar9->field_0x19c | 2;
      *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;
      *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;
      *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;
      *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;
    }
    if ((char)os->field_0x92 < '\0') {
      pOVar9->field_0x19c = pOVar9->field_0x19c | 8;
      uVar2 = *(uint *)((int)&os->segment_alignment_ + 4);
      uVar3 = (uint)os->segment_alignment_;
      if ((uVar2 != 0 || uVar3 != 0) &&
         (uVar4 = *(uint *)((int)&pOVar9->min_p_align_ + 4),
         uVar4 < uVar2 || uVar4 - uVar2 < (uint)((uint)pOVar9->min_p_align_ < uVar3))) {
        *(uint *)&pOVar9->min_p_align_ = uVar3;
        *(uint *)((int)&pOVar9->min_p_align_ + 4) = uVar2;
      }
    }
LAB_000ad22a:
    if (os->type_ == 7) {
      for (ppOVar11 = (this->segment_list_).
                      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>
                      ._M_impl._M_start;
          ppOVar11 !=
          (this->segment_list_).
          super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.
          _M_finish; ppOVar11 = ppOVar11 + 1) {
        pOVar9 = *ppOVar11;
        if ((pOVar9->type_ == 4) && (((pOVar9->flags_ ^ uVar8) & 2) == 0)) {
          Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);
          if ((this->segment_list_).
              super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.
              _M_impl._M_finish != ppOVar11) goto LAB_000ad234;
          break;
        }
      }
      pOVar9 = make_output_segment(this,4,uVar8);
      Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);
    }
LAB_000ad234:
    if ((EVar6 & 0x400) != 0) {
      pOVar9 = this->tls_segment_;
      if (pOVar9 == (Output_segment *)0x0) {
        make_output_segment(this,7,uVar8);
        pOVar9 = this->tls_segment_;
      }
      Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);
    }
    bVar7 = false;
    bVar14 = (os->field_0x91 & 0x20) == 0;
    if (!bVar14) {
      if (parameters->options_ == (General_options *)0x0) goto LAB_000ad5a2;
      bVar7 = false;
      bVar14 = (parameters->options_->relro_).value == false;
      if (!bVar14) {
        if (uVar8 != 6) {
                    /* WARNING: Subroutine does not return */
          do_gold_unreachable("../../gold/layout.cc",0x835,"attach_allocated_section_to_segment");
        }
        pOVar9 = this->relro_segment_;
        if (pOVar9 == (Output_segment *)0x0) {
          make_output_segment(this,0x6474e552,6);
          pOVar9 = this->relro_segment_;
        }
        Output_segment::add_output_section_to_nonload(pOVar9,os,6);
        bVar7 = (undefined1 *)0xffffffef < &stack0xffffffb4;
        bVar14 = &stack0x00000000 == (undefined1 *)0x3c;
      }
    }
    iVar10 = 8;
    pbVar12 = (byte *)os->name_;
    pbVar13 = (byte *)".interp";
    do {
      if (iVar10 == 0) break;
      iVar10 = iVar10 + -1;
      bVar7 = *pbVar12 < *pbVar13;
      bVar14 = *pbVar12 == *pbVar13;
      pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;
      pbVar13 = pbVar13 + (uint)bVar15 * -2 + 1;
    } while (bVar14);
    if (((!bVar7 && !bVar14) == bVar7) &&
       (((this->script_options_->script_sections_).saw_sections_clause_ == false ||
        ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)))) {
      if (this->interp_segment_ == (Output_segment *)0x0) {
        make_output_segment(this,3,uVar8);
      }
      else {
        format = (char *)gettext();
        gold_warning(format);
      }
      Output_segment::add_output_section_to_nonload(this->interp_segment_,os,uVar8);
    }
  }
  return;
}



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

void FUN_000ad050(char *param_1,int param_2,char *param_3)

{
  uint uVar1;
  uint uVar2;
  char cVar3;
  char cVar4;
  uint uVar5;
  char *pcVar6;
  char *pcVar7;
  int iVar8;
  int *piVar9;
  byte *pbVar10;
  byte *pbVar11;
  bool bVar12;
  bool bVar13;
  byte bVar14;
  char *local_4c;
  char *pcStack_48;
  char *pcStack_44;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  bVar14 = 0;
  uStack_14 = 0xad059;
  uVar1 = *(uint *)(param_3 + 0x54);
  if ((uVar1 & 2) == 0) {
    pcStack_44 = "attach_allocated_section_to_segment";
    local_4c = "../../gold/layout.cc";
    pcStack_48 = (char *)0x7af;
                    /* WARNING: Subroutine does not return */
    FUN_0008b620();
  }
  local_4c = *(char **)(DAT_0033f2f0 + 8);
  if (local_4c == (char *)0x0) {
LAB_000ad5a2:
    pcStack_44 = "options";
    local_4c = "../../gold/parameters.h";
    pcStack_48 = (char *)0x5c;
                    /* WARNING: Subroutine does not return */
    FUN_0008b620();
  }
  if ((local_4c[0x318d] == '\0') && (*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')) {
    uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6;
    if ((uVar1 & 4) != 0) {
      uVar5 = uVar5 | 1;
    }
    pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c));
    pcStack_44 = (char *)&local_24;
    pcStack_48 = *(char **)(param_3 + 0x20);
    cVar3 = FUN_000d8f30();
    if ((-1 < param_3[0x92]) &&
       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)) {
      do {
        local_4c = (char *)*piVar9;
        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {
          iVar8 = *(int *)(DAT_0033f2f0 + 8);
          if (iVar8 == 0) goto LAB_000ad5a2;
          if (((*(char *)(iVar8 + 0x253d) != '\0') ||
              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&
             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&
               (*(char *)(iVar8 + 0x32c9) == '\0')) ||
              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {
            if (*(char *)(iVar8 + 0x4128) != '\0') {
              iVar8 = *(int *)(param_3 + 0x50);
              cVar4 = FUN_000ea480();
              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;
              local_4c = (char *)*piVar9;
            }
            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||
               ((local_4c[0x19c] & 4U) != 0)) {
              if (cVar3 == '\0') {
                pcStack_44 = param_3;
                pcStack_48 = param_1;
                FUN_000ed550();
              }
              else {
                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;
                pcStack_48 = param_3;
                FUN_000ec8e0();
                iVar8 = *piVar9;
                if (*(int *)(iVar8 + 0x194) != 7) {
                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;
                }
                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;
                *(undefined4 *)(iVar8 + 0x15c) = local_24;
                *(undefined4 *)(iVar8 + 0x160) = local_20;
                *(undefined4 *)(iVar8 + 0x164) = local_24;
                *(undefined4 *)(iVar8 + 0x168) = local_20;
              }
              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;
              break;
            }
          }
        }
LAB_000ad348:
        piVar9 = piVar9 + 1;
      } while (*(int **)(param_1 + 0x128) != piVar9);
    }
    pcStack_48 = (char *)0x1;
    local_4c = param_1;
    pcStack_44 = pcVar6;
    pcVar7 = (char *)FUN_000acf30();
    if ((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)) {
      pcVar7[0x19c] = pcVar7[0x19c] | 4;
    }
    pcStack_48 = param_1;
    local_4c = pcVar7;
    pcStack_44 = param_3;
    FUN_000ed550();
    if (cVar3 != '\0') {
      pcVar7[0x19c] = pcVar7[0x19c] | 2;
      *(undefined4 *)(pcVar7 + 0x15c) = local_24;
      *(undefined4 *)(pcVar7 + 0x160) = local_20;
      *(undefined4 *)(pcVar7 + 0x164) = local_24;
      *(undefined4 *)(pcVar7 + 0x168) = local_20;
    }
    if (param_3[0x92] < '\0') {
      pcVar7[0x19c] = pcVar7[0x19c] | 8;
      uVar5 = *(uint *)(param_3 + 0xa8);
      uVar2 = *(uint *)(param_3 + 0xa4);
      if ((uVar5 != 0 || uVar2 != 0) &&
         (*(uint *)(pcVar7 + 0x180) < uVar5 ||
          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {
        *(uint *)(pcVar7 + 0x17c) = uVar2;
        *(uint *)(pcVar7 + 0x180) = uVar5;
      }
    }
LAB_000ad22a:
    if (*(int *)(param_3 + 0x50) == 7) {
      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);
          piVar9 = piVar9 + 1) {
        local_4c = (char *)*piVar9;
        if ((*(int *)(local_4c + 0x194) == 4) &&
           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {
          pcStack_48 = param_3;
          pcStack_44 = pcVar6;
          FUN_000ed680();
          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;
          break;
        }
      }
      pcStack_48 = (char *)0x4;
      local_4c = param_1;
      pcStack_44 = pcVar6;
      local_4c = (char *)FUN_000acf30();
      pcStack_48 = param_3;
      pcStack_44 = pcVar6;
      FUN_000ed680();
    }
LAB_000ad234:
    if ((uVar1 & 0x400) != 0) {
      local_4c = *(char **)(param_1 + 0x164);
      if (local_4c == (char *)0x0) {
        pcStack_48 = (char *)0x7;
        local_4c = param_1;
        pcStack_44 = pcVar6;
        FUN_000acf30();
        local_4c = *(char **)(param_1 + 0x164);
      }
      pcStack_48 = param_3;
      pcStack_44 = pcVar6;
      FUN_000ed680();
    }
    bVar12 = false;
    bVar13 = (param_3[0x91] & 0x20U) == 0;
    if (!bVar13) {
      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;
      bVar12 = false;
      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';
      if (!bVar13) {
        if (pcVar6 != (char *)0x6) {
          pcStack_44 = "attach_allocated_section_to_segment";
          local_4c = "../../gold/layout.cc";
          pcStack_48 = (char *)0x835;
                    /* WARNING: Subroutine does not return */
          FUN_0008b620();
        }
        local_4c = *(char **)(param_1 + 0x168);
        if (local_4c == (char *)0x0) {
          pcStack_44 = (char *)0x6;
          pcStack_48 = (char *)0x6474e552;
          local_4c = param_1;
          FUN_000acf30();
          local_4c = *(char **)(param_1 + 0x168);
        }
        pcStack_44 = (char *)0x6;
        pcStack_48 = param_3;
        FUN_000ed680();
        bVar12 = (undefined1 *)0xffffffef < &local_4c;
        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;
      }
    }
    iVar8 = 8;
    pbVar10 = *(byte **)(param_3 + 0x20);
    pbVar11 = (byte *)".interp";
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      bVar12 = *pbVar10 < *pbVar11;
      bVar13 = *pbVar10 == *pbVar11;
      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;
    } while (bVar13);
    if (((!bVar12 && !bVar13) == bVar12) &&
       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||
        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))) {
      if (*(int *)(param_1 + 0x16c) == 0) {
        pcStack_48 = (char *)0x3;
        local_4c = param_1;
        pcStack_44 = pcVar6;
        FUN_000acf30();
      }
      else {
        local_4c = 
        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";
        local_4c = (char *)gettext();
        FUN_00082900();
      }
      local_4c = *(char **)(param_1 + 0x16c);
      pcStack_48 = param_3;
      pcStack_44 = pcVar6;
      FUN_000ed680();
    }
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00035680
ADD EBX,0x291fa7
SUB ESP,0x2c
MOV EBP,dword ptr [ESP + 0x48]
MOV EAX,dword ptr [EBP + 0x54]
MOV dword ptr [ESP + 0x8],EAX
TEST AL,0x2
JZ 0x000ad5b8
LEA EDI,[EBX + 0x2f0]
MOV EAX,dword ptr [EDI]
MOV EDX,dword ptr [EAX + 0x8]
TEST EDX,EDX
JZ 0x000ad5a2
CMP byte ptr [EDX + 0x318d],0x0
JNZ 0x000ad31f
MOV EAX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [EAX + 0x4]
CMP byte ptr [EAX + 0xac],0x0
JNZ 0x000ad31f
MOV ESI,dword ptr [ESP + 0x8]
MOV EAX,ESI
AND EAX,0x1
CMP EAX,0x1
SBB EAX,EAX
AND EAX,0xfffffffe
ADD EAX,0x6
MOV ECX,EAX
OR ECX,0x1
AND ESI,0x4
CMOVNZ EAX,ECX
OR EAX,dword ptr [EBP + 0x9c]
SUB ESP,0x4
MOV dword ptr [ESP + 0x8],EAX
LEA EAX,[ESP + 0x1c]
PUSH EAX
PUSH dword ptr [EBP + 0x20]
PUSH EDX
CALL 0x000d8f30
MOV byte ptr [ESP + 0x1e],AL
ADD ESP,0x10
CMP byte ptr [EBP + 0x92],0x0
JS 0x000ad360
MOV EAX,dword ptr [ESP + 0x40]
MOV ESI,dword ptr [EAX + 0x124]
CMP dword ptr [EAX + 0x128],ESI
JZ 0x000ad360
MOV dword ptr [ESP + 0x48],EBP
MOV EBP,EAX
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [ESI]
CMP dword ptr [EAX + 0x194],0x1
JNZ 0x000ad348
TEST byte ptr [EAX + 0x19c],0x8
JNZ 0x000ad348
MOV EDX,dword ptr [EDI]
MOV EDX,dword ptr [EDX + 0x8]
TEST EDX,EDX
JZ 0x000ad5a2
CMP byte ptr [EDX + 0x253d],0x0
JNZ 0x000ad15d
MOV ECX,dword ptr [ESP + 0x4]
XOR ECX,dword ptr [EAX + 0x198]
AND ECX,0x2
JNZ 0x000ad348
MOV ECX,dword ptr [ESP + 0x44]
MOV ECX,dword ptr [ECX + 0x4]
CMP byte ptr [ECX + 0x30],0x0
JNZ 0x000ad330
CMP byte ptr [EDX + 0x32c9],0x0
JNZ 0x000ad330
CMP byte ptr [EDX + 0x4128],0x0
JNZ 0x000ad4e0
MOV EDX,dword ptr [ESP + 0x48]
CMP byte ptr [EDX + 0x91],0x0
JNS 0x000ad1a8
CMP dword ptr [EDX + 0x50],0x8
JZ 0x000ad1a8
TEST byte ptr [EAX + 0x19c],0x4
JZ 0x000ad348
CMP byte ptr [ESP + 0xe],0x0
JZ 0x000ad587
TEST byte ptr [EAX + 0x19c],0x2
JNZ 0x000ad348
MOV EBP,dword ptr [ESP + 0x48]
SUB ESP,0x8
PUSH EBP
PUSH EAX
CALL 0x000ec8e0
MOV ECX,dword ptr [ESI]
ADD ESP,0x10
CMP dword ptr [ECX + 0x194],0x7
JZ 0x000ad1e6
MOV EAX,dword ptr [ESP + 0x4]
OR dword ptr [ECX + 0x198],EAX
MOV EAX,dword ptr [ESP + 0x18]
MOV EDX,dword ptr [ESP + 0x1c]
OR byte ptr [ECX + 0x19c],0x2
MOV dword ptr [ECX + 0x15c],EAX
MOV dword ptr [ECX + 0x160],EDX
MOV dword ptr [ECX + 0x164],EAX
MOV dword ptr [ECX + 0x168],EDX
MOV EAX,dword ptr [ESP + 0x40]
CMP dword ptr [EAX + 0x128],ESI
JZ 0x000ad360
CMP byte ptr [EBP + 0x92],0x0
JS 0x000ad360
CMP dword ptr [EBP + 0x50],0x7
JZ 0x000ad438
TEST dword ptr [ESP + 0x8],0x400
JZ 0x000ad261
MOV EAX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [EAX + 0x164]
TEST EAX,EAX
JZ 0x000ad520
SUB ESP,0x4
PUSH dword ptr [ESP + 0x8]
PUSH EBP
PUSH EAX
CALL 0x000ed680
ADD ESP,0x10
TEST byte ptr [EBP + 0x91],0x20
JZ 0x000ad2ac
MOV EAX,dword ptr [EDI]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000ad5a2
CMP byte ptr [EAX + 0x56b9],0x0
JZ 0x000ad2ac
CMP dword ptr [ESP + 0x4],0x6
JNZ 0x000ad5d1
MOV EAX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [EAX + 0x168]
TEST EAX,EAX
JZ 0x000ad562
SUB ESP,0x4
PUSH 0x6
PUSH EBP
PUSH EAX
CALL 0x000ed680
ADD ESP,0x10
MOV ESI,dword ptr [EBP + 0x20]
MOV ECX,0x8
LEA EDI,[EBX + 0xfff16235]
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x000ad31f
MOV EAX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [EAX + 0x4]
CMP byte ptr [EAX + 0xac],0x0
JNZ 0x000ad420
MOV EAX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [EAX + 0x16c]
TEST EAX,EAX
JZ 0x000ad548
SUB ESP,0xc
LEA EAX,[EBX + 0xfff16948]
PUSH EAX
CALL 0x000283c0
MOV dword ptr [ESP],EAX
CALL 0x00082900
ADD ESP,0x10
SUB ESP,0x4
PUSH dword ptr [ESP + 0x8]
PUSH EBP
MOV EAX,dword ptr [ESP + 0x4c]
PUSH dword ptr [EAX + 0x16c]
CALL 0x000ed680
ADD ESP,0x10
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV ECX,dword ptr [ESP + 0x4]
XOR ECX,dword ptr [EAX + 0x198]
AND ECX,0x1
JZ 0x000ad17b
LEA ESI,[ESI]
NOP
ADD ESI,0x4
CMP dword ptr [EBP + 0x128],ESI
JNZ 0x000ad118
MOV EBP,dword ptr [ESP + 0x48]
LEA ESI,[ESI]
NOP
SUB ESP,0x4
PUSH dword ptr [ESP + 0x8]
PUSH 0x1
PUSH dword ptr [ESP + 0x4c]
CALL 0x000acf30
ADD ESP,0x10
CMP byte ptr [EBP + 0x91],0x0
MOV ESI,EAX
JNS 0x000ad38d
CMP dword ptr [EBP + 0x50],0x8
JZ 0x000ad38d
OR byte ptr [EAX + 0x19c],0x4
PUSH dword ptr [ESP + 0x4]
PUSH EBP
PUSH dword ptr [ESP + 0x48]
PUSH ESI
CALL 0x000ed550
ADD ESP,0x10
CMP byte ptr [ESP + 0xe],0x0
JZ 0x000ad3cd
MOV EAX,dword ptr [ESP + 0x18]
MOV EDX,dword ptr [ESP + 0x1c]
OR byte ptr [ESI + 0x19c],0x2
MOV dword ptr [ESI + 0x15c],EAX
MOV dword ptr [ESI + 0x160],EDX
MOV dword ptr [ESI + 0x164],EAX
MOV dword ptr [ESI + 0x168],EDX
CMP byte ptr [EBP + 0x92],0x0
JNS 0x000ad22a
OR byte ptr [ESI + 0x19c],0x8
MOV EDX,dword ptr [EBP + 0xa8]
MOV ECX,dword ptr [EBP + 0xa4]
MOV EAX,EDX
OR EAX,ECX
JZ 0x000ad22a
MOV EAX,dword ptr [ESI + 0x180]
CMP dword ptr [ESI + 0x17c],ECX
SBB EAX,EDX
JNC 0x000ad22a
MOV dword ptr [ESI + 0x17c],ECX
MOV dword ptr [ESI + 0x180],EDX
JMP 0x000ad22a
MOV EDX,dword ptr [EAX + 0xbc]
TEST EDX,EDX
JNZ 0x000ad31f
JMP 0x000ad2d9
MOV EAX,dword ptr [ESP + 0x40]
MOV EDX,dword ptr [EAX + 0x128]
MOV ESI,dword ptr [EAX + 0x124]
CMP ESI,EDX
JZ 0x000ad4b0
MOV dword ptr [ESP + 0x48],EBP
MOV EBP,dword ptr [ESP + 0x4]
JMP 0x000ad46b
ADD ESI,0x4
CMP EDX,ESI
JZ 0x000ad510
MOV EAX,dword ptr [ESI]
CMP dword ptr [EAX + 0x194],0x4
JNZ 0x000ad460
MOV ECX,dword ptr [EAX + 0x198]
XOR ECX,EBP
AND ECX,0x2
JNZ 0x000ad460
MOV EBP,dword ptr [ESP + 0x48]
SUB ESP,0x4
PUSH dword ptr [ESP + 0x8]
PUSH EBP
PUSH EAX
CALL 0x000ed680
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x40]
CMP dword ptr [EAX + 0x128],ESI
JNZ 0x000ad234
LEA ESI,[ESI]
NOP
SUB ESP,0x4
MOV ESI,dword ptr [ESP + 0x8]
PUSH ESI
PUSH 0x4
PUSH dword ptr [ESP + 0x4c]
CALL 0x000acf30
ADD ESP,0xc
PUSH ESI
PUSH EBP
PUSH EAX
CALL 0x000ed680
ADD ESP,0x10
JMP 0x000ad234
MOV EDX,dword ptr [ESP + 0x48]
CMP dword ptr [EDX + 0x50],0x8
SETZ byte ptr [ESP + 0xf]
SUB ESP,0xc
PUSH EAX
CALL 0x000ea480
ADD ESP,0x10
CMP byte ptr [ESP + 0xf],AL
JZ 0x000ad348
MOV EAX,dword ptr [ESI]
JMP 0x000ad188
MOV EBP,dword ptr [ESP + 0x48]
JMP 0x000ad4b0
SUB ESP,0x4
PUSH dword ptr [ESP + 0x8]
PUSH 0x7
PUSH dword ptr [ESP + 0x4c]
CALL 0x000acf30
MOV EAX,dword ptr [ESP + 0x50]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0x164]
JMP 0x000ad250
SUB ESP,0x4
PUSH dword ptr [ESP + 0x8]
PUSH 0x3
PUSH dword ptr [ESP + 0x4c]
CALL 0x000acf30
ADD ESP,0x10
JMP 0x000ad305
SUB ESP,0x4
PUSH 0x6
PUSH 0x6474e552
PUSH dword ptr [ESP + 0x4c]
CALL 0x000acf30
MOV EAX,dword ptr [ESP + 0x50]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0x168]
JMP 0x000ad29d
MOV EBP,dword ptr [ESP + 0x48]
PUSH dword ptr [ESP + 0x4]
PUSH EBP
PUSH dword ptr [ESP + 0x48]
PUSH EAX
CALL 0x000ed550
ADD ESP,0x10
JMP 0x000ad20d
LEA EAX,[EBX + 0xfff17528]
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xfff0726d]
PUSH 0x5c
PUSH EAX
CALL 0x0008b620
LEA EAX,[EBX + 0xfff17480]
PUSH EDI
PUSH EAX
LEA EAX,[EBX + 0xfff160b8]
PUSH 0x7af
PUSH EAX
CALL 0x0008b620
LEA EAX,[EBX + 0xfff17480]
PUSH ECX
PUSH EAX
LEA EAX,[EBX + 0xfff160b8]
PUSH 0x835
PUSH EAX
CALL 0x0008b620
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_000ad050(char *param_1,int param_2,char *param_3)\n\n{\n  uint uVar1;\n  uint uVar2;\n  char cVar3;\n  char cVar4;\n  uint uVar5;\n  char *pcVar6;\n  char *pcVar7;\n  int iVar8;\n  int *piVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  char *local_4c;\n  char *pcStack_48;\n  char *pcStack_44;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0xad059;\n  uVar1 = *(uint *)(param_3 + 0x54);\n  if ((uVar1 & 2) == 0) {\n    pcStack_44 = "attach_allocated_section_to_segment";\n    local_4c = "../../gold/layout.cc";\n    pcStack_48 = (char *)0x7af;\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620();\n  }\n  local_4c = *(char **)(DAT_0033f2f0 + 8);\n  if (local_4c == (char *)0x0) {\nLAB_000ad5a2:\n    pcStack_44 = "options";\n    local_4c = "../../gold/parameters.h";\n    pcStack_48 = (char *)0x5c;\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620();\n  }\n  if ((local_4c[0x318d] == '\0') && (*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')) {\n    uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6;\n    if ((uVar1 & 4) != 0) {\n      uVar5 = uVar5 | 1;\n    }\n    pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c));\n    pcStack_44 = (char *)&local_24;\n    pcStack_48 = *(char **)(param_3 + 0x20);\n    cVar3 = FUN_000d8f30();\n    if ((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)) {\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }\n    pcStack_48 = (char *)0x1;\n    local_4c = param_1;\n    pcStack_44 = pcVar6;\n    pcVar7 = (char *)FUN_000acf30();\n    if ((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)) {\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }\n    pcStack_48 = param_1;\n    local_4c = pcVar7;\n    pcStack_44 = param_3;\n    FUN_000ed550();\n    if (cVar3 != '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }\n    if (param_3[0x92] < '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }\nLAB_000ad22a:\n    if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\nLAB_000ad234:\n    if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n    bVar12 = false;\n    bVar13 = (param_3[0x91] & 0x20U) == 0;\n    if (!bVar13) {\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }\n    iVar8 = 8;\n    pbVar10 = *(byte **)(param_3 + 0x20);\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    if (((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))) {\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_000ad050(char *param_1,int param_2,char *param_3)\n\n{\n  uint uVar1;\n  uint uVar2;\n  char cVar3;\n  char cVar4;\n  uint uVar5;\n  char *pcVar6;\n  char *pcVar7;\n  int iVar8;\n  int *piVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  char *local_4c;\n  char *pcStack_48;\n  char *pcStack_44;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0xad059;\n  uVar1 = *(uint *)(param_3 + 0x54);\n  if ((uVar1 & 2) == 0) {\n    pcStack_44 = "attach_allocated_section_to_segment";\n    local_4c = "../../gold/layout.cc";\n    pcStack_48 = (char *)0x7af;\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620();\n  }\n  local_4c = *(char **)(DAT_0033f2f0 + 8);\n  if (local_4c == (char *)0x0) {\nLAB_000ad5a2:\n    pcStack_44 = "options";\n    local_4c = "../../gold/parameters.h";\n    pcStack_48 = (char *)0x5c;\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620();\n  }\n  if ((local_4c[0x318d] == '\0') && (*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')) {\n    uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6;\n    if ((uVar1 & 4) != 0) {\n      uVar5 = uVar5 | 1;\n    }\n    pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c));\n    pcStack_44 = (char *)&local_24;\n    pcStack_48 = *(char **)(param_3 + 0x20);\n    cVar3 = FUN_000d8f30();\n    if ((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)) {\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }\n    pcStack_48 = (char *)0x1;\n    local_4c = param_1;\n    pcStack_44 = pcVar6;\n    pcVar7 = (char *)FUN_000acf30();\n    if ((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)) {\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }\n    pcStack_48 = param_1;\n    local_4c = pcVar7;\n    pcStack_44 = param_3;\n    FUN_000ed550();\n    if (cVar3 != '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }\n    if (param_3[0x92] < '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }\nLAB_000ad22a:\n    if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\nLAB_000ad234:\n    if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n    bVar12 = false;\n    bVar13 = (param_3[0x91] & 0x20U) == 0;\n    if (!bVar13) {\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }\n    iVar8 = 8;\n    pbVar10 = *(byte **)(param_3 + 0x20);\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    if (((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))) {\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000ad050(char *param_1,int param_2,char *param_3)" identifier (parameter_list "(char *param_1,int param_2,char *param_3)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  char cVar3;\n  char cVar4;\n  uint uVar5;\n  char *pcVar6;\n  char *pcVar7;\n  int iVar8;\n  int *piVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  char *local_4c;\n  char *pcStack_48;\n  char *pcStack_44;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0xad059;\n  uVar1 = *(uint *)(param_3 + 0x54);\n  if ((uVar1 & 2) == 0) {\n    pcStack_44 = "attach_allocated_section_to_segment";\n    local_4c = "../../gold/layout.cc";\n    pcStack_48 = (char *)0x7af;\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620();\n  }\n  local_4c = *(char **)(DAT_0033f2f0 + 8);\n  if (local_4c == (char *)0x0) {\nLAB_000ad5a2:\n    pcStack_44 = "options";\n    local_4c = "../../gold/parameters.h";\n    pcStack_48 = (char *)0x5c;\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620();\n  }\n  if ((local_4c[0x318d] == '\0') && (*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')) {\n    uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6;\n    if ((uVar1 & 4) != 0) {\n      uVar5 = uVar5 | 1;\n    }\n    pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c));\n    pcStack_44 = (char *)&local_24;\n    pcStack_48 = *(char **)(param_3 + 0x20);\n    cVar3 = FUN_000d8f30();\n    if ((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)) {\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }\n    pcStack_48 = (char *)0x1;\n    local_4c = param_1;\n    pcStack_44 = pcVar6;\n    pcVar7 = (char *)FUN_000acf30();\n    if ((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)) {\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }\n    pcStack_48 = param_1;\n    local_4c = pcVar7;\n    pcStack_44 = param_3;\n    FUN_000ed550();\n    if (cVar3 != '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }\n    if (param_3[0x92] < '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }\nLAB_000ad22a:\n    if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\nLAB_000ad234:\n    if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n    bVar12 = false;\n    bVar13 = (param_3[0x91] & 0x20U) == 0;\n    if (!bVar13) {\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }\n    iVar8 = 8;\n    pbVar10 = *(byte **)(param_3 + 0x20);\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    if (((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))) {\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "char *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "char *pcStack_48;" primitive_type (pointer_declarator "*pcStack_48" * identifier) ;) (declaration "char *pcStack_44;" primitive_type (pointer_declarator "*pcStack_44" * identifier) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0xad059;" (assignment_expression "uStack_14 = 0xad059" identifier = number_literal) ;) (expression_statement "uVar1 = *(uint *)(param_3 + 0x54);" (assignment_expression "uVar1 = *(uint *)(param_3 + 0x54)" identifier = (pointer_expression "*(uint *)(param_3 + 0x54)" * (cast_expression "(uint *)(param_3 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x54)" ( (binary_expression "param_3 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if ((uVar1 & 2) == 0) {\n    pcStack_44 = "attach_allocated_section_to_segment";\n    local_4c = "../../gold/layout.cc";\n    pcStack_48 = (char *)0x7af;\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620();\n  }" if (parenthesized_expression "((uVar1 & 2) == 0)" ( (binary_expression "(uVar1 & 2) == 0" (parenthesized_expression "(uVar1 & 2)" ( (binary_expression "uVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    pcStack_44 = "attach_allocated_section_to_segment";\n    local_4c = "../../gold/layout.cc";\n    pcStack_48 = (char *)0x7af;\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620();\n  }" { (expression_statement "pcStack_44 = "attach_allocated_section_to_segment";" (assignment_expression "pcStack_44 = "attach_allocated_section_to_segment"" identifier = (string_literal ""attach_allocated_section_to_segment"" " string_content ")) ;) (expression_statement "local_4c = "../../gold/layout.cc";" (assignment_expression "local_4c = "../../gold/layout.cc"" identifier = (string_literal ""../../gold/layout.cc"" " string_content ")) ;) (expression_statement "pcStack_48 = (char *)0x7af;" (assignment_expression "pcStack_48 = (char *)0x7af" identifier = (cast_expression "(char *)0x7af" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_4c = *(char **)(DAT_0033f2f0 + 8);" (assignment_expression "local_4c = *(char **)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(char **)(DAT_0033f2f0 + 8)" * (cast_expression "(char **)(DAT_0033f2f0 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (if_statement "if (local_4c == (char *)0x0) {\nLAB_000ad5a2:\n    pcStack_44 = "options";\n    local_4c = "../../gold/parameters.h";\n    pcStack_48 = (char *)0x5c;\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620();\n  }" if (parenthesized_expression "(local_4c == (char *)0x0)" ( (binary_expression "local_4c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000ad5a2:\n    pcStack_44 = "options";\n    local_4c = "../../gold/parameters.h";\n    pcStack_48 = (char *)0x5c;\n                    /* WARNING: Subroutine does not return */\n    FUN_0008b620();\n  }" { (labeled_statement "LAB_000ad5a2:\n    pcStack_44 = "options";" statement_identifier : (expression_statement "pcStack_44 = "options";" (assignment_expression "pcStack_44 = "options"" identifier = (string_literal ""options"" " string_content ")) ;)) (expression_statement "local_4c = "../../gold/parameters.h";" (assignment_expression "local_4c = "../../gold/parameters.h"" identifier = (string_literal ""../../gold/parameters.h"" " string_content ")) ;) (expression_statement "pcStack_48 = (char *)0x5c;" (assignment_expression "pcStack_48 = (char *)0x5c" identifier = (cast_expression "(char *)0x5c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((local_4c[0x318d] == '\0') && (*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')) {\n    uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6;\n    if ((uVar1 & 4) != 0) {\n      uVar5 = uVar5 | 1;\n    }\n    pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c));\n    pcStack_44 = (char *)&local_24;\n    pcStack_48 = *(char **)(param_3 + 0x20);\n    cVar3 = FUN_000d8f30();\n    if ((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)) {\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }\n    pcStack_48 = (char *)0x1;\n    local_4c = param_1;\n    pcStack_44 = pcVar6;\n    pcVar7 = (char *)FUN_000acf30();\n    if ((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)) {\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }\n    pcStack_48 = param_1;\n    local_4c = pcVar7;\n    pcStack_44 = param_3;\n    FUN_000ed550();\n    if (cVar3 != '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }\n    if (param_3[0x92] < '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }\nLAB_000ad22a:\n    if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\nLAB_000ad234:\n    if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n    bVar12 = false;\n    bVar13 = (param_3[0x91] & 0x20U) == 0;\n    if (!bVar13) {\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }\n    iVar8 = 8;\n    pbVar10 = *(byte **)(param_3 + 0x20);\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    if (((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))) {\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n  }" if (parenthesized_expression "((local_4c[0x318d] == '\0') && (*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0'))" ( (binary_expression "(local_4c[0x318d] == '\0') && (*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')" (parenthesized_expression "(local_4c[0x318d] == '\0')" ( (binary_expression "local_4c[0x318d] == '\0'" (subscript_expression "local_4c[0x318d]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')" ( (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + 0xac)" * (cast_expression "(char *)(*(int *)(param_1 + 4) + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0xac)" ( (binary_expression "*(int *)(param_1 + 4) + 0xac" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6;\n    if ((uVar1 & 4) != 0) {\n      uVar5 = uVar5 | 1;\n    }\n    pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c));\n    pcStack_44 = (char *)&local_24;\n    pcStack_48 = *(char **)(param_3 + 0x20);\n    cVar3 = FUN_000d8f30();\n    if ((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)) {\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }\n    pcStack_48 = (char *)0x1;\n    local_4c = param_1;\n    pcStack_44 = pcVar6;\n    pcVar7 = (char *)FUN_000acf30();\n    if ((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)) {\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }\n    pcStack_48 = param_1;\n    local_4c = pcVar7;\n    pcStack_44 = param_3;\n    FUN_000ed550();\n    if (cVar3 != '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }\n    if (param_3[0x92] < '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }\nLAB_000ad22a:\n    if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\nLAB_000ad234:\n    if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n    bVar12 = false;\n    bVar13 = (param_3[0x91] & 0x20U) == 0;\n    if (!bVar13) {\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }\n    iVar8 = 8;\n    pbVar10 = *(byte **)(param_3 + 0x20);\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    if (((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))) {\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n  }" { (expression_statement "uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6;" (assignment_expression "uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6" identifier = (binary_expression "(-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6" (parenthesized_expression "(-(uint)((uVar1 & 1) == 0) & 0xfffffffe)" ( (binary_expression "-(uint)((uVar1 & 1) == 0) & 0xfffffffe" (unary_expression "-(uint)((uVar1 & 1) == 0)" - (call_expression "(uint)((uVar1 & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar1 & 1) == 0)" ( (binary_expression "(uVar1 & 1) == 0" (parenthesized_expression "(uVar1 & 1)" ( (binary_expression "uVar1 & 1" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (if_statement "if ((uVar1 & 4) != 0) {\n      uVar5 = uVar5 | 1;\n    }" if (parenthesized_expression "((uVar1 & 4) != 0)" ( (binary_expression "(uVar1 & 4) != 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar5 = uVar5 | 1;\n    }" { (expression_statement "uVar5 = uVar5 | 1;" (assignment_expression "uVar5 = uVar5 | 1" identifier = (binary_expression "uVar5 | 1" identifier | number_literal)) ;) })) (expression_statement "pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c));" (assignment_expression "pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c))" identifier = (cast_expression "(char *)(uVar5 | *(uint *)(param_3 + 0x9c))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 | *(uint *)(param_3 + 0x9c))" ( (binary_expression "uVar5 | *(uint *)(param_3 + 0x9c)" identifier | (pointer_expression "*(uint *)(param_3 + 0x9c)" * (cast_expression "(uint *)(param_3 + 0x9c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x9c)" ( (binary_expression "param_3 + 0x9c" identifier + number_literal) ))))) )))) ;) (expression_statement "pcStack_44 = (char *)&local_24;" (assignment_expression "pcStack_44 = (char *)&local_24" identifier = (cast_expression "(char *)&local_24" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_24" & identifier))) ;) (expression_statement "pcStack_48 = *(char **)(param_3 + 0x20);" (assignment_expression "pcStack_48 = *(char **)(param_3 + 0x20)" identifier = (pointer_expression "*(char **)(param_3 + 0x20)" * (cast_expression "(char **)(param_3 + 0x20)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x20)" ( (binary_expression "param_3 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "cVar3 = FUN_000d8f30();" (assignment_expression "cVar3 = FUN_000d8f30()" identifier = (call_expression "FUN_000d8f30()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)) {\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }" if (parenthesized_expression "((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9))" ( (binary_expression "(-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)" (parenthesized_expression "(-1 < param_3[0x92])" ( (binary_expression "-1 < param_3[0x92]" number_literal < (subscript_expression "param_3[0x92]" identifier [ number_literal ])) )) && (parenthesized_expression "(piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)" ( (comma_expression "piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9" (assignment_expression "piVar9 = *(int **)(param_1 + 0x124)" identifier = (pointer_expression "*(int **)(param_1 + 0x124)" * (cast_expression "(int **)(param_1 + 0x124)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) , (binary_expression "*(int **)(param_1 + 0x128) != piVar9" (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != identifier)) ))) )) (compound_statement "{\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }" { (do_statement "do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);" do (compound_statement "{\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      }" { (expression_statement "local_4c = (char *)*piVar9;" (assignment_expression "local_4c = (char *)*piVar9" identifier = (cast_expression "(char *)*piVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) (if_statement "if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }" if (parenthesized_expression "((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0))" ( (binary_expression "(*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)" (parenthesized_expression "(*(int *)(local_4c + 0x194) == 1)" ( (binary_expression "*(int *)(local_4c + 0x194) == 1" (pointer_expression "*(int *)(local_4c + 0x194)" * (cast_expression "(int *)(local_4c + 0x194)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x194)" ( (binary_expression "local_4c + 0x194" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((local_4c[0x19c] & 8U) == 0)" ( (binary_expression "(local_4c[0x19c] & 8U) == 0" (parenthesized_expression "(local_4c[0x19c] & 8U)" ( (binary_expression "local_4c[0x19c] & 8U" (subscript_expression "local_4c[0x19c]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }" { (expression_statement "iVar8 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar8 = *(int *)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) goto LAB_000ad5a2;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000ad5a2;" goto statement_identifier ;)) (if_statement "if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }" if (parenthesized_expression "(((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0))))" ( (binary_expression "((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))" (parenthesized_expression "((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0))" ( (binary_expression "(*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)" (parenthesized_expression "(*(char *)(iVar8 + 0x253d) != '\0')" ( (binary_expression "*(char *)(iVar8 + 0x253d) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x253d)" * (cast_expression "(char *)(iVar8 + 0x253d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x253d)" ( (binary_expression "iVar8 + 0x253d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)" ( (binary_expression "(((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0" (parenthesized_expression "(((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2)" ( (binary_expression "((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2" (parenthesized_expression "((uint)pcVar6 ^ *(uint *)(local_4c + 0x198))" ( (binary_expression "(uint)pcVar6 ^ *(uint *)(local_4c + 0x198)" (cast_expression "(uint)pcVar6" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (pointer_expression "*(uint *)(local_4c + 0x198)" * (cast_expression "(uint *)(local_4c + 0x198)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x198)" ( (binary_expression "local_4c + 0x198" identifier + number_literal) ))))) )) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))" ( (parenthesized_expression "((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0))" ( (binary_expression "(*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)" (parenthesized_expression "(*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0'))" ( (binary_expression "*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')" (binary_expression "*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0'" (pointer_expression "*(char *)(*(int *)(param_2 + 4) + 0x30)" * (cast_expression "(char *)(*(int *)(param_2 + 4) + 0x30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 4) + 0x30)" ( (binary_expression "*(int *)(param_2 + 4) + 0x30" (pointer_expression "*(int *)(param_2 + 4)" * (cast_expression "(int *)(param_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(*(char *)(iVar8 + 0x32c9) == '\0')" ( (binary_expression "*(char *)(iVar8 + 0x32c9) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x32c9)" * (cast_expression "(char *)(iVar8 + 0x32c9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x32c9)" ( (binary_expression "iVar8 + 0x32c9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)" ( (binary_expression "(((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0" (parenthesized_expression "(((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1)" ( (binary_expression "((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1" (parenthesized_expression "((uint)pcVar6 ^ *(uint *)(local_4c + 0x198))" ( (binary_expression "(uint)pcVar6 ^ *(uint *)(local_4c + 0x198)" (cast_expression "(uint)pcVar6" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (pointer_expression "*(uint *)(local_4c + 0x198)" * (cast_expression "(uint *)(local_4c + 0x198)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x198)" ( (binary_expression "local_4c + 0x198" identifier + number_literal) ))))) )) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }" { (if_statement "if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }" if (parenthesized_expression "(*(char *)(iVar8 + 0x4128) != '\0')" ( (binary_expression "*(char *)(iVar8 + 0x4128) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x4128)" * (cast_expression "(char *)(iVar8 + 0x4128)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x4128)" ( (binary_expression "iVar8 + 0x4128" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }" { (expression_statement "iVar8 = *(int *)(param_3 + 0x50);" (assignment_expression "iVar8 = *(int *)(param_3 + 0x50)" identifier = (pointer_expression "*(int *)(param_3 + 0x50)" * (cast_expression "(int *)(param_3 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x50)" ( (binary_expression "param_3 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "cVar4 = FUN_000ea480();" (assignment_expression "cVar4 = FUN_000ea480()" identifier = (call_expression "FUN_000ea480()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;" if (parenthesized_expression "((iVar8 == 8) == (bool)cVar4)" ( (binary_expression "(iVar8 == 8) == (bool)cVar4" (parenthesized_expression "(iVar8 == 8)" ( (binary_expression "iVar8 == 8" identifier == number_literal) )) == (cast_expression "(bool)cVar4" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000ad348;" goto statement_identifier ;)) (expression_statement "local_4c = (char *)*piVar9;" (assignment_expression "local_4c = (char *)*piVar9" identifier = (cast_expression "(char *)*piVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) })) (if_statement "if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }" if (parenthesized_expression "(((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0))" ( (binary_expression "((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)" (parenthesized_expression "((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8))" ( (binary_expression "(-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)" (parenthesized_expression "(-1 < param_3[0x91])" ( (binary_expression "-1 < param_3[0x91]" number_literal < (subscript_expression "param_3[0x91]" identifier [ number_literal ])) )) || (parenthesized_expression "(*(int *)(param_3 + 0x50) == 8)" ( (binary_expression "*(int *)(param_3 + 0x50) == 8" (pointer_expression "*(int *)(param_3 + 0x50)" * (cast_expression "(int *)(param_3 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x50)" ( (binary_expression "param_3 + 0x50" identifier + number_literal) )))) == number_literal) ))) )) || (parenthesized_expression "((local_4c[0x19c] & 4U) != 0)" ( (binary_expression "(local_4c[0x19c] & 4U) != 0" (parenthesized_expression "(local_4c[0x19c] & 4U)" ( (binary_expression "local_4c[0x19c] & 4U" (subscript_expression "local_4c[0x19c]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }" { (if_statement "if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }" { (expression_statement "pcStack_44 = param_3;" (assignment_expression "pcStack_44 = param_3" identifier = identifier) ;) (expression_statement "pcStack_48 = param_1;" (assignment_expression "pcStack_48 = param_1" identifier = identifier) ;) (expression_statement "FUN_000ed550();" (call_expression "FUN_000ed550()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }" else (compound_statement "{\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }" { (if_statement "if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;" if (parenthesized_expression "((local_4c[0x19c] & 2U) != 0)" ( (binary_expression "(local_4c[0x19c] & 2U) != 0" (parenthesized_expression "(local_4c[0x19c] & 2U)" ( (binary_expression "local_4c[0x19c] & 2U" (subscript_expression "local_4c[0x19c]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000ad348;" goto statement_identifier ;)) (expression_statement "pcStack_48 = param_3;" (assignment_expression "pcStack_48 = param_3" identifier = identifier) ;) (expression_statement "FUN_000ec8e0();" (call_expression "FUN_000ec8e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar8 = *piVar9;" (assignment_expression "iVar8 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (if_statement "if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }" if (parenthesized_expression "(*(int *)(iVar8 + 0x194) != 7)" ( (binary_expression "*(int *)(iVar8 + 0x194) != 7" (pointer_expression "*(int *)(iVar8 + 0x194)" * (cast_expression "(int *)(iVar8 + 0x194)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x194)" ( (binary_expression "iVar8 + 0x194" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }" { (expression_statement "*(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;" (assignment_expression "*(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6" (pointer_expression "*(uint *)(iVar8 + 0x198)" * (cast_expression "(uint *)(iVar8 + 0x198)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x198)" ( (binary_expression "iVar8 + 0x198" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar8 + 0x198) | (uint)pcVar6" (pointer_expression "*(uint *)(iVar8 + 0x198)" * (cast_expression "(uint *)(iVar8 + 0x198)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x198)" ( (binary_expression "iVar8 + 0x198" identifier + number_literal) )))) | (cast_expression "(uint)pcVar6" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (expression_statement "*(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;" (assignment_expression "*(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2" (pointer_expression "*(byte *)(iVar8 + 0x19c)" * (cast_expression "(byte *)(iVar8 + 0x19c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x19c)" ( (binary_expression "iVar8 + 0x19c" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar8 + 0x19c) | 2" (pointer_expression "*(byte *)(iVar8 + 0x19c)" * (cast_expression "(byte *)(iVar8 + 0x19c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x19c)" ( (binary_expression "iVar8 + 0x19c" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x15c) = local_24;" (assignment_expression "*(undefined4 *)(iVar8 + 0x15c) = local_24" (pointer_expression "*(undefined4 *)(iVar8 + 0x15c)" * (cast_expression "(undefined4 *)(iVar8 + 0x15c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x15c)" ( (binary_expression "iVar8 + 0x15c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x160) = local_20;" (assignment_expression "*(undefined4 *)(iVar8 + 0x160) = local_20" (pointer_expression "*(undefined4 *)(iVar8 + 0x160)" * (cast_expression "(undefined4 *)(iVar8 + 0x160)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x160)" ( (binary_expression "iVar8 + 0x160" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x164) = local_24;" (assignment_expression "*(undefined4 *)(iVar8 + 0x164) = local_24" (pointer_expression "*(undefined4 *)(iVar8 + 0x164)" * (cast_expression "(undefined4 *)(iVar8 + 0x164)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x164)" ( (binary_expression "iVar8 + 0x164" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x168) = local_20;" (assignment_expression "*(undefined4 *)(iVar8 + 0x168) = local_20" (pointer_expression "*(undefined4 *)(iVar8 + 0x168)" * (cast_expression "(undefined4 *)(iVar8 + 0x168)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x168)" ( (binary_expression "iVar8 + 0x168" identifier + number_literal) )))) = identifier) ;) }))) (if_statement "if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;" if (parenthesized_expression "((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92]))" ( (binary_expression "(*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])" (parenthesized_expression "(*(int **)(param_1 + 0x128) != piVar9)" ( (binary_expression "*(int **)(param_1 + 0x128) != piVar9" (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != identifier) )) && (parenthesized_expression "(-1 < param_3[0x92])" ( (binary_expression "-1 < param_3[0x92]" number_literal < (subscript_expression "param_3[0x92]" identifier [ number_literal ])) ))) )) (goto_statement "goto LAB_000ad22a;" goto statement_identifier ;)) (break_statement "break;" break ;) })) })) })) (labeled_statement "LAB_000ad348:\n        piVar9 = piVar9 + 1;" statement_identifier : (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(*(int **)(param_1 + 0x128) != piVar9)" ( (binary_expression "*(int **)(param_1 + 0x128) != piVar9" (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != identifier) )) ;) })) (expression_statement "pcStack_48 = (char *)0x1;" (assignment_expression "pcStack_48 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = param_1;" (assignment_expression "local_4c = param_1" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" identifier = identifier) ;) (expression_statement "pcVar7 = (char *)FUN_000acf30();" (assignment_expression "pcVar7 = (char *)FUN_000acf30()" identifier = (cast_expression "(char *)FUN_000acf30()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000acf30()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)) {\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }" if (parenthesized_expression "((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8))" ( (binary_expression "(param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)" (parenthesized_expression "(param_3[0x91] < '\0')" ( (binary_expression "param_3[0x91] < '\0'" (subscript_expression "param_3[0x91]" identifier [ number_literal ]) < (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(int *)(param_3 + 0x50) != 8)" ( (binary_expression "*(int *)(param_3 + 0x50) != 8" (pointer_expression "*(int *)(param_3 + 0x50)" * (cast_expression "(int *)(param_3 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x50)" ( (binary_expression "param_3 + 0x50" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }" { (expression_statement "pcVar7[0x19c] = pcVar7[0x19c] | 4;" (assignment_expression "pcVar7[0x19c] = pcVar7[0x19c] | 4" (subscript_expression "pcVar7[0x19c]" identifier [ number_literal ]) = (binary_expression "pcVar7[0x19c] | 4" (subscript_expression "pcVar7[0x19c]" identifier [ number_literal ]) | number_literal)) ;) })) (expression_statement "pcStack_48 = param_1;" (assignment_expression "pcStack_48 = param_1" identifier = identifier) ;) (expression_statement "local_4c = pcVar7;" (assignment_expression "local_4c = pcVar7" identifier = identifier) ;) (expression_statement "pcStack_44 = param_3;" (assignment_expression "pcStack_44 = param_3" identifier = identifier) ;) (expression_statement "FUN_000ed550();" (call_expression "FUN_000ed550()" identifier (argument_list "()" ( ))) ;) (if_statement "if (cVar3 != '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }" { (expression_statement "pcVar7[0x19c] = pcVar7[0x19c] | 2;" (assignment_expression "pcVar7[0x19c] = pcVar7[0x19c] | 2" (subscript_expression "pcVar7[0x19c]" identifier [ number_literal ]) = (binary_expression "pcVar7[0x19c] | 2" (subscript_expression "pcVar7[0x19c]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "*(undefined4 *)(pcVar7 + 0x15c) = local_24;" (assignment_expression "*(undefined4 *)(pcVar7 + 0x15c) = local_24" (pointer_expression "*(undefined4 *)(pcVar7 + 0x15c)" * (cast_expression "(undefined4 *)(pcVar7 + 0x15c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x15c)" ( (binary_expression "pcVar7 + 0x15c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pcVar7 + 0x160) = local_20;" (assignment_expression "*(undefined4 *)(pcVar7 + 0x160) = local_20" (pointer_expression "*(undefined4 *)(pcVar7 + 0x160)" * (cast_expression "(undefined4 *)(pcVar7 + 0x160)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x160)" ( (binary_expression "pcVar7 + 0x160" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pcVar7 + 0x164) = local_24;" (assignment_expression "*(undefined4 *)(pcVar7 + 0x164) = local_24" (pointer_expression "*(undefined4 *)(pcVar7 + 0x164)" * (cast_expression "(undefined4 *)(pcVar7 + 0x164)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x164)" ( (binary_expression "pcVar7 + 0x164" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pcVar7 + 0x168) = local_20;" (assignment_expression "*(undefined4 *)(pcVar7 + 0x168) = local_20" (pointer_expression "*(undefined4 *)(pcVar7 + 0x168)" * (cast_expression "(undefined4 *)(pcVar7 + 0x168)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x168)" ( (binary_expression "pcVar7 + 0x168" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (param_3[0x92] < '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }" if (parenthesized_expression "(param_3[0x92] < '\0')" ( (binary_expression "param_3[0x92] < '\0'" (subscript_expression "param_3[0x92]" identifier [ number_literal ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }" { (expression_statement "pcVar7[0x19c] = pcVar7[0x19c] | 8;" (assignment_expression "pcVar7[0x19c] = pcVar7[0x19c] | 8" (subscript_expression "pcVar7[0x19c]" identifier [ number_literal ]) = (binary_expression "pcVar7[0x19c] | 8" (subscript_expression "pcVar7[0x19c]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "uVar5 = *(uint *)(param_3 + 0xa8);" (assignment_expression "uVar5 = *(uint *)(param_3 + 0xa8)" identifier = (pointer_expression "*(uint *)(param_3 + 0xa8)" * (cast_expression "(uint *)(param_3 + 0xa8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xa8)" ( (binary_expression "param_3 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(param_3 + 0xa4);" (assignment_expression "uVar2 = *(uint *)(param_3 + 0xa4)" identifier = (pointer_expression "*(uint *)(param_3 + 0xa4)" * (cast_expression "(uint *)(param_3 + 0xa4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xa4)" ( (binary_expression "param_3 + 0xa4" identifier + number_literal) ))))) ;) (if_statement "if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }" if (parenthesized_expression "((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2)))" ( (binary_expression "(uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))" (parenthesized_expression "(uVar5 != 0 || uVar2 != 0)" ( (binary_expression "uVar5 != 0 || uVar2 != 0" (binary_expression "uVar5 != 0" identifier != number_literal) || (binary_expression "uVar2 != 0" identifier != number_literal)) )) && (parenthesized_expression "(*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))" ( (binary_expression "*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2)" (binary_expression "*(uint *)(pcVar7 + 0x180) < uVar5" (pointer_expression "*(uint *)(pcVar7 + 0x180)" * (cast_expression "(uint *)(pcVar7 + 0x180)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x180)" ( (binary_expression "pcVar7 + 0x180" identifier + number_literal) )))) < identifier) || (binary_expression "*(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2)" (binary_expression "*(uint *)(pcVar7 + 0x180) - uVar5" (pointer_expression "*(uint *)(pcVar7 + 0x180)" * (cast_expression "(uint *)(pcVar7 + 0x180)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x180)" ( (binary_expression "pcVar7 + 0x180" identifier + number_literal) )))) - identifier) < (call_expression "(uint)(*(uint *)(pcVar7 + 0x17c) < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(pcVar7 + 0x17c) < uVar2)" ( (binary_expression "*(uint *)(pcVar7 + 0x17c) < uVar2" (pointer_expression "*(uint *)(pcVar7 + 0x17c)" * (cast_expression "(uint *)(pcVar7 + 0x17c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x17c)" ( (binary_expression "pcVar7 + 0x17c" identifier + number_literal) )))) < identifier) ))))) ))) )) (compound_statement "{\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }" { (expression_statement "*(uint *)(pcVar7 + 0x17c) = uVar2;" (assignment_expression "*(uint *)(pcVar7 + 0x17c) = uVar2" (pointer_expression "*(uint *)(pcVar7 + 0x17c)" * (cast_expression "(uint *)(pcVar7 + 0x17c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x17c)" ( (binary_expression "pcVar7 + 0x17c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(pcVar7 + 0x180) = uVar5;" (assignment_expression "*(uint *)(pcVar7 + 0x180) = uVar5" (pointer_expression "*(uint *)(pcVar7 + 0x180)" * (cast_expression "(uint *)(pcVar7 + 0x180)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x180)" ( (binary_expression "pcVar7 + 0x180" identifier + number_literal) )))) = identifier) ;) })) })) (labeled_statement "LAB_000ad22a:\n    if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" statement_identifier : (if_statement "if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" if (parenthesized_expression "(*(int *)(param_3 + 0x50) == 7)" ( (binary_expression "*(int *)(param_3 + 0x50) == 7" (pointer_expression "*(int *)(param_3 + 0x50)" * (cast_expression "(int *)(param_3 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x50)" ( (binary_expression "param_3 + 0x50" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" { (for_statement "for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }" for ( (assignment_expression "piVar9 = *(int **)(param_1 + 0x124)" identifier = (pointer_expression "*(int **)(param_1 + 0x124)" * (cast_expression "(int **)(param_1 + 0x124)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) ; (binary_expression "piVar9 != *(int **)(param_1 + 0x128)" identifier != (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) ; (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ) (compound_statement "{\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }" { (expression_statement "local_4c = (char *)*piVar9;" (assignment_expression "local_4c = (char *)*piVar9" identifier = (cast_expression "(char *)*piVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) (if_statement "if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }" if (parenthesized_expression "((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0))" ( (binary_expression "(*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)" (parenthesized_expression "(*(int *)(local_4c + 0x194) == 4)" ( (binary_expression "*(int *)(local_4c + 0x194) == 4" (pointer_expression "*(int *)(local_4c + 0x194)" * (cast_expression "(int *)(local_4c + 0x194)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x194)" ( (binary_expression "local_4c + 0x194" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)" ( (binary_expression "((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0" (parenthesized_expression "((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2)" ( (binary_expression "(*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2" (parenthesized_expression "(*(uint *)(local_4c + 0x198) ^ (uint)pcVar6)" ( (binary_expression "*(uint *)(local_4c + 0x198) ^ (uint)pcVar6" (pointer_expression "*(uint *)(local_4c + 0x198)" * (cast_expression "(uint *)(local_4c + 0x198)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x198)" ( (binary_expression "local_4c + 0x198" identifier + number_literal) )))) ^ (cast_expression "(uint)pcVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) )) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }" { (expression_statement "pcStack_48 = param_3;" (assignment_expression "pcStack_48 = param_3" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" identifier = identifier) ;) (expression_statement "FUN_000ed680();" (call_expression "FUN_000ed680()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;" if (parenthesized_expression "(*(int **)(param_1 + 0x128) != piVar9)" ( (binary_expression "*(int **)(param_1 + 0x128) != piVar9" (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != identifier) )) (goto_statement "goto LAB_000ad234;" goto statement_identifier ;)) (break_statement "break;" break ;) })) })) (expression_statement "pcStack_48 = (char *)0x4;" (assignment_expression "pcStack_48 = (char *)0x4" identifier = (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = param_1;" (assignment_expression "local_4c = param_1" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" identifier = identifier) ;) (expression_statement "local_4c = (char *)FUN_000acf30();" (assignment_expression "local_4c = (char *)FUN_000acf30()" identifier = (cast_expression "(char *)FUN_000acf30()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000acf30()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pcStack_48 = param_3;" (assignment_expression "pcStack_48 = param_3" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" identifier = identifier) ;) (expression_statement "FUN_000ed680();" (call_expression "FUN_000ed680()" identifier (argument_list "()" ( ))) ;) }))) (labeled_statement "LAB_000ad234:\n    if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" statement_identifier : (if_statement "if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" if (parenthesized_expression "((uVar1 & 0x400) != 0)" ( (binary_expression "(uVar1 & 0x400) != 0" (parenthesized_expression "(uVar1 & 0x400)" ( (binary_expression "uVar1 & 0x400" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" { (expression_statement "local_4c = *(char **)(param_1 + 0x164);" (assignment_expression "local_4c = *(char **)(param_1 + 0x164)" identifier = (pointer_expression "*(char **)(param_1 + 0x164)" * (cast_expression "(char **)(param_1 + 0x164)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x164)" ( (binary_expression "param_1 + 0x164" identifier + number_literal) ))))) ;) (if_statement "if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }" if (parenthesized_expression "(local_4c == (char *)0x0)" ( (binary_expression "local_4c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }" { (expression_statement "pcStack_48 = (char *)0x7;" (assignment_expression "pcStack_48 = (char *)0x7" identifier = (cast_expression "(char *)0x7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = param_1;" (assignment_expression "local_4c = param_1" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" identifier = identifier) ;) (expression_statement "FUN_000acf30();" (call_expression "FUN_000acf30()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4c = *(char **)(param_1 + 0x164);" (assignment_expression "local_4c = *(char **)(param_1 + 0x164)" identifier = (pointer_expression "*(char **)(param_1 + 0x164)" * (cast_expression "(char **)(param_1 + 0x164)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x164)" ( (binary_expression "param_1 + 0x164" identifier + number_literal) ))))) ;) })) (expression_statement "pcStack_48 = param_3;" (assignment_expression "pcStack_48 = param_3" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" identifier = identifier) ;) (expression_statement "FUN_000ed680();" (call_expression "FUN_000ed680()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar13 = (param_3[0x91] & 0x20U) == 0;" (assignment_expression "bVar13 = (param_3[0x91] & 0x20U) == 0" identifier = (binary_expression "(param_3[0x91] & 0x20U) == 0" (parenthesized_expression "(param_3[0x91] & 0x20U)" ( (binary_expression "param_3[0x91] & 0x20U" (subscript_expression "param_3[0x91]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ;) (if_statement "if (!bVar13) {\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (compound_statement "{\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }" { (if_statement "if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;" if (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) == 0)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 8) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000ad5a2;" goto statement_identifier ;)) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';" (assignment_expression "bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0'" identifier = (binary_expression "*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0'" (pointer_expression "*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9)" * (cast_expression "(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) + 0x56b9)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 8) + 0x56b9" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (compound_statement "{\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }" { (if_statement "if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620();\n        }" if (parenthesized_expression "(pcVar6 != (char *)0x6)" ( (binary_expression "pcVar6 != (char *)0x6" identifier != (cast_expression "(char *)0x6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    /* WARNING: Subroutine does not return */\n          FUN_0008b620();\n        }" { (expression_statement "pcStack_44 = "attach_allocated_section_to_segment";" (assignment_expression "pcStack_44 = "attach_allocated_section_to_segment"" identifier = (string_literal ""attach_allocated_section_to_segment"" " string_content ")) ;) (expression_statement "local_4c = "../../gold/layout.cc";" (assignment_expression "local_4c = "../../gold/layout.cc"" identifier = (string_literal ""../../gold/layout.cc"" " string_content ")) ;) (expression_statement "pcStack_48 = (char *)0x835;" (assignment_expression "pcStack_48 = (char *)0x835" identifier = (cast_expression "(char *)0x835" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) comment (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_4c = *(char **)(param_1 + 0x168);" (assignment_expression "local_4c = *(char **)(param_1 + 0x168)" identifier = (pointer_expression "*(char **)(param_1 + 0x168)" * (cast_expression "(char **)(param_1 + 0x168)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x168)" ( (binary_expression "param_1 + 0x168" identifier + number_literal) ))))) ;) (if_statement "if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }" if (parenthesized_expression "(local_4c == (char *)0x0)" ( (binary_expression "local_4c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }" { (expression_statement "pcStack_44 = (char *)0x6;" (assignment_expression "pcStack_44 = (char *)0x6" identifier = (cast_expression "(char *)0x6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcStack_48 = (char *)0x6474e552;" (assignment_expression "pcStack_48 = (char *)0x6474e552" identifier = (cast_expression "(char *)0x6474e552" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = param_1;" (assignment_expression "local_4c = param_1" identifier = identifier) ;) (expression_statement "FUN_000acf30();" (call_expression "FUN_000acf30()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4c = *(char **)(param_1 + 0x168);" (assignment_expression "local_4c = *(char **)(param_1 + 0x168)" identifier = (pointer_expression "*(char **)(param_1 + 0x168)" * (cast_expression "(char **)(param_1 + 0x168)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x168)" ( (binary_expression "param_1 + 0x168" identifier + number_literal) ))))) ;) })) (expression_statement "pcStack_44 = (char *)0x6;" (assignment_expression "pcStack_44 = (char *)0x6" identifier = (cast_expression "(char *)0x6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcStack_48 = param_3;" (assignment_expression "pcStack_48 = param_3" identifier = identifier) ;) (expression_statement "FUN_000ed680();" (call_expression "FUN_000ed680()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar12 = (undefined1 *)0xffffffef < &local_4c;" (assignment_expression "bVar12 = (undefined1 *)0xffffffef < &local_4c" identifier = (binary_expression "(undefined1 *)0xffffffef < &local_4c" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&local_4c" & identifier))) ;) (expression_statement "bVar13 = &stack0x00000000 == (undefined1 *)0x3c;" (assignment_expression "bVar13 = &stack0x00000000 == (undefined1 *)0x3c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x3c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x3c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) })) })) (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" identifier = number_literal) ;) (expression_statement "pbVar10 = *(byte **)(param_3 + 0x20);" (assignment_expression "pbVar10 = *(byte **)(param_3 + 0x20)" identifier = (pointer_expression "*(byte **)(param_3 + 0x20)" * (cast_expression "(byte **)(param_3 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x20)" ( (binary_expression "param_3 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pbVar11 = (byte *)".interp";" (assignment_expression "pbVar11 = (byte *)".interp"" identifier = (cast_expression "(byte *)".interp"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".interp"" " string_content "))) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar10 < *pbVar11;" (assignment_expression "bVar12 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar13 = *pbVar10 == *pbVar11;" (assignment_expression "bVar13 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if (((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))) {\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" if (parenthesized_expression "(((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0))))" ( (binary_expression "((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))" (parenthesized_expression "((!bVar12 && !bVar13) == bVar12)" ( (binary_expression "(!bVar12 && !bVar13) == bVar12" (parenthesized_expression "(!bVar12 && !bVar13)" ( (binary_expression "!bVar12 && !bVar13" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) && (parenthesized_expression "((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))" ( (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0))" ( (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)" (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + 0xac)" * (cast_expression "(char *)(*(int *)(param_1 + 4) + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0xac)" ( (binary_expression "*(int *)(param_1 + 4) + 0xac" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 4) + 0xbc)" * (cast_expression "(int *)(*(int *)(param_1 + 4) + 0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0xbc)" ( (binary_expression "*(int *)(param_1 + 4) + 0xbc" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) )) ))) )) (compound_statement "{\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" { (if_statement "if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x16c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x16c) == 0" (pointer_expression "*(int *)(param_1 + 0x16c)" * (cast_expression "(int *)(param_1 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x16c)" ( (binary_expression "param_1 + 0x16c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }" { (expression_statement "pcStack_48 = (char *)0x3;" (assignment_expression "pcStack_48 = (char *)0x3" identifier = (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = param_1;" (assignment_expression "local_4c = param_1" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" identifier = identifier) ;) (expression_statement "FUN_000acf30();" (call_expression "FUN_000acf30()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }" else (compound_statement "{\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }" { (expression_statement "local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";" (assignment_expression "local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment"" identifier = (string_literal ""multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "local_4c = (char *)gettext();" (assignment_expression "local_4c = (char *)gettext()" identifier = (cast_expression "(char *)gettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "FUN_00082900();" (call_expression "FUN_00082900()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "local_4c = *(char **)(param_1 + 0x16c);" (assignment_expression "local_4c = *(char **)(param_1 + 0x16c)" identifier = (pointer_expression "*(char **)(param_1 + 0x16c)" * (cast_expression "(char **)(param_1 + 0x16c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x16c)" ( (binary_expression "param_1 + 0x16c" identifier + number_literal) ))))) ;) (expression_statement "pcStack_48 = param_3;" (assignment_expression "pcStack_48 = param_3" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" identifier = identifier) ;) (expression_statement "FUN_000ed680();" (call_expression "FUN_000ed680()" identifier (argument_list "()" ( ))) ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* WARNING: Enum "ELFOSABI": Some values do not have unique names */\n/* DWARF original prototype: void attach_allocated_section_to_segment(Layout * this, Target *\n   target, Output_section * os) */\n\nvoid __thiscall\ngold::Layout::attach_allocated_section_to_segment(Layout *this,Target *target,Output_section *os)\n\n{\n  General_options *pGVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  Elf_Word EVar5;\n  Elf_Xword EVar6;\n  bool bVar7;\n  uint uVar8;\n  char *format;\n  Output_segment *pOVar9;\n  int iVar10;\n  pointer ppOVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  bool bVar14;\n  byte bVar15;\n  uint64_t addr;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0xad059;\n  EVar6 = os->flags_;\n  if ((EVar6 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x7af,"attach_allocated_section_to_segment");\n  }\n  pGVar1 = parameters->options_;\n  if (pGVar1 == (General_options *)0x0) {\nLAB_000ad5a2:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  if (((pGVar1->relocatable_).value == false) &&\n     ((this->script_options_->script_sections_).saw_sections_clause_ == false)) {\n    uVar8 = (-(uint)((EVar6 & 1) == 0) & 0xfffffffe) + 6;\n    if ((EVar6 & 4) != 0) {\n      uVar8 = uVar8 | 1;\n    }\n    uVar8 = uVar8 | (uint)os->extra_segment_flags_;\n    bVar7 = General_options::section_start(pGVar1,os->name_,&addr);\n    if ((-1 < (char)os->field_0x92) &&\n       (ppOVar11 = (this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_start,\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n       _M_finish != ppOVar11)) {\n      do {\n        pOVar9 = *ppOVar11;\n        if ((pOVar9->type_ == 1) && ((pOVar9->field_0x19c & 8) == 0)) {\n          pGVar1 = parameters->options_;\n          if (pGVar1 == (General_options *)0x0) goto LAB_000ad5a2;\n          if ((((pGVar1->omagic_).value != false) || (((uVar8 ^ pOVar9->flags_) & 2) == 0)) &&\n             (((target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false))\n              || (((uVar8 ^ pOVar9->flags_) & 1) == 0)))) {\n            if ((pGVar1->Tbss_).user_set_via_option != false) {\n              EVar5 = os->type_;\n              bVar14 = Output_segment::has_any_data_sections(pOVar9);\n              if ((EVar5 == 8) == bVar14) goto LAB_000ad348;\n              pOVar9 = *ppOVar11;\n            }\n            if (((-1 < (char)os->field_0x91) || (os->type_ == 8)) ||\n               ((pOVar9->field_0x19c & 4) != 0)) {\n              if (bVar7) {\n                if ((pOVar9->field_0x19c & 2) != 0) goto LAB_000ad348;\n                Output_segment::add_initial_output_data(pOVar9,&os->super_Output_data);\n                pOVar9 = *ppOVar11;\n                if (pOVar9->type_ != 7) {\n                  pOVar9->flags_ = pOVar9->flags_ | uVar8;\n                }\n                pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n                *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n                *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n              }\n              else {\n                Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n              }\n              if (((this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11) && (-1 < (char)os->field_0x92))\n              goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        ppOVar11 = ppOVar11 + 1;\n      } while ((this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl._M_finish != ppOVar11);\n    }\n    pOVar9 = make_output_segment(this,1,uVar8);\n    if (((char)os->field_0x91 < '\0') && (os->type_ != 8)) {\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 4;\n    }\n    Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n    if (bVar7) {\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n      *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n      *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n      *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n      *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n    }\n    if ((char)os->field_0x92 < '\0') {\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 8;\n      uVar2 = *(uint *)((int)&os->segment_alignment_ + 4);\n      uVar3 = (uint)os->segment_alignment_;\n      if ((uVar2 != 0 || uVar3 != 0) &&\n         (uVar4 = *(uint *)((int)&pOVar9->min_p_align_ + 4),\n         uVar4 < uVar2 || uVar4 - uVar2 < (uint)((uint)pOVar9->min_p_align_ < uVar3))) {\n        *(uint *)&pOVar9->min_p_align_ = uVar3;\n        *(uint *)((int)&pOVar9->min_p_align_ + 4) = uVar2;\n      }\n    }\nLAB_000ad22a:\n    if (os->type_ == 7) {\n      for (ppOVar11 = (this->segment_list_).\n                      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                      ._M_impl._M_start;\n          ppOVar11 !=\n          (this->segment_list_).\n          super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n          _M_finish; ppOVar11 = ppOVar11 + 1) {\n        pOVar9 = *ppOVar11;\n        if ((pOVar9->type_ == 4) && (((pOVar9->flags_ ^ uVar8) & 2) == 0)) {\n          Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n          if ((this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n              _M_impl._M_finish != ppOVar11) goto LAB_000ad234;\n          break;\n        }\n      }\n      pOVar9 = make_output_segment(this,4,uVar8);\n      Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n    }\nLAB_000ad234:\n    if ((EVar6 & 0x400) != 0) {\n      pOVar9 = this->tls_segment_;\n      if (pOVar9 == (Output_segment *)0x0) {\n        make_output_segment(this,7,uVar8);\n        pOVar9 = this->tls_segment_;\n      }\n      Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n    }\n    bVar7 = false;\n    bVar14 = (os->field_0x91 & 0x20) == 0;\n    if (!bVar14) {\n      if (parameters->options_ == (General_options *)0x0) goto LAB_000ad5a2;\n      bVar7 = false;\n      bVar14 = (parameters->options_->relro_).value == false;\n      if (!bVar14) {\n        if (uVar8 != 6) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/layout.cc",0x835,"attach_allocated_section_to_segment");\n        }\n        pOVar9 = this->relro_segment_;\n        if (pOVar9 == (Output_segment *)0x0) {\n          make_output_segment(this,0x6474e552,6);\n          pOVar9 = this->relro_segment_;\n        }\n        Output_segment::add_output_section_to_nonload(pOVar9,os,6);\n        bVar7 = (undefined1 *)0xffffffef < &stack0xffffffb4;\n        bVar14 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }\n    iVar10 = 8;\n    pbVar12 = (byte *)os->name_;\n    pbVar13 = (byte *)".interp";\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar7 = *pbVar12 < *pbVar13;\n      bVar14 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    if (((!bVar7 && !bVar14) == bVar7) &&\n       (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n        ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)))) {\n      if (this->interp_segment_ == (Output_segment *)0x0) {\n        make_output_segment(this,3,uVar8);\n      }\n      else {\n        format = (char *)gettext();\n        gold_warning(format);\n      }\n      Output_segment::add_output_section_to_nonload(this->interp_segment_,os,uVar8);\n    }\n  }\n  return;\n}\n\n" comment comment comment comment (function_definition "void __thiscall\ngold::Layout::attach_allocated_section_to_segment(Layout *this,Target *target,Output_section *os)\n\n{\n  General_options *pGVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  Elf_Word EVar5;\n  Elf_Xword EVar6;\n  bool bVar7;\n  uint uVar8;\n  char *format;\n  Output_segment *pOVar9;\n  int iVar10;\n  pointer ppOVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  bool bVar14;\n  byte bVar15;\n  uint64_t addr;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0xad059;\n  EVar6 = os->flags_;\n  if ((EVar6 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x7af,"attach_allocated_section_to_segment");\n  }\n  pGVar1 = parameters->options_;\n  if (pGVar1 == (General_options *)0x0) {\nLAB_000ad5a2:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  if (((pGVar1->relocatable_).value == false) &&\n     ((this->script_options_->script_sections_).saw_sections_clause_ == false)) {\n    uVar8 = (-(uint)((EVar6 & 1) == 0) & 0xfffffffe) + 6;\n    if ((EVar6 & 4) != 0) {\n      uVar8 = uVar8 | 1;\n    }\n    uVar8 = uVar8 | (uint)os->extra_segment_flags_;\n    bVar7 = General_options::section_start(pGVar1,os->name_,&addr);\n    if ((-1 < (char)os->field_0x92) &&\n       (ppOVar11 = (this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_start,\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n       _M_finish != ppOVar11)) {\n      do {\n        pOVar9 = *ppOVar11;\n        if ((pOVar9->type_ == 1) && ((pOVar9->field_0x19c & 8) == 0)) {\n          pGVar1 = parameters->options_;\n          if (pGVar1 == (General_options *)0x0) goto LAB_000ad5a2;\n          if ((((pGVar1->omagic_).value != false) || (((uVar8 ^ pOVar9->flags_) & 2) == 0)) &&\n             (((target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false))\n              || (((uVar8 ^ pOVar9->flags_) & 1) == 0)))) {\n            if ((pGVar1->Tbss_).user_set_via_option != false) {\n              EVar5 = os->type_;\n              bVar14 = Output_segment::has_any_data_sections(pOVar9);\n              if ((EVar5 == 8) == bVar14) goto LAB_000ad348;\n              pOVar9 = *ppOVar11;\n            }\n            if (((-1 < (char)os->field_0x91) || (os->type_ == 8)) ||\n               ((pOVar9->field_0x19c & 4) != 0)) {\n              if (bVar7) {\n                if ((pOVar9->field_0x19c & 2) != 0) goto LAB_000ad348;\n                Output_segment::add_initial_output_data(pOVar9,&os->super_Output_data);\n                pOVar9 = *ppOVar11;\n                if (pOVar9->type_ != 7) {\n                  pOVar9->flags_ = pOVar9->flags_ | uVar8;\n                }\n                pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n                *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n                *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n              }\n              else {\n                Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n              }\n              if (((this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11) && (-1 < (char)os->field_0x92))\n              goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        ppOVar11 = ppOVar11 + 1;\n      } while ((this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl._M_finish != ppOVar11);\n    }\n    pOVar9 = make_output_segment(this,1,uVar8);\n    if (((char)os->field_0x91 < '\0') && (os->type_ != 8)) {\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 4;\n    }\n    Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n    if (bVar7) {\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n      *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n      *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n      *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n      *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n    }\n    if ((char)os->field_0x92 < '\0') {\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 8;\n      uVar2 = *(uint *)((int)&os->segment_alignment_ + 4);\n      uVar3 = (uint)os->segment_alignment_;\n      if ((uVar2 != 0 || uVar3 != 0) &&\n         (uVar4 = *(uint *)((int)&pOVar9->min_p_align_ + 4),\n         uVar4 < uVar2 || uVar4 - uVar2 < (uint)((uint)pOVar9->min_p_align_ < uVar3))) {\n        *(uint *)&pOVar9->min_p_align_ = uVar3;\n        *(uint *)((int)&pOVar9->min_p_align_ + 4) = uVar2;\n      }\n    }\nLAB_000ad22a:\n    if (os->type_ == 7) {\n      for (ppOVar11 = (this->segment_list_).\n                      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                      ._M_impl._M_start;\n          ppOVar11 !=\n          (this->segment_list_).\n          super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n          _M_finish; ppOVar11 = ppOVar11 + 1) {\n        pOVar9 = *ppOVar11;\n        if ((pOVar9->type_ == 4) && (((pOVar9->flags_ ^ uVar8) & 2) == 0)) {\n          Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n          if ((this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n              _M_impl._M_finish != ppOVar11) goto LAB_000ad234;\n          break;\n        }\n      }\n      pOVar9 = make_output_segment(this,4,uVar8);\n      Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n    }\nLAB_000ad234:\n    if ((EVar6 & 0x400) != 0) {\n      pOVar9 = this->tls_segment_;\n      if (pOVar9 == (Output_segment *)0x0) {\n        make_output_segment(this,7,uVar8);\n        pOVar9 = this->tls_segment_;\n      }\n      Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n    }\n    bVar7 = false;\n    bVar14 = (os->field_0x91 & 0x20) == 0;\n    if (!bVar14) {\n      if (parameters->options_ == (General_options *)0x0) goto LAB_000ad5a2;\n      bVar7 = false;\n      bVar14 = (parameters->options_->relro_).value == false;\n      if (!bVar14) {\n        if (uVar8 != 6) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/layout.cc",0x835,"attach_allocated_section_to_segment");\n        }\n        pOVar9 = this->relro_segment_;\n        if (pOVar9 == (Output_segment *)0x0) {\n          make_output_segment(this,0x6474e552,6);\n          pOVar9 = this->relro_segment_;\n        }\n        Output_segment::add_output_section_to_nonload(pOVar9,os,6);\n        bVar7 = (undefined1 *)0xffffffef < &stack0xffffffb4;\n        bVar14 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }\n    iVar10 = 8;\n    pbVar12 = (byte *)os->name_;\n    pbVar13 = (byte *)".interp";\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar7 = *pbVar12 < *pbVar13;\n      bVar14 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    if (((!bVar7 && !bVar14) == bVar7) &&\n       (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n        ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)))) {\n      if (this->interp_segment_ == (Output_segment *)0x0) {\n        make_output_segment(this,3,uVar8);\n      }\n      else {\n        format = (char *)gettext();\n        gold_warning(format);\n      }\n      Output_segment::add_output_section_to_nonload(this->interp_segment_,os,uVar8);\n    }\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "attach_allocated_section_to_segment(Layout *this,Target *target,Output_section *os)" identifier (parameter_list "(Layout *this,Target *target,Output_section *os)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Target *target" type_identifier (pointer_declarator "*target" * identifier)) , (parameter_declaration "Output_section *os" type_identifier (pointer_declarator "*os" * identifier)) ))) (compound_statement "{\n  General_options *pGVar1;\n  uint uVar2;\n  uint uVar3;\n  uint uVar4;\n  Elf_Word EVar5;\n  Elf_Xword EVar6;\n  bool bVar7;\n  uint uVar8;\n  char *format;\n  Output_segment *pOVar9;\n  int iVar10;\n  pointer ppOVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  bool bVar14;\n  byte bVar15;\n  uint64_t addr;\n  undefined4 uStack_14;\n  \n  bVar15 = 0;\n  uStack_14 = 0xad059;\n  EVar6 = os->flags_;\n  if ((EVar6 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x7af,"attach_allocated_section_to_segment");\n  }\n  pGVar1 = parameters->options_;\n  if (pGVar1 == (General_options *)0x0) {\nLAB_000ad5a2:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }\n  if (((pGVar1->relocatable_).value == false) &&\n     ((this->script_options_->script_sections_).saw_sections_clause_ == false)) {\n    uVar8 = (-(uint)((EVar6 & 1) == 0) & 0xfffffffe) + 6;\n    if ((EVar6 & 4) != 0) {\n      uVar8 = uVar8 | 1;\n    }\n    uVar8 = uVar8 | (uint)os->extra_segment_flags_;\n    bVar7 = General_options::section_start(pGVar1,os->name_,&addr);\n    if ((-1 < (char)os->field_0x92) &&\n       (ppOVar11 = (this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_start,\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n       _M_finish != ppOVar11)) {\n      do {\n        pOVar9 = *ppOVar11;\n        if ((pOVar9->type_ == 1) && ((pOVar9->field_0x19c & 8) == 0)) {\n          pGVar1 = parameters->options_;\n          if (pGVar1 == (General_options *)0x0) goto LAB_000ad5a2;\n          if ((((pGVar1->omagic_).value != false) || (((uVar8 ^ pOVar9->flags_) & 2) == 0)) &&\n             (((target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false))\n              || (((uVar8 ^ pOVar9->flags_) & 1) == 0)))) {\n            if ((pGVar1->Tbss_).user_set_via_option != false) {\n              EVar5 = os->type_;\n              bVar14 = Output_segment::has_any_data_sections(pOVar9);\n              if ((EVar5 == 8) == bVar14) goto LAB_000ad348;\n              pOVar9 = *ppOVar11;\n            }\n            if (((-1 < (char)os->field_0x91) || (os->type_ == 8)) ||\n               ((pOVar9->field_0x19c & 4) != 0)) {\n              if (bVar7) {\n                if ((pOVar9->field_0x19c & 2) != 0) goto LAB_000ad348;\n                Output_segment::add_initial_output_data(pOVar9,&os->super_Output_data);\n                pOVar9 = *ppOVar11;\n                if (pOVar9->type_ != 7) {\n                  pOVar9->flags_ = pOVar9->flags_ | uVar8;\n                }\n                pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n                *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n                *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n              }\n              else {\n                Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n              }\n              if (((this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11) && (-1 < (char)os->field_0x92))\n              goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        ppOVar11 = ppOVar11 + 1;\n      } while ((this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl._M_finish != ppOVar11);\n    }\n    pOVar9 = make_output_segment(this,1,uVar8);\n    if (((char)os->field_0x91 < '\0') && (os->type_ != 8)) {\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 4;\n    }\n    Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n    if (bVar7) {\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n      *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n      *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n      *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n      *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n    }\n    if ((char)os->field_0x92 < '\0') {\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 8;\n      uVar2 = *(uint *)((int)&os->segment_alignment_ + 4);\n      uVar3 = (uint)os->segment_alignment_;\n      if ((uVar2 != 0 || uVar3 != 0) &&\n         (uVar4 = *(uint *)((int)&pOVar9->min_p_align_ + 4),\n         uVar4 < uVar2 || uVar4 - uVar2 < (uint)((uint)pOVar9->min_p_align_ < uVar3))) {\n        *(uint *)&pOVar9->min_p_align_ = uVar3;\n        *(uint *)((int)&pOVar9->min_p_align_ + 4) = uVar2;\n      }\n    }\nLAB_000ad22a:\n    if (os->type_ == 7) {\n      for (ppOVar11 = (this->segment_list_).\n                      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                      ._M_impl._M_start;\n          ppOVar11 !=\n          (this->segment_list_).\n          super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n          _M_finish; ppOVar11 = ppOVar11 + 1) {\n        pOVar9 = *ppOVar11;\n        if ((pOVar9->type_ == 4) && (((pOVar9->flags_ ^ uVar8) & 2) == 0)) {\n          Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n          if ((this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n              _M_impl._M_finish != ppOVar11) goto LAB_000ad234;\n          break;\n        }\n      }\n      pOVar9 = make_output_segment(this,4,uVar8);\n      Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n    }\nLAB_000ad234:\n    if ((EVar6 & 0x400) != 0) {\n      pOVar9 = this->tls_segment_;\n      if (pOVar9 == (Output_segment *)0x0) {\n        make_output_segment(this,7,uVar8);\n        pOVar9 = this->tls_segment_;\n      }\n      Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n    }\n    bVar7 = false;\n    bVar14 = (os->field_0x91 & 0x20) == 0;\n    if (!bVar14) {\n      if (parameters->options_ == (General_options *)0x0) goto LAB_000ad5a2;\n      bVar7 = false;\n      bVar14 = (parameters->options_->relro_).value == false;\n      if (!bVar14) {\n        if (uVar8 != 6) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/layout.cc",0x835,"attach_allocated_section_to_segment");\n        }\n        pOVar9 = this->relro_segment_;\n        if (pOVar9 == (Output_segment *)0x0) {\n          make_output_segment(this,0x6474e552,6);\n          pOVar9 = this->relro_segment_;\n        }\n        Output_segment::add_output_section_to_nonload(pOVar9,os,6);\n        bVar7 = (undefined1 *)0xffffffef < &stack0xffffffb4;\n        bVar14 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }\n    iVar10 = 8;\n    pbVar12 = (byte *)os->name_;\n    pbVar13 = (byte *)".interp";\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar7 = *pbVar12 < *pbVar13;\n      bVar14 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    if (((!bVar7 && !bVar14) == bVar7) &&\n       (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n        ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)))) {\n      if (this->interp_segment_ == (Output_segment *)0x0) {\n        make_output_segment(this,3,uVar8);\n      }\n      else {\n        format = (char *)gettext();\n        gold_warning(format);\n      }\n      Output_segment::add_output_section_to_nonload(this->interp_segment_,os,uVar8);\n    }\n  }\n  return;\n}" { (declaration "General_options *pGVar1;" type_identifier (pointer_declarator "*pGVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "Elf_Word EVar5;" type_identifier identifier ;) (declaration "Elf_Xword EVar6;" type_identifier identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "Output_segment *pOVar9;" type_identifier (pointer_declarator "*pOVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "pointer ppOVar11;" type_identifier identifier ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "uint64_t addr;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0xad059;" (assignment_expression "uStack_14 = 0xad059" identifier = number_literal) ;) (expression_statement "EVar6 = os->flags_;" (assignment_expression "EVar6 = os->flags_" identifier = (field_expression "os->flags_" identifier -> field_identifier)) ;) (if_statement "if ((EVar6 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x7af,"attach_allocated_section_to_segment");\n  }" if (parenthesized_expression "((EVar6 & 2) == 0)" ( (binary_expression "(EVar6 & 2) == 0" (parenthesized_expression "(EVar6 & 2)" ( (binary_expression "EVar6 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/layout.cc",0x7af,"attach_allocated_section_to_segment");\n  }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0x7af,"attach_allocated_section_to_segment");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0x7af,"attach_allocated_section_to_segment")" identifier (argument_list "("../../gold/layout.cc",0x7af,"attach_allocated_section_to_segment")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""attach_allocated_section_to_segment"" " string_content ") ))) ;) })) (expression_statement "pGVar1 = parameters->options_;" (assignment_expression "pGVar1 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar1 == (General_options *)0x0) {\nLAB_000ad5a2:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" if (parenthesized_expression "(pGVar1 == (General_options *)0x0)" ( (binary_expression "pGVar1 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000ad5a2:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n  }" { (labeled_statement "LAB_000ad5a2:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if (((pGVar1->relocatable_).value == false) &&\n     ((this->script_options_->script_sections_).saw_sections_clause_ == false)) {\n    uVar8 = (-(uint)((EVar6 & 1) == 0) & 0xfffffffe) + 6;\n    if ((EVar6 & 4) != 0) {\n      uVar8 = uVar8 | 1;\n    }\n    uVar8 = uVar8 | (uint)os->extra_segment_flags_;\n    bVar7 = General_options::section_start(pGVar1,os->name_,&addr);\n    if ((-1 < (char)os->field_0x92) &&\n       (ppOVar11 = (this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_start,\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n       _M_finish != ppOVar11)) {\n      do {\n        pOVar9 = *ppOVar11;\n        if ((pOVar9->type_ == 1) && ((pOVar9->field_0x19c & 8) == 0)) {\n          pGVar1 = parameters->options_;\n          if (pGVar1 == (General_options *)0x0) goto LAB_000ad5a2;\n          if ((((pGVar1->omagic_).value != false) || (((uVar8 ^ pOVar9->flags_) & 2) == 0)) &&\n             (((target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false))\n              || (((uVar8 ^ pOVar9->flags_) & 1) == 0)))) {\n            if ((pGVar1->Tbss_).user_set_via_option != false) {\n              EVar5 = os->type_;\n              bVar14 = Output_segment::has_any_data_sections(pOVar9);\n              if ((EVar5 == 8) == bVar14) goto LAB_000ad348;\n              pOVar9 = *ppOVar11;\n            }\n            if (((-1 < (char)os->field_0x91) || (os->type_ == 8)) ||\n               ((pOVar9->field_0x19c & 4) != 0)) {\n              if (bVar7) {\n                if ((pOVar9->field_0x19c & 2) != 0) goto LAB_000ad348;\n                Output_segment::add_initial_output_data(pOVar9,&os->super_Output_data);\n                pOVar9 = *ppOVar11;\n                if (pOVar9->type_ != 7) {\n                  pOVar9->flags_ = pOVar9->flags_ | uVar8;\n                }\n                pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n                *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n                *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n              }\n              else {\n                Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n              }\n              if (((this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11) && (-1 < (char)os->field_0x92))\n              goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        ppOVar11 = ppOVar11 + 1;\n      } while ((this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl._M_finish != ppOVar11);\n    }\n    pOVar9 = make_output_segment(this,1,uVar8);\n    if (((char)os->field_0x91 < '\0') && (os->type_ != 8)) {\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 4;\n    }\n    Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n    if (bVar7) {\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n      *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n      *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n      *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n      *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n    }\n    if ((char)os->field_0x92 < '\0') {\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 8;\n      uVar2 = *(uint *)((int)&os->segment_alignment_ + 4);\n      uVar3 = (uint)os->segment_alignment_;\n      if ((uVar2 != 0 || uVar3 != 0) &&\n         (uVar4 = *(uint *)((int)&pOVar9->min_p_align_ + 4),\n         uVar4 < uVar2 || uVar4 - uVar2 < (uint)((uint)pOVar9->min_p_align_ < uVar3))) {\n        *(uint *)&pOVar9->min_p_align_ = uVar3;\n        *(uint *)((int)&pOVar9->min_p_align_ + 4) = uVar2;\n      }\n    }\nLAB_000ad22a:\n    if (os->type_ == 7) {\n      for (ppOVar11 = (this->segment_list_).\n                      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                      ._M_impl._M_start;\n          ppOVar11 !=\n          (this->segment_list_).\n          super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n          _M_finish; ppOVar11 = ppOVar11 + 1) {\n        pOVar9 = *ppOVar11;\n        if ((pOVar9->type_ == 4) && (((pOVar9->flags_ ^ uVar8) & 2) == 0)) {\n          Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n          if ((this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n              _M_impl._M_finish != ppOVar11) goto LAB_000ad234;\n          break;\n        }\n      }\n      pOVar9 = make_output_segment(this,4,uVar8);\n      Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n    }\nLAB_000ad234:\n    if ((EVar6 & 0x400) != 0) {\n      pOVar9 = this->tls_segment_;\n      if (pOVar9 == (Output_segment *)0x0) {\n        make_output_segment(this,7,uVar8);\n        pOVar9 = this->tls_segment_;\n      }\n      Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n    }\n    bVar7 = false;\n    bVar14 = (os->field_0x91 & 0x20) == 0;\n    if (!bVar14) {\n      if (parameters->options_ == (General_options *)0x0) goto LAB_000ad5a2;\n      bVar7 = false;\n      bVar14 = (parameters->options_->relro_).value == false;\n      if (!bVar14) {\n        if (uVar8 != 6) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/layout.cc",0x835,"attach_allocated_section_to_segment");\n        }\n        pOVar9 = this->relro_segment_;\n        if (pOVar9 == (Output_segment *)0x0) {\n          make_output_segment(this,0x6474e552,6);\n          pOVar9 = this->relro_segment_;\n        }\n        Output_segment::add_output_section_to_nonload(pOVar9,os,6);\n        bVar7 = (undefined1 *)0xffffffef < &stack0xffffffb4;\n        bVar14 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }\n    iVar10 = 8;\n    pbVar12 = (byte *)os->name_;\n    pbVar13 = (byte *)".interp";\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar7 = *pbVar12 < *pbVar13;\n      bVar14 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    if (((!bVar7 && !bVar14) == bVar7) &&\n       (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n        ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)))) {\n      if (this->interp_segment_ == (Output_segment *)0x0) {\n        make_output_segment(this,3,uVar8);\n      }\n      else {\n        format = (char *)gettext();\n        gold_warning(format);\n      }\n      Output_segment::add_output_section_to_nonload(this->interp_segment_,os,uVar8);\n    }\n  }" if (parenthesized_expression "(((pGVar1->relocatable_).value == false) &&\n     ((this->script_options_->script_sections_).saw_sections_clause_ == false))" ( (binary_expression "((pGVar1->relocatable_).value == false) &&\n     ((this->script_options_->script_sections_).saw_sections_clause_ == false)" (parenthesized_expression "((pGVar1->relocatable_).value == false)" ( (binary_expression "(pGVar1->relocatable_).value == false" (field_expression "(pGVar1->relocatable_).value" (parenthesized_expression "(pGVar1->relocatable_)" ( (field_expression "pGVar1->relocatable_" identifier -> field_identifier) )) . field_identifier) == false) )) && (parenthesized_expression "((this->script_options_->script_sections_).saw_sections_clause_ == false)" ( (binary_expression "(this->script_options_->script_sections_).saw_sections_clause_ == false" (field_expression "(this->script_options_->script_sections_).saw_sections_clause_" (parenthesized_expression "(this->script_options_->script_sections_)" ( (field_expression "this->script_options_->script_sections_" (field_expression "this->script_options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == false) ))) )) (compound_statement "{\n    uVar8 = (-(uint)((EVar6 & 1) == 0) & 0xfffffffe) + 6;\n    if ((EVar6 & 4) != 0) {\n      uVar8 = uVar8 | 1;\n    }\n    uVar8 = uVar8 | (uint)os->extra_segment_flags_;\n    bVar7 = General_options::section_start(pGVar1,os->name_,&addr);\n    if ((-1 < (char)os->field_0x92) &&\n       (ppOVar11 = (this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_start,\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n       _M_finish != ppOVar11)) {\n      do {\n        pOVar9 = *ppOVar11;\n        if ((pOVar9->type_ == 1) && ((pOVar9->field_0x19c & 8) == 0)) {\n          pGVar1 = parameters->options_;\n          if (pGVar1 == (General_options *)0x0) goto LAB_000ad5a2;\n          if ((((pGVar1->omagic_).value != false) || (((uVar8 ^ pOVar9->flags_) & 2) == 0)) &&\n             (((target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false))\n              || (((uVar8 ^ pOVar9->flags_) & 1) == 0)))) {\n            if ((pGVar1->Tbss_).user_set_via_option != false) {\n              EVar5 = os->type_;\n              bVar14 = Output_segment::has_any_data_sections(pOVar9);\n              if ((EVar5 == 8) == bVar14) goto LAB_000ad348;\n              pOVar9 = *ppOVar11;\n            }\n            if (((-1 < (char)os->field_0x91) || (os->type_ == 8)) ||\n               ((pOVar9->field_0x19c & 4) != 0)) {\n              if (bVar7) {\n                if ((pOVar9->field_0x19c & 2) != 0) goto LAB_000ad348;\n                Output_segment::add_initial_output_data(pOVar9,&os->super_Output_data);\n                pOVar9 = *ppOVar11;\n                if (pOVar9->type_ != 7) {\n                  pOVar9->flags_ = pOVar9->flags_ | uVar8;\n                }\n                pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n                *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n                *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n              }\n              else {\n                Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n              }\n              if (((this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11) && (-1 < (char)os->field_0x92))\n              goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        ppOVar11 = ppOVar11 + 1;\n      } while ((this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl._M_finish != ppOVar11);\n    }\n    pOVar9 = make_output_segment(this,1,uVar8);\n    if (((char)os->field_0x91 < '\0') && (os->type_ != 8)) {\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 4;\n    }\n    Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n    if (bVar7) {\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n      *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n      *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n      *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n      *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n    }\n    if ((char)os->field_0x92 < '\0') {\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 8;\n      uVar2 = *(uint *)((int)&os->segment_alignment_ + 4);\n      uVar3 = (uint)os->segment_alignment_;\n      if ((uVar2 != 0 || uVar3 != 0) &&\n         (uVar4 = *(uint *)((int)&pOVar9->min_p_align_ + 4),\n         uVar4 < uVar2 || uVar4 - uVar2 < (uint)((uint)pOVar9->min_p_align_ < uVar3))) {\n        *(uint *)&pOVar9->min_p_align_ = uVar3;\n        *(uint *)((int)&pOVar9->min_p_align_ + 4) = uVar2;\n      }\n    }\nLAB_000ad22a:\n    if (os->type_ == 7) {\n      for (ppOVar11 = (this->segment_list_).\n                      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                      ._M_impl._M_start;\n          ppOVar11 !=\n          (this->segment_list_).\n          super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n          _M_finish; ppOVar11 = ppOVar11 + 1) {\n        pOVar9 = *ppOVar11;\n        if ((pOVar9->type_ == 4) && (((pOVar9->flags_ ^ uVar8) & 2) == 0)) {\n          Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n          if ((this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n              _M_impl._M_finish != ppOVar11) goto LAB_000ad234;\n          break;\n        }\n      }\n      pOVar9 = make_output_segment(this,4,uVar8);\n      Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n    }\nLAB_000ad234:\n    if ((EVar6 & 0x400) != 0) {\n      pOVar9 = this->tls_segment_;\n      if (pOVar9 == (Output_segment *)0x0) {\n        make_output_segment(this,7,uVar8);\n        pOVar9 = this->tls_segment_;\n      }\n      Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n    }\n    bVar7 = false;\n    bVar14 = (os->field_0x91 & 0x20) == 0;\n    if (!bVar14) {\n      if (parameters->options_ == (General_options *)0x0) goto LAB_000ad5a2;\n      bVar7 = false;\n      bVar14 = (parameters->options_->relro_).value == false;\n      if (!bVar14) {\n        if (uVar8 != 6) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/layout.cc",0x835,"attach_allocated_section_to_segment");\n        }\n        pOVar9 = this->relro_segment_;\n        if (pOVar9 == (Output_segment *)0x0) {\n          make_output_segment(this,0x6474e552,6);\n          pOVar9 = this->relro_segment_;\n        }\n        Output_segment::add_output_section_to_nonload(pOVar9,os,6);\n        bVar7 = (undefined1 *)0xffffffef < &stack0xffffffb4;\n        bVar14 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }\n    iVar10 = 8;\n    pbVar12 = (byte *)os->name_;\n    pbVar13 = (byte *)".interp";\n    do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar7 = *pbVar12 < *pbVar13;\n      bVar14 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);\n    if (((!bVar7 && !bVar14) == bVar7) &&\n       (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n        ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)))) {\n      if (this->interp_segment_ == (Output_segment *)0x0) {\n        make_output_segment(this,3,uVar8);\n      }\n      else {\n        format = (char *)gettext();\n        gold_warning(format);\n      }\n      Output_segment::add_output_section_to_nonload(this->interp_segment_,os,uVar8);\n    }\n  }" { (expression_statement "uVar8 = (-(uint)((EVar6 & 1) == 0) & 0xfffffffe) + 6;" (assignment_expression "uVar8 = (-(uint)((EVar6 & 1) == 0) & 0xfffffffe) + 6" identifier = (binary_expression "(-(uint)((EVar6 & 1) == 0) & 0xfffffffe) + 6" (parenthesized_expression "(-(uint)((EVar6 & 1) == 0) & 0xfffffffe)" ( (binary_expression "-(uint)((EVar6 & 1) == 0) & 0xfffffffe" (unary_expression "-(uint)((EVar6 & 1) == 0)" - (call_expression "(uint)((EVar6 & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((EVar6 & 1) == 0)" ( (binary_expression "(EVar6 & 1) == 0" (parenthesized_expression "(EVar6 & 1)" ( (binary_expression "EVar6 & 1" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (if_statement "if ((EVar6 & 4) != 0) {\n      uVar8 = uVar8 | 1;\n    }" if (parenthesized_expression "((EVar6 & 4) != 0)" ( (binary_expression "(EVar6 & 4) != 0" (parenthesized_expression "(EVar6 & 4)" ( (binary_expression "EVar6 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar8 = uVar8 | 1;\n    }" { (expression_statement "uVar8 = uVar8 | 1;" (assignment_expression "uVar8 = uVar8 | 1" identifier = (binary_expression "uVar8 | 1" identifier | number_literal)) ;) })) (expression_statement "uVar8 = uVar8 | (uint)os->extra_segment_flags_;" (assignment_expression "uVar8 = uVar8 | (uint)os->extra_segment_flags_" identifier = (binary_expression "uVar8 | (uint)os->extra_segment_flags_" identifier | (cast_expression "(uint)os->extra_segment_flags_" ( (type_descriptor "uint" type_identifier) ) (field_expression "os->extra_segment_flags_" identifier -> field_identifier)))) ;) (ERROR "bVar7 = General_options::" (assignment_expression "bVar7 = General_options" identifier = identifier) : :) (expression_statement "section_start(pGVar1,os->name_,&addr);" (call_expression "section_start(pGVar1,os->name_,&addr)" identifier (argument_list "(pGVar1,os->name_,&addr)" ( identifier , (field_expression "os->name_" identifier -> field_identifier) , (pointer_expression "&addr" & identifier) ))) ;) (if_statement "if ((-1 < (char)os->field_0x92) &&\n       (ppOVar11 = (this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_start,\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n       _M_finish != ppOVar11)) {\n      do {\n        pOVar9 = *ppOVar11;\n        if ((pOVar9->type_ == 1) && ((pOVar9->field_0x19c & 8) == 0)) {\n          pGVar1 = parameters->options_;\n          if (pGVar1 == (General_options *)0x0) goto LAB_000ad5a2;\n          if ((((pGVar1->omagic_).value != false) || (((uVar8 ^ pOVar9->flags_) & 2) == 0)) &&\n             (((target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false))\n              || (((uVar8 ^ pOVar9->flags_) & 1) == 0)))) {\n            if ((pGVar1->Tbss_).user_set_via_option != false) {\n              EVar5 = os->type_;\n              bVar14 = Output_segment::has_any_data_sections(pOVar9);\n              if ((EVar5 == 8) == bVar14) goto LAB_000ad348;\n              pOVar9 = *ppOVar11;\n            }\n            if (((-1 < (char)os->field_0x91) || (os->type_ == 8)) ||\n               ((pOVar9->field_0x19c & 4) != 0)) {\n              if (bVar7) {\n                if ((pOVar9->field_0x19c & 2) != 0) goto LAB_000ad348;\n                Output_segment::add_initial_output_data(pOVar9,&os->super_Output_data);\n                pOVar9 = *ppOVar11;\n                if (pOVar9->type_ != 7) {\n                  pOVar9->flags_ = pOVar9->flags_ | uVar8;\n                }\n                pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n                *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n                *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n              }\n              else {\n                Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n              }\n              if (((this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11) && (-1 < (char)os->field_0x92))\n              goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        ppOVar11 = ppOVar11 + 1;\n      } while ((this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl._M_finish != ppOVar11);\n    }" if (parenthesized_expression "((-1 < (char)os->field_0x92) &&\n       (ppOVar11 = (this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_start,\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n       _M_finish != ppOVar11))" ( (binary_expression "(-1 < (char)os->field_0x92) &&\n       (ppOVar11 = (this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_start,\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n       _M_finish != ppOVar11)" (parenthesized_expression "(-1 < (char)os->field_0x92)" ( (binary_expression "-1 < (char)os->field_0x92" number_literal < (cast_expression "(char)os->field_0x92" ( (type_descriptor "char" primitive_type) ) (field_expression "os->field_0x92" identifier -> field_identifier))) )) && (parenthesized_expression "(ppOVar11 = (this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_start,\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n       _M_finish != ppOVar11)" ( (ERROR "ppOVar11 = (this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_start,\n       (this->segment_list_).\n       super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>." (comma_expression "ppOVar11 = (this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_start,\n       (this->segment_list_).\n       super__Vector_base<gold" (field_expression "ppOVar11 = (this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_start" (field_expression "ppOVar11 = (this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl" (binary_expression "ppOVar11 = (this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "ppOVar11 = (this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "ppOVar11 = (this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std" (assignment_expression "ppOVar11 = (this->segment_list_).\n                   super__Vector_base<gold" identifier = (binary_expression "(this->segment_list_).\n                   super__Vector_base<gold" (field_expression "(this->segment_list_).\n                   super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) , (binary_expression "(this->segment_list_).\n       super__Vector_base<gold" (field_expression "(this->segment_list_).\n       super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) : : identifier * , identifier : : identifier < identifier : : identifier * > identifier > .) (binary_expression "_M_impl.\n       _M_finish != ppOVar11" (field_expression "_M_impl.\n       _M_finish" identifier . field_identifier) != identifier) ))) )) (compound_statement "{\n      do {\n        pOVar9 = *ppOVar11;\n        if ((pOVar9->type_ == 1) && ((pOVar9->field_0x19c & 8) == 0)) {\n          pGVar1 = parameters->options_;\n          if (pGVar1 == (General_options *)0x0) goto LAB_000ad5a2;\n          if ((((pGVar1->omagic_).value != false) || (((uVar8 ^ pOVar9->flags_) & 2) == 0)) &&\n             (((target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false))\n              || (((uVar8 ^ pOVar9->flags_) & 1) == 0)))) {\n            if ((pGVar1->Tbss_).user_set_via_option != false) {\n              EVar5 = os->type_;\n              bVar14 = Output_segment::has_any_data_sections(pOVar9);\n              if ((EVar5 == 8) == bVar14) goto LAB_000ad348;\n              pOVar9 = *ppOVar11;\n            }\n            if (((-1 < (char)os->field_0x91) || (os->type_ == 8)) ||\n               ((pOVar9->field_0x19c & 4) != 0)) {\n              if (bVar7) {\n                if ((pOVar9->field_0x19c & 2) != 0) goto LAB_000ad348;\n                Output_segment::add_initial_output_data(pOVar9,&os->super_Output_data);\n                pOVar9 = *ppOVar11;\n                if (pOVar9->type_ != 7) {\n                  pOVar9->flags_ = pOVar9->flags_ | uVar8;\n                }\n                pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n                *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n                *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n              }\n              else {\n                Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n              }\n              if (((this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11) && (-1 < (char)os->field_0x92))\n              goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        ppOVar11 = ppOVar11 + 1;\n      } while ((this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl._M_finish != ppOVar11);\n    }" { (do_statement "do {\n        pOVar9 = *ppOVar11;\n        if ((pOVar9->type_ == 1) && ((pOVar9->field_0x19c & 8) == 0)) {\n          pGVar1 = parameters->options_;\n          if (pGVar1 == (General_options *)0x0) goto LAB_000ad5a2;\n          if ((((pGVar1->omagic_).value != false) || (((uVar8 ^ pOVar9->flags_) & 2) == 0)) &&\n             (((target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false))\n              || (((uVar8 ^ pOVar9->flags_) & 1) == 0)))) {\n            if ((pGVar1->Tbss_).user_set_via_option != false) {\n              EVar5 = os->type_;\n              bVar14 = Output_segment::has_any_data_sections(pOVar9);\n              if ((EVar5 == 8) == bVar14) goto LAB_000ad348;\n              pOVar9 = *ppOVar11;\n            }\n            if (((-1 < (char)os->field_0x91) || (os->type_ == 8)) ||\n               ((pOVar9->field_0x19c & 4) != 0)) {\n              if (bVar7) {\n                if ((pOVar9->field_0x19c & 2) != 0) goto LAB_000ad348;\n                Output_segment::add_initial_output_data(pOVar9,&os->super_Output_data);\n                pOVar9 = *ppOVar11;\n                if (pOVar9->type_ != 7) {\n                  pOVar9->flags_ = pOVar9->flags_ | uVar8;\n                }\n                pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n                *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n                *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n              }\n              else {\n                Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n              }\n              if (((this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11) && (-1 < (char)os->field_0x92))\n              goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        ppOVar11 = ppOVar11 + 1;\n      } while ((this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl._M_finish != ppOVar11);" do (compound_statement "{\n        pOVar9 = *ppOVar11;\n        if ((pOVar9->type_ == 1) && ((pOVar9->field_0x19c & 8) == 0)) {\n          pGVar1 = parameters->options_;\n          if (pGVar1 == (General_options *)0x0) goto LAB_000ad5a2;\n          if ((((pGVar1->omagic_).value != false) || (((uVar8 ^ pOVar9->flags_) & 2) == 0)) &&\n             (((target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false))\n              || (((uVar8 ^ pOVar9->flags_) & 1) == 0)))) {\n            if ((pGVar1->Tbss_).user_set_via_option != false) {\n              EVar5 = os->type_;\n              bVar14 = Output_segment::has_any_data_sections(pOVar9);\n              if ((EVar5 == 8) == bVar14) goto LAB_000ad348;\n              pOVar9 = *ppOVar11;\n            }\n            if (((-1 < (char)os->field_0x91) || (os->type_ == 8)) ||\n               ((pOVar9->field_0x19c & 4) != 0)) {\n              if (bVar7) {\n                if ((pOVar9->field_0x19c & 2) != 0) goto LAB_000ad348;\n                Output_segment::add_initial_output_data(pOVar9,&os->super_Output_data);\n                pOVar9 = *ppOVar11;\n                if (pOVar9->type_ != 7) {\n                  pOVar9->flags_ = pOVar9->flags_ | uVar8;\n                }\n                pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n                *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n                *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n              }\n              else {\n                Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n              }\n              if (((this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11) && (-1 < (char)os->field_0x92))\n              goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        ppOVar11 = ppOVar11 + 1;\n      }" { (expression_statement "pOVar9 = *ppOVar11;" (assignment_expression "pOVar9 = *ppOVar11" identifier = (pointer_expression "*ppOVar11" * identifier)) ;) (if_statement "if ((pOVar9->type_ == 1) && ((pOVar9->field_0x19c & 8) == 0)) {\n          pGVar1 = parameters->options_;\n          if (pGVar1 == (General_options *)0x0) goto LAB_000ad5a2;\n          if ((((pGVar1->omagic_).value != false) || (((uVar8 ^ pOVar9->flags_) & 2) == 0)) &&\n             (((target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false))\n              || (((uVar8 ^ pOVar9->flags_) & 1) == 0)))) {\n            if ((pGVar1->Tbss_).user_set_via_option != false) {\n              EVar5 = os->type_;\n              bVar14 = Output_segment::has_any_data_sections(pOVar9);\n              if ((EVar5 == 8) == bVar14) goto LAB_000ad348;\n              pOVar9 = *ppOVar11;\n            }\n            if (((-1 < (char)os->field_0x91) || (os->type_ == 8)) ||\n               ((pOVar9->field_0x19c & 4) != 0)) {\n              if (bVar7) {\n                if ((pOVar9->field_0x19c & 2) != 0) goto LAB_000ad348;\n                Output_segment::add_initial_output_data(pOVar9,&os->super_Output_data);\n                pOVar9 = *ppOVar11;\n                if (pOVar9->type_ != 7) {\n                  pOVar9->flags_ = pOVar9->flags_ | uVar8;\n                }\n                pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n                *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n                *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n              }\n              else {\n                Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n              }\n              if (((this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11) && (-1 < (char)os->field_0x92))\n              goto LAB_000ad22a;\n              break;\n            }\n          }\n        }" if (parenthesized_expression "((pOVar9->type_ == 1) && ((pOVar9->field_0x19c & 8) == 0))" ( (binary_expression "(pOVar9->type_ == 1) && ((pOVar9->field_0x19c & 8) == 0)" (parenthesized_expression "(pOVar9->type_ == 1)" ( (binary_expression "pOVar9->type_ == 1" (field_expression "pOVar9->type_" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "((pOVar9->field_0x19c & 8) == 0)" ( (binary_expression "(pOVar9->field_0x19c & 8) == 0" (parenthesized_expression "(pOVar9->field_0x19c & 8)" ( (binary_expression "pOVar9->field_0x19c & 8" (field_expression "pOVar9->field_0x19c" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          pGVar1 = parameters->options_;\n          if (pGVar1 == (General_options *)0x0) goto LAB_000ad5a2;\n          if ((((pGVar1->omagic_).value != false) || (((uVar8 ^ pOVar9->flags_) & 2) == 0)) &&\n             (((target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false))\n              || (((uVar8 ^ pOVar9->flags_) & 1) == 0)))) {\n            if ((pGVar1->Tbss_).user_set_via_option != false) {\n              EVar5 = os->type_;\n              bVar14 = Output_segment::has_any_data_sections(pOVar9);\n              if ((EVar5 == 8) == bVar14) goto LAB_000ad348;\n              pOVar9 = *ppOVar11;\n            }\n            if (((-1 < (char)os->field_0x91) || (os->type_ == 8)) ||\n               ((pOVar9->field_0x19c & 4) != 0)) {\n              if (bVar7) {\n                if ((pOVar9->field_0x19c & 2) != 0) goto LAB_000ad348;\n                Output_segment::add_initial_output_data(pOVar9,&os->super_Output_data);\n                pOVar9 = *ppOVar11;\n                if (pOVar9->type_ != 7) {\n                  pOVar9->flags_ = pOVar9->flags_ | uVar8;\n                }\n                pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n                *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n                *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n              }\n              else {\n                Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n              }\n              if (((this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11) && (-1 < (char)os->field_0x92))\n              goto LAB_000ad22a;\n              break;\n            }\n          }\n        }" { (expression_statement "pGVar1 = parameters->options_;" (assignment_expression "pGVar1 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar1 == (General_options *)0x0) goto LAB_000ad5a2;" if (parenthesized_expression "(pGVar1 == (General_options *)0x0)" ( (binary_expression "pGVar1 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000ad5a2;" goto statement_identifier ;)) (if_statement "if ((((pGVar1->omagic_).value != false) || (((uVar8 ^ pOVar9->flags_) & 2) == 0)) &&\n             (((target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false))\n              || (((uVar8 ^ pOVar9->flags_) & 1) == 0)))) {\n            if ((pGVar1->Tbss_).user_set_via_option != false) {\n              EVar5 = os->type_;\n              bVar14 = Output_segment::has_any_data_sections(pOVar9);\n              if ((EVar5 == 8) == bVar14) goto LAB_000ad348;\n              pOVar9 = *ppOVar11;\n            }\n            if (((-1 < (char)os->field_0x91) || (os->type_ == 8)) ||\n               ((pOVar9->field_0x19c & 4) != 0)) {\n              if (bVar7) {\n                if ((pOVar9->field_0x19c & 2) != 0) goto LAB_000ad348;\n                Output_segment::add_initial_output_data(pOVar9,&os->super_Output_data);\n                pOVar9 = *ppOVar11;\n                if (pOVar9->type_ != 7) {\n                  pOVar9->flags_ = pOVar9->flags_ | uVar8;\n                }\n                pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n                *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n                *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n              }\n              else {\n                Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n              }\n              if (((this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11) && (-1 < (char)os->field_0x92))\n              goto LAB_000ad22a;\n              break;\n            }\n          }" if (parenthesized_expression "((((pGVar1->omagic_).value != false) || (((uVar8 ^ pOVar9->flags_) & 2) == 0)) &&\n             (((target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false))\n              || (((uVar8 ^ pOVar9->flags_) & 1) == 0))))" ( (binary_expression "(((pGVar1->omagic_).value != false) || (((uVar8 ^ pOVar9->flags_) & 2) == 0)) &&\n             (((target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false))\n              || (((uVar8 ^ pOVar9->flags_) & 1) == 0)))" (parenthesized_expression "(((pGVar1->omagic_).value != false) || (((uVar8 ^ pOVar9->flags_) & 2) == 0))" ( (binary_expression "((pGVar1->omagic_).value != false) || (((uVar8 ^ pOVar9->flags_) & 2) == 0)" (parenthesized_expression "((pGVar1->omagic_).value != false)" ( (binary_expression "(pGVar1->omagic_).value != false" (field_expression "(pGVar1->omagic_).value" (parenthesized_expression "(pGVar1->omagic_)" ( (field_expression "pGVar1->omagic_" identifier -> field_identifier) )) . field_identifier) != false) )) || (parenthesized_expression "(((uVar8 ^ pOVar9->flags_) & 2) == 0)" ( (binary_expression "((uVar8 ^ pOVar9->flags_) & 2) == 0" (parenthesized_expression "((uVar8 ^ pOVar9->flags_) & 2)" ( (binary_expression "(uVar8 ^ pOVar9->flags_) & 2" (parenthesized_expression "(uVar8 ^ pOVar9->flags_)" ( (binary_expression "uVar8 ^ pOVar9->flags_" identifier ^ (field_expression "pOVar9->flags_" identifier -> field_identifier)) )) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(((target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false))\n              || (((uVar8 ^ pOVar9->flags_) & 1) == 0)))" ( (parenthesized_expression "((target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false))\n              || (((uVar8 ^ pOVar9->flags_) & 1) == 0))" ( (binary_expression "(target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false))\n              || (((uVar8 ^ pOVar9->flags_) & 1) == 0)" (parenthesized_expression "(target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false))" ( (binary_expression "target->pti_->isolate_execinstr == false && ((pGVar1->rosegment_).value == false)" (binary_expression "target->pti_->isolate_execinstr == false" (field_expression "target->pti_->isolate_execinstr" (field_expression "target->pti_" identifier -> field_identifier) -> field_identifier) == false) && (parenthesized_expression "((pGVar1->rosegment_).value == false)" ( (binary_expression "(pGVar1->rosegment_).value == false" (field_expression "(pGVar1->rosegment_).value" (parenthesized_expression "(pGVar1->rosegment_)" ( (field_expression "pGVar1->rosegment_" identifier -> field_identifier) )) . field_identifier) == false) ))) )) || (parenthesized_expression "(((uVar8 ^ pOVar9->flags_) & 1) == 0)" ( (binary_expression "((uVar8 ^ pOVar9->flags_) & 1) == 0" (parenthesized_expression "((uVar8 ^ pOVar9->flags_) & 1)" ( (binary_expression "(uVar8 ^ pOVar9->flags_) & 1" (parenthesized_expression "(uVar8 ^ pOVar9->flags_)" ( (binary_expression "uVar8 ^ pOVar9->flags_" identifier ^ (field_expression "pOVar9->flags_" identifier -> field_identifier)) )) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n            if ((pGVar1->Tbss_).user_set_via_option != false) {\n              EVar5 = os->type_;\n              bVar14 = Output_segment::has_any_data_sections(pOVar9);\n              if ((EVar5 == 8) == bVar14) goto LAB_000ad348;\n              pOVar9 = *ppOVar11;\n            }\n            if (((-1 < (char)os->field_0x91) || (os->type_ == 8)) ||\n               ((pOVar9->field_0x19c & 4) != 0)) {\n              if (bVar7) {\n                if ((pOVar9->field_0x19c & 2) != 0) goto LAB_000ad348;\n                Output_segment::add_initial_output_data(pOVar9,&os->super_Output_data);\n                pOVar9 = *ppOVar11;\n                if (pOVar9->type_ != 7) {\n                  pOVar9->flags_ = pOVar9->flags_ | uVar8;\n                }\n                pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n                *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n                *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n              }\n              else {\n                Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n              }\n              if (((this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11) && (-1 < (char)os->field_0x92))\n              goto LAB_000ad22a;\n              break;\n            }\n          }" { (if_statement "if ((pGVar1->Tbss_).user_set_via_option != false) {\n              EVar5 = os->type_;\n              bVar14 = Output_segment::has_any_data_sections(pOVar9);\n              if ((EVar5 == 8) == bVar14) goto LAB_000ad348;\n              pOVar9 = *ppOVar11;\n            }" if (parenthesized_expression "((pGVar1->Tbss_).user_set_via_option != false)" ( (binary_expression "(pGVar1->Tbss_).user_set_via_option != false" (field_expression "(pGVar1->Tbss_).user_set_via_option" (parenthesized_expression "(pGVar1->Tbss_)" ( (field_expression "pGVar1->Tbss_" identifier -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n              EVar5 = os->type_;\n              bVar14 = Output_segment::has_any_data_sections(pOVar9);\n              if ((EVar5 == 8) == bVar14) goto LAB_000ad348;\n              pOVar9 = *ppOVar11;\n            }" { (expression_statement "EVar5 = os->type_;" (assignment_expression "EVar5 = os->type_" identifier = (field_expression "os->type_" identifier -> field_identifier)) ;) (ERROR "bVar14 = Output_segment::" (assignment_expression "bVar14 = Output_segment" identifier = identifier) : :) (expression_statement "has_any_data_sections(pOVar9);" (call_expression "has_any_data_sections(pOVar9)" identifier (argument_list "(pOVar9)" ( identifier ))) ;) (if_statement "if ((EVar5 == 8) == bVar14) goto LAB_000ad348;" if (parenthesized_expression "((EVar5 == 8) == bVar14)" ( (binary_expression "(EVar5 == 8) == bVar14" (parenthesized_expression "(EVar5 == 8)" ( (binary_expression "EVar5 == 8" identifier == number_literal) )) == identifier) )) (goto_statement "goto LAB_000ad348;" goto statement_identifier ;)) (expression_statement "pOVar9 = *ppOVar11;" (assignment_expression "pOVar9 = *ppOVar11" identifier = (pointer_expression "*ppOVar11" * identifier)) ;) })) (if_statement "if (((-1 < (char)os->field_0x91) || (os->type_ == 8)) ||\n               ((pOVar9->field_0x19c & 4) != 0)) {\n              if (bVar7) {\n                if ((pOVar9->field_0x19c & 2) != 0) goto LAB_000ad348;\n                Output_segment::add_initial_output_data(pOVar9,&os->super_Output_data);\n                pOVar9 = *ppOVar11;\n                if (pOVar9->type_ != 7) {\n                  pOVar9->flags_ = pOVar9->flags_ | uVar8;\n                }\n                pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n                *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n                *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n              }\n              else {\n                Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n              }\n              if (((this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11) && (-1 < (char)os->field_0x92))\n              goto LAB_000ad22a;\n              break;\n            }" if (parenthesized_expression "(((-1 < (char)os->field_0x91) || (os->type_ == 8)) ||\n               ((pOVar9->field_0x19c & 4) != 0))" ( (binary_expression "((-1 < (char)os->field_0x91) || (os->type_ == 8)) ||\n               ((pOVar9->field_0x19c & 4) != 0)" (parenthesized_expression "((-1 < (char)os->field_0x91) || (os->type_ == 8))" ( (binary_expression "(-1 < (char)os->field_0x91) || (os->type_ == 8)" (parenthesized_expression "(-1 < (char)os->field_0x91)" ( (binary_expression "-1 < (char)os->field_0x91" number_literal < (cast_expression "(char)os->field_0x91" ( (type_descriptor "char" primitive_type) ) (field_expression "os->field_0x91" identifier -> field_identifier))) )) || (parenthesized_expression "(os->type_ == 8)" ( (binary_expression "os->type_ == 8" (field_expression "os->type_" identifier -> field_identifier) == number_literal) ))) )) || (parenthesized_expression "((pOVar9->field_0x19c & 4) != 0)" ( (binary_expression "(pOVar9->field_0x19c & 4) != 0" (parenthesized_expression "(pOVar9->field_0x19c & 4)" ( (binary_expression "pOVar9->field_0x19c & 4" (field_expression "pOVar9->field_0x19c" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n              if (bVar7) {\n                if ((pOVar9->field_0x19c & 2) != 0) goto LAB_000ad348;\n                Output_segment::add_initial_output_data(pOVar9,&os->super_Output_data);\n                pOVar9 = *ppOVar11;\n                if (pOVar9->type_ != 7) {\n                  pOVar9->flags_ = pOVar9->flags_ | uVar8;\n                }\n                pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n                *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n                *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n              }\n              else {\n                Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n              }\n              if (((this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11) && (-1 < (char)os->field_0x92))\n              goto LAB_000ad22a;\n              break;\n            }" { (if_statement "if (bVar7) {\n                if ((pOVar9->field_0x19c & 2) != 0) goto LAB_000ad348;\n                Output_segment::add_initial_output_data(pOVar9,&os->super_Output_data);\n                pOVar9 = *ppOVar11;\n                if (pOVar9->type_ != 7) {\n                  pOVar9->flags_ = pOVar9->flags_ | uVar8;\n                }\n                pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n                *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n                *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n              }\n              else {\n                Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n              }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n                if ((pOVar9->field_0x19c & 2) != 0) goto LAB_000ad348;\n                Output_segment::add_initial_output_data(pOVar9,&os->super_Output_data);\n                pOVar9 = *ppOVar11;\n                if (pOVar9->type_ != 7) {\n                  pOVar9->flags_ = pOVar9->flags_ | uVar8;\n                }\n                pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n                *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n                *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n                *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n              }" { (if_statement "if ((pOVar9->field_0x19c & 2) != 0) goto LAB_000ad348;" if (parenthesized_expression "((pOVar9->field_0x19c & 2) != 0)" ( (binary_expression "(pOVar9->field_0x19c & 2) != 0" (parenthesized_expression "(pOVar9->field_0x19c & 2)" ( (binary_expression "pOVar9->field_0x19c & 2" (field_expression "pOVar9->field_0x19c" identifier -> field_identifier) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000ad348;" goto statement_identifier ;)) (labeled_statement "Output_segment::add_initial_output_data(pOVar9,&os->super_Output_data);" statement_identifier : (ERROR ":" :) (expression_statement "add_initial_output_data(pOVar9,&os->super_Output_data);" (call_expression "add_initial_output_data(pOVar9,&os->super_Output_data)" identifier (argument_list "(pOVar9,&os->super_Output_data)" ( identifier , (pointer_expression "&os->super_Output_data" & (field_expression "os->super_Output_data" identifier -> field_identifier)) ))) ;)) (expression_statement "pOVar9 = *ppOVar11;" (assignment_expression "pOVar9 = *ppOVar11" identifier = (pointer_expression "*ppOVar11" * identifier)) ;) (if_statement "if (pOVar9->type_ != 7) {\n                  pOVar9->flags_ = pOVar9->flags_ | uVar8;\n                }" if (parenthesized_expression "(pOVar9->type_ != 7)" ( (binary_expression "pOVar9->type_ != 7" (field_expression "pOVar9->type_" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n                  pOVar9->flags_ = pOVar9->flags_ | uVar8;\n                }" { (expression_statement "pOVar9->flags_ = pOVar9->flags_ | uVar8;" (assignment_expression "pOVar9->flags_ = pOVar9->flags_ | uVar8" (field_expression "pOVar9->flags_" identifier -> field_identifier) = (binary_expression "pOVar9->flags_ | uVar8" (field_expression "pOVar9->flags_" identifier -> field_identifier) | identifier)) ;) })) (expression_statement "pOVar9->field_0x19c = pOVar9->field_0x19c | 2;" (assignment_expression "pOVar9->field_0x19c = pOVar9->field_0x19c | 2" (field_expression "pOVar9->field_0x19c" identifier -> field_identifier) = (binary_expression "pOVar9->field_0x19c | 2" (field_expression "pOVar9->field_0x19c" identifier -> field_identifier) | number_literal)) ;) (expression_statement "*(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;" (assignment_expression "*(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr" (pointer_expression "*(undefined4 *)&pOVar9->vaddr_" * (cast_expression "(undefined4 *)&pOVar9->vaddr_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar9->vaddr_" & (field_expression "pOVar9->vaddr_" identifier -> field_identifier)))) = (cast_expression "(undefined4)addr" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;" (assignment_expression "*(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_" (pointer_expression "*(undefined4 *)((int)&pOVar9->vaddr_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar9->vaddr_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar9->vaddr_ + 4)" ( (binary_expression "(int)&pOVar9->vaddr_ + 4" (cast_expression "(int)&pOVar9->vaddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar9->vaddr_" & (field_expression "pOVar9->vaddr_" identifier -> field_identifier))) + number_literal) )))) = (field_expression "addr._4_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;" (assignment_expression "*(undefined4 *)&pOVar9->paddr_ = (undefined4)addr" (pointer_expression "*(undefined4 *)&pOVar9->paddr_" * (cast_expression "(undefined4 *)&pOVar9->paddr_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar9->paddr_" & (field_expression "pOVar9->paddr_" identifier -> field_identifier)))) = (cast_expression "(undefined4)addr" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;" (assignment_expression "*(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_" (pointer_expression "*(undefined4 *)((int)&pOVar9->paddr_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar9->paddr_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar9->paddr_ + 4)" ( (binary_expression "(int)&pOVar9->paddr_ + 4" (cast_expression "(int)&pOVar9->paddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar9->paddr_" & (field_expression "pOVar9->paddr_" identifier -> field_identifier))) + number_literal) )))) = (field_expression "addr._4_4_" identifier . field_identifier)) ;) }) (else_clause "else {\n                Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n              }" else (compound_statement "{\n                Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);\n              }" { (labeled_statement "Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_to_load(pOVar9,this,os,uVar8);" (call_expression "add_output_section_to_load(pOVar9,this,os,uVar8)" identifier (argument_list "(pOVar9,this,os,uVar8)" ( identifier , identifier , identifier , identifier ))) ;)) }))) (if_statement "if (((this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11) && (-1 < (char)os->field_0x92))\n              goto LAB_000ad22a;" if (parenthesized_expression "(((this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11) && (-1 < (char)os->field_0x92))" ( (binary_expression "((this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11) && (-1 < (char)os->field_0x92)" (parenthesized_expression "((this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11)" ( (binary_expression "(this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish != ppOVar11" (field_expression "(this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl._M_finish" (field_expression "(this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                   ._M_impl" (binary_expression "(this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "(this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "(this->segment_list_).\n                   super__Vector_base<gold::Output_segment*,_std" (binary_expression "(this->segment_list_).\n                   super__Vector_base<gold" (field_expression "(this->segment_list_).\n                   super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) && (parenthesized_expression "(-1 < (char)os->field_0x92)" ( (binary_expression "-1 < (char)os->field_0x92" number_literal < (cast_expression "(char)os->field_0x92" ( (type_descriptor "char" primitive_type) ) (field_expression "os->field_0x92" identifier -> field_identifier))) ))) )) (goto_statement "goto LAB_000ad22a;" goto statement_identifier ;)) (break_statement "break;" break ;) })) })) })) (labeled_statement "LAB_000ad348:\n        ppOVar11 = ppOVar11 + 1;" statement_identifier : (expression_statement "ppOVar11 = ppOVar11 + 1;" (assignment_expression "ppOVar11 = ppOVar11 + 1" identifier = (binary_expression "ppOVar11 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "((this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl._M_finish != ppOVar11)" ( (binary_expression "(this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl._M_finish != ppOVar11" (field_expression "(this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl._M_finish" (field_expression "(this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n               _M_impl" (binary_expression "(this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "(this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "(this->segment_list_).\n               super__Vector_base<gold::Output_segment*,_std" (binary_expression "(this->segment_list_).\n               super__Vector_base<gold" (field_expression "(this->segment_list_).\n               super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) ;) })) (expression_statement "pOVar9 = make_output_segment(this,1,uVar8);" (assignment_expression "pOVar9 = make_output_segment(this,1,uVar8)" identifier = (call_expression "make_output_segment(this,1,uVar8)" identifier (argument_list "(this,1,uVar8)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (((char)os->field_0x91 < '\0') && (os->type_ != 8)) {\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 4;\n    }" if (parenthesized_expression "(((char)os->field_0x91 < '\0') && (os->type_ != 8))" ( (binary_expression "((char)os->field_0x91 < '\0') && (os->type_ != 8)" (parenthesized_expression "((char)os->field_0x91 < '\0')" ( (binary_expression "(char)os->field_0x91 < '\0'" (cast_expression "(char)os->field_0x91" ( (type_descriptor "char" primitive_type) ) (field_expression "os->field_0x91" identifier -> field_identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(os->type_ != 8)" ( (binary_expression "os->type_ != 8" (field_expression "os->type_" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 4;\n    }" { (expression_statement "pOVar9->field_0x19c = pOVar9->field_0x19c | 4;" (assignment_expression "pOVar9->field_0x19c = pOVar9->field_0x19c | 4" (field_expression "pOVar9->field_0x19c" identifier -> field_identifier) = (binary_expression "pOVar9->field_0x19c | 4" (field_expression "pOVar9->field_0x19c" identifier -> field_identifier) | number_literal)) ;) })) (labeled_statement "Output_segment::add_output_section_to_load(pOVar9,this,os,uVar8);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_to_load(pOVar9,this,os,uVar8);" (call_expression "add_output_section_to_load(pOVar9,this,os,uVar8)" identifier (argument_list "(pOVar9,this,os,uVar8)" ( identifier , identifier , identifier , identifier ))) ;)) (if_statement "if (bVar7) {\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n      *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n      *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n      *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n      *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n    }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 2;\n      *(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;\n      *(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;\n      *(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;\n      *(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;\n    }" { (expression_statement "pOVar9->field_0x19c = pOVar9->field_0x19c | 2;" (assignment_expression "pOVar9->field_0x19c = pOVar9->field_0x19c | 2" (field_expression "pOVar9->field_0x19c" identifier -> field_identifier) = (binary_expression "pOVar9->field_0x19c | 2" (field_expression "pOVar9->field_0x19c" identifier -> field_identifier) | number_literal)) ;) (expression_statement "*(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr;" (assignment_expression "*(undefined4 *)&pOVar9->vaddr_ = (undefined4)addr" (pointer_expression "*(undefined4 *)&pOVar9->vaddr_" * (cast_expression "(undefined4 *)&pOVar9->vaddr_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar9->vaddr_" & (field_expression "pOVar9->vaddr_" identifier -> field_identifier)))) = (cast_expression "(undefined4)addr" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_;" (assignment_expression "*(undefined4 *)((int)&pOVar9->vaddr_ + 4) = addr._4_4_" (pointer_expression "*(undefined4 *)((int)&pOVar9->vaddr_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar9->vaddr_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar9->vaddr_ + 4)" ( (binary_expression "(int)&pOVar9->vaddr_ + 4" (cast_expression "(int)&pOVar9->vaddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar9->vaddr_" & (field_expression "pOVar9->vaddr_" identifier -> field_identifier))) + number_literal) )))) = (field_expression "addr._4_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)&pOVar9->paddr_ = (undefined4)addr;" (assignment_expression "*(undefined4 *)&pOVar9->paddr_ = (undefined4)addr" (pointer_expression "*(undefined4 *)&pOVar9->paddr_" * (cast_expression "(undefined4 *)&pOVar9->paddr_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar9->paddr_" & (field_expression "pOVar9->paddr_" identifier -> field_identifier)))) = (cast_expression "(undefined4)addr" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (expression_statement "*(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_;" (assignment_expression "*(undefined4 *)((int)&pOVar9->paddr_ + 4) = addr._4_4_" (pointer_expression "*(undefined4 *)((int)&pOVar9->paddr_ + 4)" * (cast_expression "(undefined4 *)((int)&pOVar9->paddr_ + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar9->paddr_ + 4)" ( (binary_expression "(int)&pOVar9->paddr_ + 4" (cast_expression "(int)&pOVar9->paddr_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar9->paddr_" & (field_expression "pOVar9->paddr_" identifier -> field_identifier))) + number_literal) )))) = (field_expression "addr._4_4_" identifier . field_identifier)) ;) })) (if_statement "if ((char)os->field_0x92 < '\0') {\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 8;\n      uVar2 = *(uint *)((int)&os->segment_alignment_ + 4);\n      uVar3 = (uint)os->segment_alignment_;\n      if ((uVar2 != 0 || uVar3 != 0) &&\n         (uVar4 = *(uint *)((int)&pOVar9->min_p_align_ + 4),\n         uVar4 < uVar2 || uVar4 - uVar2 < (uint)((uint)pOVar9->min_p_align_ < uVar3))) {\n        *(uint *)&pOVar9->min_p_align_ = uVar3;\n        *(uint *)((int)&pOVar9->min_p_align_ + 4) = uVar2;\n      }\n    }" if (parenthesized_expression "((char)os->field_0x92 < '\0')" ( (binary_expression "(char)os->field_0x92 < '\0'" (cast_expression "(char)os->field_0x92" ( (type_descriptor "char" primitive_type) ) (field_expression "os->field_0x92" identifier -> field_identifier)) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pOVar9->field_0x19c = pOVar9->field_0x19c | 8;\n      uVar2 = *(uint *)((int)&os->segment_alignment_ + 4);\n      uVar3 = (uint)os->segment_alignment_;\n      if ((uVar2 != 0 || uVar3 != 0) &&\n         (uVar4 = *(uint *)((int)&pOVar9->min_p_align_ + 4),\n         uVar4 < uVar2 || uVar4 - uVar2 < (uint)((uint)pOVar9->min_p_align_ < uVar3))) {\n        *(uint *)&pOVar9->min_p_align_ = uVar3;\n        *(uint *)((int)&pOVar9->min_p_align_ + 4) = uVar2;\n      }\n    }" { (expression_statement "pOVar9->field_0x19c = pOVar9->field_0x19c | 8;" (assignment_expression "pOVar9->field_0x19c = pOVar9->field_0x19c | 8" (field_expression "pOVar9->field_0x19c" identifier -> field_identifier) = (binary_expression "pOVar9->field_0x19c | 8" (field_expression "pOVar9->field_0x19c" identifier -> field_identifier) | number_literal)) ;) (expression_statement "uVar2 = *(uint *)((int)&os->segment_alignment_ + 4);" (assignment_expression "uVar2 = *(uint *)((int)&os->segment_alignment_ + 4)" identifier = (pointer_expression "*(uint *)((int)&os->segment_alignment_ + 4)" * (cast_expression "(uint *)((int)&os->segment_alignment_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&os->segment_alignment_ + 4)" ( (binary_expression "(int)&os->segment_alignment_ + 4" (cast_expression "(int)&os->segment_alignment_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&os->segment_alignment_" & (field_expression "os->segment_alignment_" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar3 = (uint)os->segment_alignment_;" (assignment_expression "uVar3 = (uint)os->segment_alignment_" identifier = (cast_expression "(uint)os->segment_alignment_" ( (type_descriptor "uint" type_identifier) ) (field_expression "os->segment_alignment_" identifier -> field_identifier))) ;) (if_statement "if ((uVar2 != 0 || uVar3 != 0) &&\n         (uVar4 = *(uint *)((int)&pOVar9->min_p_align_ + 4),\n         uVar4 < uVar2 || uVar4 - uVar2 < (uint)((uint)pOVar9->min_p_align_ < uVar3))) {\n        *(uint *)&pOVar9->min_p_align_ = uVar3;\n        *(uint *)((int)&pOVar9->min_p_align_ + 4) = uVar2;\n      }" if (parenthesized_expression "((uVar2 != 0 || uVar3 != 0) &&\n         (uVar4 = *(uint *)((int)&pOVar9->min_p_align_ + 4),\n         uVar4 < uVar2 || uVar4 - uVar2 < (uint)((uint)pOVar9->min_p_align_ < uVar3)))" ( (binary_expression "(uVar2 != 0 || uVar3 != 0) &&\n         (uVar4 = *(uint *)((int)&pOVar9->min_p_align_ + 4),\n         uVar4 < uVar2 || uVar4 - uVar2 < (uint)((uint)pOVar9->min_p_align_ < uVar3))" (parenthesized_expression "(uVar2 != 0 || uVar3 != 0)" ( (binary_expression "uVar2 != 0 || uVar3 != 0" (binary_expression "uVar2 != 0" identifier != number_literal) || (binary_expression "uVar3 != 0" identifier != number_literal)) )) && (parenthesized_expression "(uVar4 = *(uint *)((int)&pOVar9->min_p_align_ + 4),\n         uVar4 < uVar2 || uVar4 - uVar2 < (uint)((uint)pOVar9->min_p_align_ < uVar3))" ( (comma_expression "uVar4 = *(uint *)((int)&pOVar9->min_p_align_ + 4),\n         uVar4 < uVar2 || uVar4 - uVar2 < (uint)((uint)pOVar9->min_p_align_ < uVar3)" (assignment_expression "uVar4 = *(uint *)((int)&pOVar9->min_p_align_ + 4)" identifier = (pointer_expression "*(uint *)((int)&pOVar9->min_p_align_ + 4)" * (cast_expression "(uint *)((int)&pOVar9->min_p_align_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar9->min_p_align_ + 4)" ( (binary_expression "(int)&pOVar9->min_p_align_ + 4" (cast_expression "(int)&pOVar9->min_p_align_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar9->min_p_align_" & (field_expression "pOVar9->min_p_align_" identifier -> field_identifier))) + number_literal) ))))) , (binary_expression "uVar4 < uVar2 || uVar4 - uVar2 < (uint)((uint)pOVar9->min_p_align_ < uVar3)" (binary_expression "uVar4 < uVar2" identifier < identifier) || (binary_expression "uVar4 - uVar2 < (uint)((uint)pOVar9->min_p_align_ < uVar3)" (binary_expression "uVar4 - uVar2" identifier - identifier) < (call_expression "(uint)((uint)pOVar9->min_p_align_ < uVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)pOVar9->min_p_align_ < uVar3)" ( (binary_expression "(uint)pOVar9->min_p_align_ < uVar3" (cast_expression "(uint)pOVar9->min_p_align_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pOVar9->min_p_align_" identifier -> field_identifier)) < identifier) )))))) ))) )) (compound_statement "{\n        *(uint *)&pOVar9->min_p_align_ = uVar3;\n        *(uint *)((int)&pOVar9->min_p_align_ + 4) = uVar2;\n      }" { (expression_statement "*(uint *)&pOVar9->min_p_align_ = uVar3;" (assignment_expression "*(uint *)&pOVar9->min_p_align_ = uVar3" (pointer_expression "*(uint *)&pOVar9->min_p_align_" * (cast_expression "(uint *)&pOVar9->min_p_align_" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pOVar9->min_p_align_" & (field_expression "pOVar9->min_p_align_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(uint *)((int)&pOVar9->min_p_align_ + 4) = uVar2;" (assignment_expression "*(uint *)((int)&pOVar9->min_p_align_ + 4) = uVar2" (pointer_expression "*(uint *)((int)&pOVar9->min_p_align_ + 4)" * (cast_expression "(uint *)((int)&pOVar9->min_p_align_ + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pOVar9->min_p_align_ + 4)" ( (binary_expression "(int)&pOVar9->min_p_align_ + 4" (cast_expression "(int)&pOVar9->min_p_align_" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pOVar9->min_p_align_" & (field_expression "pOVar9->min_p_align_" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) })) })) (labeled_statement "LAB_000ad22a:\n    if (os->type_ == 7) {\n      for (ppOVar11 = (this->segment_list_).\n                      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                      ._M_impl._M_start;\n          ppOVar11 !=\n          (this->segment_list_).\n          super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n          _M_finish; ppOVar11 = ppOVar11 + 1) {\n        pOVar9 = *ppOVar11;\n        if ((pOVar9->type_ == 4) && (((pOVar9->flags_ ^ uVar8) & 2) == 0)) {\n          Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n          if ((this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n              _M_impl._M_finish != ppOVar11) goto LAB_000ad234;\n          break;\n        }\n      }\n      pOVar9 = make_output_segment(this,4,uVar8);\n      Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n    }" statement_identifier : (if_statement "if (os->type_ == 7) {\n      for (ppOVar11 = (this->segment_list_).\n                      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                      ._M_impl._M_start;\n          ppOVar11 !=\n          (this->segment_list_).\n          super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n          _M_finish; ppOVar11 = ppOVar11 + 1) {\n        pOVar9 = *ppOVar11;\n        if ((pOVar9->type_ == 4) && (((pOVar9->flags_ ^ uVar8) & 2) == 0)) {\n          Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n          if ((this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n              _M_impl._M_finish != ppOVar11) goto LAB_000ad234;\n          break;\n        }\n      }\n      pOVar9 = make_output_segment(this,4,uVar8);\n      Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n    }" if (parenthesized_expression "(os->type_ == 7)" ( (binary_expression "os->type_ == 7" (field_expression "os->type_" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      for (ppOVar11 = (this->segment_list_).\n                      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                      ._M_impl._M_start;\n          ppOVar11 !=\n          (this->segment_list_).\n          super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n          _M_finish; ppOVar11 = ppOVar11 + 1) {\n        pOVar9 = *ppOVar11;\n        if ((pOVar9->type_ == 4) && (((pOVar9->flags_ ^ uVar8) & 2) == 0)) {\n          Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n          if ((this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n              _M_impl._M_finish != ppOVar11) goto LAB_000ad234;\n          break;\n        }\n      }\n      pOVar9 = make_output_segment(this,4,uVar8);\n      Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n    }" { (for_statement "for (ppOVar11 = (this->segment_list_).\n                      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                      ._M_impl._M_start;\n          ppOVar11 !=\n          (this->segment_list_).\n          super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n          _M_finish; ppOVar11 = ppOVar11 + 1) {\n        pOVar9 = *ppOVar11;\n        if ((pOVar9->type_ == 4) && (((pOVar9->flags_ ^ uVar8) & 2) == 0)) {\n          Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n          if ((this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n              _M_impl._M_finish != ppOVar11) goto LAB_000ad234;\n          break;\n        }\n      }" for ( (field_expression "ppOVar11 = (this->segment_list_).\n                      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                      ._M_impl._M_start" (field_expression "ppOVar11 = (this->segment_list_).\n                      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>\n                      ._M_impl" (binary_expression "ppOVar11 = (this->segment_list_).\n                      super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "ppOVar11 = (this->segment_list_).\n                      super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "ppOVar11 = (this->segment_list_).\n                      super__Vector_base<gold::Output_segment*,_std" (assignment_expression "ppOVar11 = (this->segment_list_).\n                      super__Vector_base<gold" identifier = (binary_expression "(this->segment_list_).\n                      super__Vector_base<gold" (field_expression "(this->segment_list_).\n                      super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ; (field_expression "ppOVar11 !=\n          (this->segment_list_).\n          super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl.\n          _M_finish" (field_expression "ppOVar11 !=\n          (this->segment_list_).\n          super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>._M_impl" (binary_expression "ppOVar11 !=\n          (this->segment_list_).\n          super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "ppOVar11 !=\n          (this->segment_list_).\n          super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "ppOVar11 !=\n          (this->segment_list_).\n          super__Vector_base<gold::Output_segment*,_std" (binary_expression "ppOVar11 !=\n          (this->segment_list_).\n          super__Vector_base<gold" identifier != (binary_expression "(this->segment_list_).\n          super__Vector_base<gold" (field_expression "(this->segment_list_).\n          super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ; (assignment_expression "ppOVar11 = ppOVar11 + 1" identifier = (binary_expression "ppOVar11 + 1" identifier + number_literal)) ) (compound_statement "{\n        pOVar9 = *ppOVar11;\n        if ((pOVar9->type_ == 4) && (((pOVar9->flags_ ^ uVar8) & 2) == 0)) {\n          Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n          if ((this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n              _M_impl._M_finish != ppOVar11) goto LAB_000ad234;\n          break;\n        }\n      }" { (expression_statement "pOVar9 = *ppOVar11;" (assignment_expression "pOVar9 = *ppOVar11" identifier = (pointer_expression "*ppOVar11" * identifier)) ;) (if_statement "if ((pOVar9->type_ == 4) && (((pOVar9->flags_ ^ uVar8) & 2) == 0)) {\n          Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n          if ((this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n              _M_impl._M_finish != ppOVar11) goto LAB_000ad234;\n          break;\n        }" if (parenthesized_expression "((pOVar9->type_ == 4) && (((pOVar9->flags_ ^ uVar8) & 2) == 0))" ( (binary_expression "(pOVar9->type_ == 4) && (((pOVar9->flags_ ^ uVar8) & 2) == 0)" (parenthesized_expression "(pOVar9->type_ == 4)" ( (binary_expression "pOVar9->type_ == 4" (field_expression "pOVar9->type_" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "(((pOVar9->flags_ ^ uVar8) & 2) == 0)" ( (binary_expression "((pOVar9->flags_ ^ uVar8) & 2) == 0" (parenthesized_expression "((pOVar9->flags_ ^ uVar8) & 2)" ( (binary_expression "(pOVar9->flags_ ^ uVar8) & 2" (parenthesized_expression "(pOVar9->flags_ ^ uVar8)" ( (binary_expression "pOVar9->flags_ ^ uVar8" (field_expression "pOVar9->flags_" identifier -> field_identifier) ^ identifier) )) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n          if ((this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n              _M_impl._M_finish != ppOVar11) goto LAB_000ad234;\n          break;\n        }" { (labeled_statement "Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_to_nonload(pOVar9,os,uVar8);" (call_expression "add_output_section_to_nonload(pOVar9,os,uVar8)" identifier (argument_list "(pOVar9,os,uVar8)" ( identifier , identifier , identifier ))) ;)) (if_statement "if ((this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n              _M_impl._M_finish != ppOVar11) goto LAB_000ad234;" if (parenthesized_expression "((this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n              _M_impl._M_finish != ppOVar11)" ( (binary_expression "(this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n              _M_impl._M_finish != ppOVar11" (field_expression "(this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n              _M_impl._M_finish" (field_expression "(this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_>.\n              _M_impl" (binary_expression "(this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std::allocator<gold::Output_segment*>_" (binary_expression "(this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std::allocator<gold" (binary_expression "(this->segment_list_).\n              super__Vector_base<gold::Output_segment*,_std" (binary_expression "(this->segment_list_).\n              super__Vector_base<gold" (field_expression "(this->segment_list_).\n              super__Vector_base" (parenthesized_expression "(this->segment_list_)" ( (field_expression "this->segment_list_" identifier -> field_identifier) )) . field_identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_segment" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) (goto_statement "goto LAB_000ad234;" goto statement_identifier ;)) (break_statement "break;" break ;) })) })) (expression_statement "pOVar9 = make_output_segment(this,4,uVar8);" (assignment_expression "pOVar9 = make_output_segment(this,4,uVar8)" identifier = (call_expression "make_output_segment(this,4,uVar8)" identifier (argument_list "(this,4,uVar8)" ( identifier , number_literal , identifier )))) ;) (labeled_statement "Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_to_nonload(pOVar9,os,uVar8);" (call_expression "add_output_section_to_nonload(pOVar9,os,uVar8)" identifier (argument_list "(pOVar9,os,uVar8)" ( identifier , identifier , identifier ))) ;)) }))) (labeled_statement "LAB_000ad234:\n    if ((EVar6 & 0x400) != 0) {\n      pOVar9 = this->tls_segment_;\n      if (pOVar9 == (Output_segment *)0x0) {\n        make_output_segment(this,7,uVar8);\n        pOVar9 = this->tls_segment_;\n      }\n      Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n    }" statement_identifier : (if_statement "if ((EVar6 & 0x400) != 0) {\n      pOVar9 = this->tls_segment_;\n      if (pOVar9 == (Output_segment *)0x0) {\n        make_output_segment(this,7,uVar8);\n        pOVar9 = this->tls_segment_;\n      }\n      Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n    }" if (parenthesized_expression "((EVar6 & 0x400) != 0)" ( (binary_expression "(EVar6 & 0x400) != 0" (parenthesized_expression "(EVar6 & 0x400)" ( (binary_expression "EVar6 & 0x400" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      pOVar9 = this->tls_segment_;\n      if (pOVar9 == (Output_segment *)0x0) {\n        make_output_segment(this,7,uVar8);\n        pOVar9 = this->tls_segment_;\n      }\n      Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);\n    }" { (expression_statement "pOVar9 = this->tls_segment_;" (assignment_expression "pOVar9 = this->tls_segment_" identifier = (field_expression "this->tls_segment_" identifier -> field_identifier)) ;) (if_statement "if (pOVar9 == (Output_segment *)0x0) {\n        make_output_segment(this,7,uVar8);\n        pOVar9 = this->tls_segment_;\n      }" if (parenthesized_expression "(pOVar9 == (Output_segment *)0x0)" ( (binary_expression "pOVar9 == (Output_segment *)0x0" identifier == (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        make_output_segment(this,7,uVar8);\n        pOVar9 = this->tls_segment_;\n      }" { (expression_statement "make_output_segment(this,7,uVar8);" (call_expression "make_output_segment(this,7,uVar8)" identifier (argument_list "(this,7,uVar8)" ( identifier , number_literal , identifier ))) ;) (expression_statement "pOVar9 = this->tls_segment_;" (assignment_expression "pOVar9 = this->tls_segment_" identifier = (field_expression "this->tls_segment_" identifier -> field_identifier)) ;) })) (labeled_statement "Output_segment::add_output_section_to_nonload(pOVar9,os,uVar8);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_to_nonload(pOVar9,os,uVar8);" (call_expression "add_output_section_to_nonload(pOVar9,os,uVar8)" identifier (argument_list "(pOVar9,os,uVar8)" ( identifier , identifier , identifier ))) ;)) }))) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (expression_statement "bVar14 = (os->field_0x91 & 0x20) == 0;" (assignment_expression "bVar14 = (os->field_0x91 & 0x20) == 0" identifier = (binary_expression "(os->field_0x91 & 0x20) == 0" (parenthesized_expression "(os->field_0x91 & 0x20)" ( (binary_expression "os->field_0x91 & 0x20" (field_expression "os->field_0x91" identifier -> field_identifier) & number_literal) )) == number_literal)) ;) (if_statement "if (!bVar14) {\n      if (parameters->options_ == (General_options *)0x0) goto LAB_000ad5a2;\n      bVar7 = false;\n      bVar14 = (parameters->options_->relro_).value == false;\n      if (!bVar14) {\n        if (uVar8 != 6) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/layout.cc",0x835,"attach_allocated_section_to_segment");\n        }\n        pOVar9 = this->relro_segment_;\n        if (pOVar9 == (Output_segment *)0x0) {\n          make_output_segment(this,0x6474e552,6);\n          pOVar9 = this->relro_segment_;\n        }\n        Output_segment::add_output_section_to_nonload(pOVar9,os,6);\n        bVar7 = (undefined1 *)0xffffffef < &stack0xffffffb4;\n        bVar14 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }" if (parenthesized_expression "(!bVar14)" ( (unary_expression "!bVar14" ! identifier) )) (compound_statement "{\n      if (parameters->options_ == (General_options *)0x0) goto LAB_000ad5a2;\n      bVar7 = false;\n      bVar14 = (parameters->options_->relro_).value == false;\n      if (!bVar14) {\n        if (uVar8 != 6) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/layout.cc",0x835,"attach_allocated_section_to_segment");\n        }\n        pOVar9 = this->relro_segment_;\n        if (pOVar9 == (Output_segment *)0x0) {\n          make_output_segment(this,0x6474e552,6);\n          pOVar9 = this->relro_segment_;\n        }\n        Output_segment::add_output_section_to_nonload(pOVar9,os,6);\n        bVar7 = (undefined1 *)0xffffffef < &stack0xffffffb4;\n        bVar14 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }" { (if_statement "if (parameters->options_ == (General_options *)0x0) goto LAB_000ad5a2;" if (parenthesized_expression "(parameters->options_ == (General_options *)0x0)" ( (binary_expression "parameters->options_ == (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000ad5a2;" goto statement_identifier ;)) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (expression_statement "bVar14 = (parameters->options_->relro_).value == false;" (assignment_expression "bVar14 = (parameters->options_->relro_).value == false" identifier = (binary_expression "(parameters->options_->relro_).value == false" (field_expression "(parameters->options_->relro_).value" (parenthesized_expression "(parameters->options_->relro_)" ( (field_expression "parameters->options_->relro_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == false)) ;) (if_statement "if (!bVar14) {\n        if (uVar8 != 6) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/layout.cc",0x835,"attach_allocated_section_to_segment");\n        }\n        pOVar9 = this->relro_segment_;\n        if (pOVar9 == (Output_segment *)0x0) {\n          make_output_segment(this,0x6474e552,6);\n          pOVar9 = this->relro_segment_;\n        }\n        Output_segment::add_output_section_to_nonload(pOVar9,os,6);\n        bVar7 = (undefined1 *)0xffffffef < &stack0xffffffb4;\n        bVar14 = &stack0x00000000 == (undefined1 *)0x3c;\n      }" if (parenthesized_expression "(!bVar14)" ( (unary_expression "!bVar14" ! identifier) )) (compound_statement "{\n        if (uVar8 != 6) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/layout.cc",0x835,"attach_allocated_section_to_segment");\n        }\n        pOVar9 = this->relro_segment_;\n        if (pOVar9 == (Output_segment *)0x0) {\n          make_output_segment(this,0x6474e552,6);\n          pOVar9 = this->relro_segment_;\n        }\n        Output_segment::add_output_section_to_nonload(pOVar9,os,6);\n        bVar7 = (undefined1 *)0xffffffef < &stack0xffffffb4;\n        bVar14 = &stack0x00000000 == (undefined1 *)0x3c;\n      }" { (if_statement "if (uVar8 != 6) {\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/layout.cc",0x835,"attach_allocated_section_to_segment");\n        }" if (parenthesized_expression "(uVar8 != 6)" ( (binary_expression "uVar8 != 6" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          do_gold_unreachable("../../gold/layout.cc",0x835,"attach_allocated_section_to_segment");\n        }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0x835,"attach_allocated_section_to_segment");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0x835,"attach_allocated_section_to_segment")" identifier (argument_list "("../../gold/layout.cc",0x835,"attach_allocated_section_to_segment")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""attach_allocated_section_to_segment"" " string_content ") ))) ;) })) (expression_statement "pOVar9 = this->relro_segment_;" (assignment_expression "pOVar9 = this->relro_segment_" identifier = (field_expression "this->relro_segment_" identifier -> field_identifier)) ;) (if_statement "if (pOVar9 == (Output_segment *)0x0) {\n          make_output_segment(this,0x6474e552,6);\n          pOVar9 = this->relro_segment_;\n        }" if (parenthesized_expression "(pOVar9 == (Output_segment *)0x0)" ( (binary_expression "pOVar9 == (Output_segment *)0x0" identifier == (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          make_output_segment(this,0x6474e552,6);\n          pOVar9 = this->relro_segment_;\n        }" { (expression_statement "make_output_segment(this,0x6474e552,6);" (call_expression "make_output_segment(this,0x6474e552,6)" identifier (argument_list "(this,0x6474e552,6)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "pOVar9 = this->relro_segment_;" (assignment_expression "pOVar9 = this->relro_segment_" identifier = (field_expression "this->relro_segment_" identifier -> field_identifier)) ;) })) (labeled_statement "Output_segment::add_output_section_to_nonload(pOVar9,os,6);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_to_nonload(pOVar9,os,6);" (call_expression "add_output_section_to_nonload(pOVar9,os,6)" identifier (argument_list "(pOVar9,os,6)" ( identifier , identifier , number_literal ))) ;)) (expression_statement "bVar7 = (undefined1 *)0xffffffef < &stack0xffffffb4;" (assignment_expression "bVar7 = (undefined1 *)0xffffffef < &stack0xffffffb4" identifier = (binary_expression "(undefined1 *)0xffffffef < &stack0xffffffb4" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&stack0xffffffb4" & identifier))) ;) (expression_statement "bVar14 = &stack0x00000000 == (undefined1 *)0x3c;" (assignment_expression "bVar14 = &stack0x00000000 == (undefined1 *)0x3c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x3c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x3c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) })) })) (expression_statement "iVar10 = 8;" (assignment_expression "iVar10 = 8" identifier = number_literal) ;) (expression_statement "pbVar12 = (byte *)os->name_;" (assignment_expression "pbVar12 = (byte *)os->name_" identifier = (cast_expression "(byte *)os->name_" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "os->name_" identifier -> field_identifier))) ;) (expression_statement "pbVar13 = (byte *)".interp";" (assignment_expression "pbVar13 = (byte *)".interp"" identifier = (cast_expression "(byte *)".interp"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".interp"" " string_content "))) ;) (do_statement "do {\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar7 = *pbVar12 < *pbVar13;\n      bVar14 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar15 * -2 + 1;\n    } while (bVar14);" do (compound_statement "{\n      if (iVar10 == 0) break;\n      iVar10 = iVar10 + -1;\n      bVar7 = *pbVar12 < *pbVar13;\n      bVar14 = *pbVar12 == *pbVar13;\n      pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;\n      pbVar13 = pbVar13 + (uint)bVar15 * -2 + 1;\n    }" { (if_statement "if (iVar10 == 0) break;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) (expression_statement "bVar7 = *pbVar12 < *pbVar13;" (assignment_expression "bVar7 = *pbVar12 < *pbVar13" identifier = (binary_expression "*pbVar12 < *pbVar13" (pointer_expression "*pbVar12" * identifier) < (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "bVar14 = *pbVar12 == *pbVar13;" (assignment_expression "bVar14 = *pbVar12 == *pbVar13" identifier = (binary_expression "*pbVar12 == *pbVar13" (pointer_expression "*pbVar12" * identifier) == (pointer_expression "*pbVar13" * identifier))) ;) (expression_statement "pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar12 = pbVar12 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar12 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar12 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar13 = pbVar13 + (uint)bVar15 * -2 + 1;" (assignment_expression "pbVar13 = pbVar13 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "pbVar13 + (uint)bVar15 * -2 + 1" (binary_expression "pbVar13 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar14)" ( identifier )) ;) (if_statement "if (((!bVar7 && !bVar14) == bVar7) &&\n       (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n        ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)))) {\n      if (this->interp_segment_ == (Output_segment *)0x0) {\n        make_output_segment(this,3,uVar8);\n      }\n      else {\n        format = (char *)gettext();\n        gold_warning(format);\n      }\n      Output_segment::add_output_section_to_nonload(this->interp_segment_,os,uVar8);\n    }" if (parenthesized_expression "(((!bVar7 && !bVar14) == bVar7) &&\n       (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n        ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))))" ( (binary_expression "((!bVar7 && !bVar14) == bVar7) &&\n       (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n        ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)))" (parenthesized_expression "((!bVar7 && !bVar14) == bVar7)" ( (binary_expression "(!bVar7 && !bVar14) == bVar7" (parenthesized_expression "(!bVar7 && !bVar14)" ( (binary_expression "!bVar7 && !bVar14" (unary_expression "!bVar7" ! identifier) && (unary_expression "!bVar14" ! identifier)) )) == identifier) )) && (parenthesized_expression "(((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n        ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)))" ( (parenthesized_expression "((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n        ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))" ( (binary_expression "(this->script_options_->script_sections_).saw_sections_clause_ == false ||\n        ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)" (binary_expression "(this->script_options_->script_sections_).saw_sections_clause_ == false" (field_expression "(this->script_options_->script_sections_).saw_sections_clause_" (parenthesized_expression "(this->script_options_->script_sections_)" ( (field_expression "this->script_options_->script_sections_" (field_expression "this->script_options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == false) || (parenthesized_expression "((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)" ( (binary_expression "(this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0" (field_expression "(this->script_options_->script_sections_).phdrs_elements_" (parenthesized_expression "(this->script_options_->script_sections_)" ( (field_expression "this->script_options_->script_sections_" (field_expression "this->script_options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == (cast_expression "(Phdrs_elements *)0x0" ( (type_descriptor "Phdrs_elements *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) (compound_statement "{\n      if (this->interp_segment_ == (Output_segment *)0x0) {\n        make_output_segment(this,3,uVar8);\n      }\n      else {\n        format = (char *)gettext();\n        gold_warning(format);\n      }\n      Output_segment::add_output_section_to_nonload(this->interp_segment_,os,uVar8);\n    }" { (if_statement "if (this->interp_segment_ == (Output_segment *)0x0) {\n        make_output_segment(this,3,uVar8);\n      }\n      else {\n        format = (char *)gettext();\n        gold_warning(format);\n      }" if (parenthesized_expression "(this->interp_segment_ == (Output_segment *)0x0)" ( (binary_expression "this->interp_segment_ == (Output_segment *)0x0" (field_expression "this->interp_segment_" identifier -> field_identifier) == (cast_expression "(Output_segment *)0x0" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        make_output_segment(this,3,uVar8);\n      }" { (expression_statement "make_output_segment(this,3,uVar8);" (call_expression "make_output_segment(this,3,uVar8)" identifier (argument_list "(this,3,uVar8)" ( identifier , number_literal , identifier ))) ;) }) (else_clause "else {\n        format = (char *)gettext();\n        gold_warning(format);\n      }" else (compound_statement "{\n        format = (char *)gettext();\n        gold_warning(format);\n      }" { (expression_statement "format = (char *)gettext();" (assignment_expression "format = (char *)gettext()" identifier = (cast_expression "(char *)gettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "gold_warning(format);" (call_expression "gold_warning(format)" identifier (argument_list "(format)" ( identifier ))) ;) }))) (labeled_statement "Output_segment::add_output_section_to_nonload(this->interp_segment_,os,uVar8);" statement_identifier : (ERROR ":" :) (expression_statement "add_output_section_to_nonload(this->interp_segment_,os,uVar8);" (call_expression "add_output_section_to_nonload(this->interp_segment_,os,uVar8)" identifier (argument_list "(this->interp_segment_,os,uVar8)" ( (field_expression "this->interp_segment_" identifier -> field_identifier) , identifier , identifier ))) ;)) })) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000ad050(char *param_1,int param_2,char *param_3)\n\n{\n  uint uVar1;\n  uint uVar2;\n  char cVar3;\n  char cVar4;\n  uint uVar5;\n  char *pcVar6;\n  char *pcVar7;\n  int iVar8;\n  int *piVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  char *local_4c;\n  char *pcStack_48;\n  char *pcStack_44;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0xad059;\n  uVar1 = *(uint *)(param_3 + 0x54);\n  if ((uVar1 & 2) == 0) {\n    pcStack_44 = "attach_allocated_section_to_segment";\n    local_4c = "../../gold/layout.cc";\n    pcStack_48 = (char *)0x7af;\n                    \n    FUN_0008b620();\n  }\n  local_4c = *(char **)(DAT_0033f2f0 + 8);\n  if (local_4c == (char *)0x0) {\nLAB_000ad5a2:\n    pcStack_44 = "options";\n    local_4c = "../../gold/parameters.h";\n    pcStack_48 = (char *)0x5c;\n                    \n    FUN_0008b620();\n  }\n  if ((local_4c[0x318d] == '\0') && (*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')) {\n    uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6;\n    if ((uVar1 & 4) != 0) {\n      uVar5 = uVar5 | 1;\n    }\n    pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c));\n    pcStack_44 = (char *)&local_24;\n    pcStack_48 = *(char **)(param_3 + 0x20);\n    cVar3 = FUN_000d8f30();\n    if ((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)) {\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }\n    pcStack_48 = (char *)0x1;\n    local_4c = param_1;\n    pcStack_44 = pcVar6;\n    pcVar7 = (char *)FUN_000acf30();\n    if ((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)) {\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }\n    pcStack_48 = param_1;\n    local_4c = pcVar7;\n    pcStack_44 = param_3;\n    FUN_000ed550();\n    if (cVar3 != '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }\n    if (param_3[0x92] < '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }\nLAB_000ad22a:\n    if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\nLAB_000ad234:\n    if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n    bVar12 = false;\n    bVar13 = (param_3[0x91] & 0x20U) == 0;\n    if (!bVar13) {\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }\n    iVar8 = 8;\n    pbVar10 = *(byte **)(param_3 + 0x20);\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    if (((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))) {\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_000ad050(char *param_1,int param_2,char *param_3)\n\n{\n  uint uVar1;\n  uint uVar2;\n  char cVar3;\n  char cVar4;\n  uint uVar5;\n  char *pcVar6;\n  char *pcVar7;\n  int iVar8;\n  int *piVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  char *local_4c;\n  char *pcStack_48;\n  char *pcStack_44;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0xad059;\n  uVar1 = *(uint *)(param_3 + 0x54);\n  if ((uVar1 & 2) == 0) {\n    pcStack_44 = "attach_allocated_section_to_segment";\n    local_4c = "../../gold/layout.cc";\n    pcStack_48 = (char *)0x7af;\n                    \n    FUN_0008b620();\n  }\n  local_4c = *(char **)(DAT_0033f2f0 + 8);\n  if (local_4c == (char *)0x0) {\nLAB_000ad5a2:\n    pcStack_44 = "options";\n    local_4c = "../../gold/parameters.h";\n    pcStack_48 = (char *)0x5c;\n                    \n    FUN_0008b620();\n  }\n  if ((local_4c[0x318d] == '\0') && (*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')) {\n    uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6;\n    if ((uVar1 & 4) != 0) {\n      uVar5 = uVar5 | 1;\n    }\n    pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c));\n    pcStack_44 = (char *)&local_24;\n    pcStack_48 = *(char **)(param_3 + 0x20);\n    cVar3 = FUN_000d8f30();\n    if ((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)) {\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }\n    pcStack_48 = (char *)0x1;\n    local_4c = param_1;\n    pcStack_44 = pcVar6;\n    pcVar7 = (char *)FUN_000acf30();\n    if ((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)) {\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }\n    pcStack_48 = param_1;\n    local_4c = pcVar7;\n    pcStack_44 = param_3;\n    FUN_000ed550();\n    if (cVar3 != '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }\n    if (param_3[0x92] < '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }\nLAB_000ad22a:\n    if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\nLAB_000ad234:\n    if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n    bVar12 = false;\n    bVar13 = (param_3[0x91] & 0x20U) == 0;\n    if (!bVar13) {\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }\n    iVar8 = 8;\n    pbVar10 = *(byte **)(param_3 + 0x20);\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    if (((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))) {\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000ad050(char *param_1,int param_2,char *param_3)" identifier (parameter_list "(char *param_1,int param_2,char *param_3)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  char cVar3;\n  char cVar4;\n  uint uVar5;\n  char *pcVar6;\n  char *pcVar7;\n  int iVar8;\n  int *piVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  char *local_4c;\n  char *pcStack_48;\n  char *pcStack_44;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0xad059;\n  uVar1 = *(uint *)(param_3 + 0x54);\n  if ((uVar1 & 2) == 0) {\n    pcStack_44 = "attach_allocated_section_to_segment";\n    local_4c = "../../gold/layout.cc";\n    pcStack_48 = (char *)0x7af;\n                    \n    FUN_0008b620();\n  }\n  local_4c = *(char **)(DAT_0033f2f0 + 8);\n  if (local_4c == (char *)0x0) {\nLAB_000ad5a2:\n    pcStack_44 = "options";\n    local_4c = "../../gold/parameters.h";\n    pcStack_48 = (char *)0x5c;\n                    \n    FUN_0008b620();\n  }\n  if ((local_4c[0x318d] == '\0') && (*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')) {\n    uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6;\n    if ((uVar1 & 4) != 0) {\n      uVar5 = uVar5 | 1;\n    }\n    pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c));\n    pcStack_44 = (char *)&local_24;\n    pcStack_48 = *(char **)(param_3 + 0x20);\n    cVar3 = FUN_000d8f30();\n    if ((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)) {\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }\n    pcStack_48 = (char *)0x1;\n    local_4c = param_1;\n    pcStack_44 = pcVar6;\n    pcVar7 = (char *)FUN_000acf30();\n    if ((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)) {\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }\n    pcStack_48 = param_1;\n    local_4c = pcVar7;\n    pcStack_44 = param_3;\n    FUN_000ed550();\n    if (cVar3 != '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }\n    if (param_3[0x92] < '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }\nLAB_000ad22a:\n    if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\nLAB_000ad234:\n    if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n    bVar12 = false;\n    bVar13 = (param_3[0x91] & 0x20U) == 0;\n    if (!bVar13) {\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }\n    iVar8 = 8;\n    pbVar10 = *(byte **)(param_3 + 0x20);\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    if (((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))) {\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "char *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "char *pcStack_48;" primitive_type (pointer_declarator "*pcStack_48" * identifier) ;) (declaration "char *pcStack_44;" primitive_type (pointer_declarator "*pcStack_44" * identifier) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0xad059;" (assignment_expression "uStack_14 = 0xad059" identifier = number_literal) ;) (expression_statement "uVar1 = *(uint *)(param_3 + 0x54);" (assignment_expression "uVar1 = *(uint *)(param_3 + 0x54)" identifier = (pointer_expression "*(uint *)(param_3 + 0x54)" * (cast_expression "(uint *)(param_3 + 0x54)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x54)" ( (binary_expression "param_3 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if ((uVar1 & 2) == 0) {\n    pcStack_44 = "attach_allocated_section_to_segment";\n    local_4c = "../../gold/layout.cc";\n    pcStack_48 = (char *)0x7af;\n                    \n    FUN_0008b620();\n  }" if (parenthesized_expression "((uVar1 & 2) == 0)" ( (binary_expression "(uVar1 & 2) == 0" (parenthesized_expression "(uVar1 & 2)" ( (binary_expression "uVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    pcStack_44 = "attach_allocated_section_to_segment";\n    local_4c = "../../gold/layout.cc";\n    pcStack_48 = (char *)0x7af;\n                    \n    FUN_0008b620();\n  }" { (expression_statement "pcStack_44 = "attach_allocated_section_to_segment";" (assignment_expression "pcStack_44 = "attach_allocated_section_to_segment"" identifier = (string_literal ""attach_allocated_section_to_segment"" " string_content ")) ;) (expression_statement "local_4c = "../../gold/layout.cc";" (assignment_expression "local_4c = "../../gold/layout.cc"" identifier = (string_literal ""../../gold/layout.cc"" " string_content ")) ;) (expression_statement "pcStack_48 = (char *)0x7af;" (assignment_expression "pcStack_48 = (char *)0x7af" identifier = (cast_expression "(char *)0x7af" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_4c = *(char **)(DAT_0033f2f0 + 8);" (assignment_expression "local_4c = *(char **)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(char **)(DAT_0033f2f0 + 8)" * (cast_expression "(char **)(DAT_0033f2f0 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (if_statement "if (local_4c == (char *)0x0) {\nLAB_000ad5a2:\n    pcStack_44 = "options";\n    local_4c = "../../gold/parameters.h";\n    pcStack_48 = (char *)0x5c;\n                    \n    FUN_0008b620();\n  }" if (parenthesized_expression "(local_4c == (char *)0x0)" ( (binary_expression "local_4c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000ad5a2:\n    pcStack_44 = "options";\n    local_4c = "../../gold/parameters.h";\n    pcStack_48 = (char *)0x5c;\n                    \n    FUN_0008b620();\n  }" { (labeled_statement "LAB_000ad5a2:\n    pcStack_44 = "options";" statement_identifier : (expression_statement "pcStack_44 = "options";" (assignment_expression "pcStack_44 = "options"" identifier = (string_literal ""options"" " string_content ")) ;)) (expression_statement "local_4c = "../../gold/parameters.h";" (assignment_expression "local_4c = "../../gold/parameters.h"" identifier = (string_literal ""../../gold/parameters.h"" " string_content ")) ;) (expression_statement "pcStack_48 = (char *)0x5c;" (assignment_expression "pcStack_48 = (char *)0x5c" identifier = (cast_expression "(char *)0x5c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((local_4c[0x318d] == '\0') && (*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')) {\n    uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6;\n    if ((uVar1 & 4) != 0) {\n      uVar5 = uVar5 | 1;\n    }\n    pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c));\n    pcStack_44 = (char *)&local_24;\n    pcStack_48 = *(char **)(param_3 + 0x20);\n    cVar3 = FUN_000d8f30();\n    if ((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)) {\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }\n    pcStack_48 = (char *)0x1;\n    local_4c = param_1;\n    pcStack_44 = pcVar6;\n    pcVar7 = (char *)FUN_000acf30();\n    if ((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)) {\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }\n    pcStack_48 = param_1;\n    local_4c = pcVar7;\n    pcStack_44 = param_3;\n    FUN_000ed550();\n    if (cVar3 != '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }\n    if (param_3[0x92] < '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }\nLAB_000ad22a:\n    if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\nLAB_000ad234:\n    if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n    bVar12 = false;\n    bVar13 = (param_3[0x91] & 0x20U) == 0;\n    if (!bVar13) {\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }\n    iVar8 = 8;\n    pbVar10 = *(byte **)(param_3 + 0x20);\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    if (((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))) {\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n  }" if (parenthesized_expression "((local_4c[0x318d] == '\0') && (*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0'))" ( (binary_expression "(local_4c[0x318d] == '\0') && (*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')" (parenthesized_expression "(local_4c[0x318d] == '\0')" ( (binary_expression "local_4c[0x318d] == '\0'" (subscript_expression "local_4c[0x318d]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')" ( (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + 0xac)" * (cast_expression "(char *)(*(int *)(param_1 + 4) + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0xac)" ( (binary_expression "*(int *)(param_1 + 4) + 0xac" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6;\n    if ((uVar1 & 4) != 0) {\n      uVar5 = uVar5 | 1;\n    }\n    pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c));\n    pcStack_44 = (char *)&local_24;\n    pcStack_48 = *(char **)(param_3 + 0x20);\n    cVar3 = FUN_000d8f30();\n    if ((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)) {\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }\n    pcStack_48 = (char *)0x1;\n    local_4c = param_1;\n    pcStack_44 = pcVar6;\n    pcVar7 = (char *)FUN_000acf30();\n    if ((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)) {\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }\n    pcStack_48 = param_1;\n    local_4c = pcVar7;\n    pcStack_44 = param_3;\n    FUN_000ed550();\n    if (cVar3 != '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }\n    if (param_3[0x92] < '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }\nLAB_000ad22a:\n    if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\nLAB_000ad234:\n    if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n    bVar12 = false;\n    bVar13 = (param_3[0x91] & 0x20U) == 0;\n    if (!bVar13) {\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }\n    iVar8 = 8;\n    pbVar10 = *(byte **)(param_3 + 0x20);\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    if (((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))) {\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n  }" { (expression_statement "uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6;" (assignment_expression "uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6" identifier = (binary_expression "(-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6" (parenthesized_expression "(-(uint)((uVar1 & 1) == 0) & 0xfffffffe)" ( (binary_expression "-(uint)((uVar1 & 1) == 0) & 0xfffffffe" (unary_expression "-(uint)((uVar1 & 1) == 0)" - (call_expression "(uint)((uVar1 & 1) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar1 & 1) == 0)" ( (binary_expression "(uVar1 & 1) == 0" (parenthesized_expression "(uVar1 & 1)" ( (binary_expression "uVar1 & 1" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal)) ;) (if_statement "if ((uVar1 & 4) != 0) {\n      uVar5 = uVar5 | 1;\n    }" if (parenthesized_expression "((uVar1 & 4) != 0)" ( (binary_expression "(uVar1 & 4) != 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar5 = uVar5 | 1;\n    }" { (expression_statement "uVar5 = uVar5 | 1;" (assignment_expression "uVar5 = uVar5 | 1" identifier = (binary_expression "uVar5 | 1" identifier | number_literal)) ;) })) (expression_statement "pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c));" (assignment_expression "pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c))" identifier = (cast_expression "(char *)(uVar5 | *(uint *)(param_3 + 0x9c))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 | *(uint *)(param_3 + 0x9c))" ( (binary_expression "uVar5 | *(uint *)(param_3 + 0x9c)" identifier | (pointer_expression "*(uint *)(param_3 + 0x9c)" * (cast_expression "(uint *)(param_3 + 0x9c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x9c)" ( (binary_expression "param_3 + 0x9c" identifier + number_literal) ))))) )))) ;) (expression_statement "pcStack_44 = (char *)&local_24;" (assignment_expression "pcStack_44 = (char *)&local_24" identifier = (cast_expression "(char *)&local_24" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_24" & identifier))) ;) (expression_statement "pcStack_48 = *(char **)(param_3 + 0x20);" (assignment_expression "pcStack_48 = *(char **)(param_3 + 0x20)" identifier = (pointer_expression "*(char **)(param_3 + 0x20)" * (cast_expression "(char **)(param_3 + 0x20)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x20)" ( (binary_expression "param_3 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "cVar3 = FUN_000d8f30();" (assignment_expression "cVar3 = FUN_000d8f30()" identifier = (call_expression "FUN_000d8f30()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)) {\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }" if (parenthesized_expression "((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9))" ( (binary_expression "(-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)" (parenthesized_expression "(-1 < param_3[0x92])" ( (binary_expression "-1 < param_3[0x92]" number_literal < (subscript_expression "param_3[0x92]" identifier [ number_literal ])) )) && (parenthesized_expression "(piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)" ( (comma_expression "piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9" (assignment_expression "piVar9 = *(int **)(param_1 + 0x124)" identifier = (pointer_expression "*(int **)(param_1 + 0x124)" * (cast_expression "(int **)(param_1 + 0x124)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) , (binary_expression "*(int **)(param_1 + 0x128) != piVar9" (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != identifier)) ))) )) (compound_statement "{\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }" { (do_statement "do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);" do (compound_statement "{\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      }" { (expression_statement "local_4c = (char *)*piVar9;" (assignment_expression "local_4c = (char *)*piVar9" identifier = (cast_expression "(char *)*piVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) (if_statement "if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }" if (parenthesized_expression "((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0))" ( (binary_expression "(*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)" (parenthesized_expression "(*(int *)(local_4c + 0x194) == 1)" ( (binary_expression "*(int *)(local_4c + 0x194) == 1" (pointer_expression "*(int *)(local_4c + 0x194)" * (cast_expression "(int *)(local_4c + 0x194)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x194)" ( (binary_expression "local_4c + 0x194" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((local_4c[0x19c] & 8U) == 0)" ( (binary_expression "(local_4c[0x19c] & 8U) == 0" (parenthesized_expression "(local_4c[0x19c] & 8U)" ( (binary_expression "local_4c[0x19c] & 8U" (subscript_expression "local_4c[0x19c]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }" { (expression_statement "iVar8 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar8 = *(int *)(DAT_0033f2f0 + 8)" identifier = (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 0) goto LAB_000ad5a2;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000ad5a2;" goto statement_identifier ;)) (if_statement "if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }" if (parenthesized_expression "(((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0))))" ( (binary_expression "((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))" (parenthesized_expression "((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0))" ( (binary_expression "(*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)" (parenthesized_expression "(*(char *)(iVar8 + 0x253d) != '\0')" ( (binary_expression "*(char *)(iVar8 + 0x253d) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x253d)" * (cast_expression "(char *)(iVar8 + 0x253d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x253d)" ( (binary_expression "iVar8 + 0x253d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)" ( (binary_expression "(((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0" (parenthesized_expression "(((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2)" ( (binary_expression "((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2" (parenthesized_expression "((uint)pcVar6 ^ *(uint *)(local_4c + 0x198))" ( (binary_expression "(uint)pcVar6 ^ *(uint *)(local_4c + 0x198)" (cast_expression "(uint)pcVar6" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (pointer_expression "*(uint *)(local_4c + 0x198)" * (cast_expression "(uint *)(local_4c + 0x198)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x198)" ( (binary_expression "local_4c + 0x198" identifier + number_literal) ))))) )) & number_literal) )) == number_literal) ))) )) && (parenthesized_expression "(((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))" ( (parenthesized_expression "((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0))" ( (binary_expression "(*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)" (parenthesized_expression "(*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0'))" ( (binary_expression "*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')" (binary_expression "*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0'" (pointer_expression "*(char *)(*(int *)(param_2 + 4) + 0x30)" * (cast_expression "(char *)(*(int *)(param_2 + 4) + 0x30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 4) + 0x30)" ( (binary_expression "*(int *)(param_2 + 4) + 0x30" (pointer_expression "*(int *)(param_2 + 4)" * (cast_expression "(int *)(param_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(*(char *)(iVar8 + 0x32c9) == '\0')" ( (binary_expression "*(char *)(iVar8 + 0x32c9) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x32c9)" * (cast_expression "(char *)(iVar8 + 0x32c9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x32c9)" ( (binary_expression "iVar8 + 0x32c9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)" ( (binary_expression "(((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0" (parenthesized_expression "(((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1)" ( (binary_expression "((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1" (parenthesized_expression "((uint)pcVar6 ^ *(uint *)(local_4c + 0x198))" ( (binary_expression "(uint)pcVar6 ^ *(uint *)(local_4c + 0x198)" (cast_expression "(uint)pcVar6" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (pointer_expression "*(uint *)(local_4c + 0x198)" * (cast_expression "(uint *)(local_4c + 0x198)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x198)" ( (binary_expression "local_4c + 0x198" identifier + number_literal) ))))) )) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }" { (if_statement "if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }" if (parenthesized_expression "(*(char *)(iVar8 + 0x4128) != '\0')" ( (binary_expression "*(char *)(iVar8 + 0x4128) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x4128)" * (cast_expression "(char *)(iVar8 + 0x4128)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x4128)" ( (binary_expression "iVar8 + 0x4128" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }" { (expression_statement "iVar8 = *(int *)(param_3 + 0x50);" (assignment_expression "iVar8 = *(int *)(param_3 + 0x50)" identifier = (pointer_expression "*(int *)(param_3 + 0x50)" * (cast_expression "(int *)(param_3 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x50)" ( (binary_expression "param_3 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "cVar4 = FUN_000ea480();" (assignment_expression "cVar4 = FUN_000ea480()" identifier = (call_expression "FUN_000ea480()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;" if (parenthesized_expression "((iVar8 == 8) == (bool)cVar4)" ( (binary_expression "(iVar8 == 8) == (bool)cVar4" (parenthesized_expression "(iVar8 == 8)" ( (binary_expression "iVar8 == 8" identifier == number_literal) )) == (cast_expression "(bool)cVar4" ( (type_descriptor "bool" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000ad348;" goto statement_identifier ;)) (expression_statement "local_4c = (char *)*piVar9;" (assignment_expression "local_4c = (char *)*piVar9" identifier = (cast_expression "(char *)*piVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) })) (if_statement "if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }" if (parenthesized_expression "(((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0))" ( (binary_expression "((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)" (parenthesized_expression "((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8))" ( (binary_expression "(-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)" (parenthesized_expression "(-1 < param_3[0x91])" ( (binary_expression "-1 < param_3[0x91]" number_literal < (subscript_expression "param_3[0x91]" identifier [ number_literal ])) )) || (parenthesized_expression "(*(int *)(param_3 + 0x50) == 8)" ( (binary_expression "*(int *)(param_3 + 0x50) == 8" (pointer_expression "*(int *)(param_3 + 0x50)" * (cast_expression "(int *)(param_3 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x50)" ( (binary_expression "param_3 + 0x50" identifier + number_literal) )))) == number_literal) ))) )) || (parenthesized_expression "((local_4c[0x19c] & 4U) != 0)" ( (binary_expression "(local_4c[0x19c] & 4U) != 0" (parenthesized_expression "(local_4c[0x19c] & 4U)" ( (binary_expression "local_4c[0x19c] & 4U" (subscript_expression "local_4c[0x19c]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }" { (if_statement "if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }" { (expression_statement "pcStack_44 = param_3;" (assignment_expression "pcStack_44 = param_3" identifier = identifier) ;) (expression_statement "pcStack_48 = param_1;" (assignment_expression "pcStack_48 = param_1" identifier = identifier) ;) (expression_statement "FUN_000ed550();" (call_expression "FUN_000ed550()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }" else (compound_statement "{\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }" { (if_statement "if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;" if (parenthesized_expression "((local_4c[0x19c] & 2U) != 0)" ( (binary_expression "(local_4c[0x19c] & 2U) != 0" (parenthesized_expression "(local_4c[0x19c] & 2U)" ( (binary_expression "local_4c[0x19c] & 2U" (subscript_expression "local_4c[0x19c]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000ad348;" goto statement_identifier ;)) (expression_statement "pcStack_48 = param_3;" (assignment_expression "pcStack_48 = param_3" identifier = identifier) ;) (expression_statement "FUN_000ec8e0();" (call_expression "FUN_000ec8e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar8 = *piVar9;" (assignment_expression "iVar8 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (if_statement "if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }" if (parenthesized_expression "(*(int *)(iVar8 + 0x194) != 7)" ( (binary_expression "*(int *)(iVar8 + 0x194) != 7" (pointer_expression "*(int *)(iVar8 + 0x194)" * (cast_expression "(int *)(iVar8 + 0x194)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x194)" ( (binary_expression "iVar8 + 0x194" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }" { (expression_statement "*(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;" (assignment_expression "*(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6" (pointer_expression "*(uint *)(iVar8 + 0x198)" * (cast_expression "(uint *)(iVar8 + 0x198)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x198)" ( (binary_expression "iVar8 + 0x198" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar8 + 0x198) | (uint)pcVar6" (pointer_expression "*(uint *)(iVar8 + 0x198)" * (cast_expression "(uint *)(iVar8 + 0x198)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x198)" ( (binary_expression "iVar8 + 0x198" identifier + number_literal) )))) | (cast_expression "(uint)pcVar6" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (expression_statement "*(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;" (assignment_expression "*(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2" (pointer_expression "*(byte *)(iVar8 + 0x19c)" * (cast_expression "(byte *)(iVar8 + 0x19c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x19c)" ( (binary_expression "iVar8 + 0x19c" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar8 + 0x19c) | 2" (pointer_expression "*(byte *)(iVar8 + 0x19c)" * (cast_expression "(byte *)(iVar8 + 0x19c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x19c)" ( (binary_expression "iVar8 + 0x19c" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x15c) = local_24;" (assignment_expression "*(undefined4 *)(iVar8 + 0x15c) = local_24" (pointer_expression "*(undefined4 *)(iVar8 + 0x15c)" * (cast_expression "(undefined4 *)(iVar8 + 0x15c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x15c)" ( (binary_expression "iVar8 + 0x15c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x160) = local_20;" (assignment_expression "*(undefined4 *)(iVar8 + 0x160) = local_20" (pointer_expression "*(undefined4 *)(iVar8 + 0x160)" * (cast_expression "(undefined4 *)(iVar8 + 0x160)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x160)" ( (binary_expression "iVar8 + 0x160" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x164) = local_24;" (assignment_expression "*(undefined4 *)(iVar8 + 0x164) = local_24" (pointer_expression "*(undefined4 *)(iVar8 + 0x164)" * (cast_expression "(undefined4 *)(iVar8 + 0x164)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x164)" ( (binary_expression "iVar8 + 0x164" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar8 + 0x168) = local_20;" (assignment_expression "*(undefined4 *)(iVar8 + 0x168) = local_20" (pointer_expression "*(undefined4 *)(iVar8 + 0x168)" * (cast_expression "(undefined4 *)(iVar8 + 0x168)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x168)" ( (binary_expression "iVar8 + 0x168" identifier + number_literal) )))) = identifier) ;) }))) (if_statement "if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;" if (parenthesized_expression "((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92]))" ( (binary_expression "(*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])" (parenthesized_expression "(*(int **)(param_1 + 0x128) != piVar9)" ( (binary_expression "*(int **)(param_1 + 0x128) != piVar9" (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != identifier) )) && (parenthesized_expression "(-1 < param_3[0x92])" ( (binary_expression "-1 < param_3[0x92]" number_literal < (subscript_expression "param_3[0x92]" identifier [ number_literal ])) ))) )) (goto_statement "goto LAB_000ad22a;" goto statement_identifier ;)) (break_statement "break;" break ;) })) })) })) (labeled_statement "LAB_000ad348:\n        piVar9 = piVar9 + 1;" statement_identifier : (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(*(int **)(param_1 + 0x128) != piVar9)" ( (binary_expression "*(int **)(param_1 + 0x128) != piVar9" (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != identifier) )) ;) })) (expression_statement "pcStack_48 = (char *)0x1;" (assignment_expression "pcStack_48 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = param_1;" (assignment_expression "local_4c = param_1" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" identifier = identifier) ;) (expression_statement "pcVar7 = (char *)FUN_000acf30();" (assignment_expression "pcVar7 = (char *)FUN_000acf30()" identifier = (cast_expression "(char *)FUN_000acf30()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000acf30()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)) {\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }" if (parenthesized_expression "((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8))" ( (binary_expression "(param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)" (parenthesized_expression "(param_3[0x91] < '\0')" ( (binary_expression "param_3[0x91] < '\0'" (subscript_expression "param_3[0x91]" identifier [ number_literal ]) < (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(*(int *)(param_3 + 0x50) != 8)" ( (binary_expression "*(int *)(param_3 + 0x50) != 8" (pointer_expression "*(int *)(param_3 + 0x50)" * (cast_expression "(int *)(param_3 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x50)" ( (binary_expression "param_3 + 0x50" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }" { (expression_statement "pcVar7[0x19c] = pcVar7[0x19c] | 4;" (assignment_expression "pcVar7[0x19c] = pcVar7[0x19c] | 4" (subscript_expression "pcVar7[0x19c]" identifier [ number_literal ]) = (binary_expression "pcVar7[0x19c] | 4" (subscript_expression "pcVar7[0x19c]" identifier [ number_literal ]) | number_literal)) ;) })) (expression_statement "pcStack_48 = param_1;" (assignment_expression "pcStack_48 = param_1" identifier = identifier) ;) (expression_statement "local_4c = pcVar7;" (assignment_expression "local_4c = pcVar7" identifier = identifier) ;) (expression_statement "pcStack_44 = param_3;" (assignment_expression "pcStack_44 = param_3" identifier = identifier) ;) (expression_statement "FUN_000ed550();" (call_expression "FUN_000ed550()" identifier (argument_list "()" ( ))) ;) (if_statement "if (cVar3 != '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }" { (expression_statement "pcVar7[0x19c] = pcVar7[0x19c] | 2;" (assignment_expression "pcVar7[0x19c] = pcVar7[0x19c] | 2" (subscript_expression "pcVar7[0x19c]" identifier [ number_literal ]) = (binary_expression "pcVar7[0x19c] | 2" (subscript_expression "pcVar7[0x19c]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "*(undefined4 *)(pcVar7 + 0x15c) = local_24;" (assignment_expression "*(undefined4 *)(pcVar7 + 0x15c) = local_24" (pointer_expression "*(undefined4 *)(pcVar7 + 0x15c)" * (cast_expression "(undefined4 *)(pcVar7 + 0x15c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x15c)" ( (binary_expression "pcVar7 + 0x15c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pcVar7 + 0x160) = local_20;" (assignment_expression "*(undefined4 *)(pcVar7 + 0x160) = local_20" (pointer_expression "*(undefined4 *)(pcVar7 + 0x160)" * (cast_expression "(undefined4 *)(pcVar7 + 0x160)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x160)" ( (binary_expression "pcVar7 + 0x160" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pcVar7 + 0x164) = local_24;" (assignment_expression "*(undefined4 *)(pcVar7 + 0x164) = local_24" (pointer_expression "*(undefined4 *)(pcVar7 + 0x164)" * (cast_expression "(undefined4 *)(pcVar7 + 0x164)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x164)" ( (binary_expression "pcVar7 + 0x164" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pcVar7 + 0x168) = local_20;" (assignment_expression "*(undefined4 *)(pcVar7 + 0x168) = local_20" (pointer_expression "*(undefined4 *)(pcVar7 + 0x168)" * (cast_expression "(undefined4 *)(pcVar7 + 0x168)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x168)" ( (binary_expression "pcVar7 + 0x168" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (param_3[0x92] < '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }" if (parenthesized_expression "(param_3[0x92] < '\0')" ( (binary_expression "param_3[0x92] < '\0'" (subscript_expression "param_3[0x92]" identifier [ number_literal ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }" { (expression_statement "pcVar7[0x19c] = pcVar7[0x19c] | 8;" (assignment_expression "pcVar7[0x19c] = pcVar7[0x19c] | 8" (subscript_expression "pcVar7[0x19c]" identifier [ number_literal ]) = (binary_expression "pcVar7[0x19c] | 8" (subscript_expression "pcVar7[0x19c]" identifier [ number_literal ]) | number_literal)) ;) (expression_statement "uVar5 = *(uint *)(param_3 + 0xa8);" (assignment_expression "uVar5 = *(uint *)(param_3 + 0xa8)" identifier = (pointer_expression "*(uint *)(param_3 + 0xa8)" * (cast_expression "(uint *)(param_3 + 0xa8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xa8)" ( (binary_expression "param_3 + 0xa8" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(param_3 + 0xa4);" (assignment_expression "uVar2 = *(uint *)(param_3 + 0xa4)" identifier = (pointer_expression "*(uint *)(param_3 + 0xa4)" * (cast_expression "(uint *)(param_3 + 0xa4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0xa4)" ( (binary_expression "param_3 + 0xa4" identifier + number_literal) ))))) ;) (if_statement "if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }" if (parenthesized_expression "((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2)))" ( (binary_expression "(uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))" (parenthesized_expression "(uVar5 != 0 || uVar2 != 0)" ( (binary_expression "uVar5 != 0 || uVar2 != 0" (binary_expression "uVar5 != 0" identifier != number_literal) || (binary_expression "uVar2 != 0" identifier != number_literal)) )) && (parenthesized_expression "(*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))" ( (binary_expression "*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2)" (binary_expression "*(uint *)(pcVar7 + 0x180) < uVar5" (pointer_expression "*(uint *)(pcVar7 + 0x180)" * (cast_expression "(uint *)(pcVar7 + 0x180)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x180)" ( (binary_expression "pcVar7 + 0x180" identifier + number_literal) )))) < identifier) || (binary_expression "*(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2)" (binary_expression "*(uint *)(pcVar7 + 0x180) - uVar5" (pointer_expression "*(uint *)(pcVar7 + 0x180)" * (cast_expression "(uint *)(pcVar7 + 0x180)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x180)" ( (binary_expression "pcVar7 + 0x180" identifier + number_literal) )))) - identifier) < (call_expression "(uint)(*(uint *)(pcVar7 + 0x17c) < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(uint *)(pcVar7 + 0x17c) < uVar2)" ( (binary_expression "*(uint *)(pcVar7 + 0x17c) < uVar2" (pointer_expression "*(uint *)(pcVar7 + 0x17c)" * (cast_expression "(uint *)(pcVar7 + 0x17c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x17c)" ( (binary_expression "pcVar7 + 0x17c" identifier + number_literal) )))) < identifier) ))))) ))) )) (compound_statement "{\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }" { (expression_statement "*(uint *)(pcVar7 + 0x17c) = uVar2;" (assignment_expression "*(uint *)(pcVar7 + 0x17c) = uVar2" (pointer_expression "*(uint *)(pcVar7 + 0x17c)" * (cast_expression "(uint *)(pcVar7 + 0x17c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x17c)" ( (binary_expression "pcVar7 + 0x17c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(pcVar7 + 0x180) = uVar5;" (assignment_expression "*(uint *)(pcVar7 + 0x180) = uVar5" (pointer_expression "*(uint *)(pcVar7 + 0x180)" * (cast_expression "(uint *)(pcVar7 + 0x180)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar7 + 0x180)" ( (binary_expression "pcVar7 + 0x180" identifier + number_literal) )))) = identifier) ;) })) })) (labeled_statement "LAB_000ad22a:\n    if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" statement_identifier : (if_statement "if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" if (parenthesized_expression "(*(int *)(param_3 + 0x50) == 7)" ( (binary_expression "*(int *)(param_3 + 0x50) == 7" (pointer_expression "*(int *)(param_3 + 0x50)" * (cast_expression "(int *)(param_3 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x50)" ( (binary_expression "param_3 + 0x50" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" { (for_statement "for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }" for ( (assignment_expression "piVar9 = *(int **)(param_1 + 0x124)" identifier = (pointer_expression "*(int **)(param_1 + 0x124)" * (cast_expression "(int **)(param_1 + 0x124)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) ; (binary_expression "piVar9 != *(int **)(param_1 + 0x128)" identifier != (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) ; (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ) (compound_statement "{\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }" { (expression_statement "local_4c = (char *)*piVar9;" (assignment_expression "local_4c = (char *)*piVar9" identifier = (cast_expression "(char *)*piVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) (if_statement "if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }" if (parenthesized_expression "((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0))" ( (binary_expression "(*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)" (parenthesized_expression "(*(int *)(local_4c + 0x194) == 4)" ( (binary_expression "*(int *)(local_4c + 0x194) == 4" (pointer_expression "*(int *)(local_4c + 0x194)" * (cast_expression "(int *)(local_4c + 0x194)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x194)" ( (binary_expression "local_4c + 0x194" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)" ( (binary_expression "((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0" (parenthesized_expression "((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2)" ( (binary_expression "(*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2" (parenthesized_expression "(*(uint *)(local_4c + 0x198) ^ (uint)pcVar6)" ( (binary_expression "*(uint *)(local_4c + 0x198) ^ (uint)pcVar6" (pointer_expression "*(uint *)(local_4c + 0x198)" * (cast_expression "(uint *)(local_4c + 0x198)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 0x198)" ( (binary_expression "local_4c + 0x198" identifier + number_literal) )))) ^ (cast_expression "(uint)pcVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) )) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }" { (expression_statement "pcStack_48 = param_3;" (assignment_expression "pcStack_48 = param_3" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" identifier = identifier) ;) (expression_statement "FUN_000ed680();" (call_expression "FUN_000ed680()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;" if (parenthesized_expression "(*(int **)(param_1 + 0x128) != piVar9)" ( (binary_expression "*(int **)(param_1 + 0x128) != piVar9" (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != identifier) )) (goto_statement "goto LAB_000ad234;" goto statement_identifier ;)) (break_statement "break;" break ;) })) })) (expression_statement "pcStack_48 = (char *)0x4;" (assignment_expression "pcStack_48 = (char *)0x4" identifier = (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = param_1;" (assignment_expression "local_4c = param_1" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" identifier = identifier) ;) (expression_statement "local_4c = (char *)FUN_000acf30();" (assignment_expression "local_4c = (char *)FUN_000acf30()" identifier = (cast_expression "(char *)FUN_000acf30()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000acf30()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pcStack_48 = param_3;" (assignment_expression "pcStack_48 = param_3" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" identifier = identifier) ;) (expression_statement "FUN_000ed680();" (call_expression "FUN_000ed680()" identifier (argument_list "()" ( ))) ;) }))) (labeled_statement "LAB_000ad234:\n    if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" statement_identifier : (if_statement "if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" if (parenthesized_expression "((uVar1 & 0x400) != 0)" ( (binary_expression "(uVar1 & 0x400) != 0" (parenthesized_expression "(uVar1 & 0x400)" ( (binary_expression "uVar1 & 0x400" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" { (expression_statement "local_4c = *(char **)(param_1 + 0x164);" (assignment_expression "local_4c = *(char **)(param_1 + 0x164)" identifier = (pointer_expression "*(char **)(param_1 + 0x164)" * (cast_expression "(char **)(param_1 + 0x164)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x164)" ( (binary_expression "param_1 + 0x164" identifier + number_literal) ))))) ;) (if_statement "if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }" if (parenthesized_expression "(local_4c == (char *)0x0)" ( (binary_expression "local_4c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }" { (expression_statement "pcStack_48 = (char *)0x7;" (assignment_expression "pcStack_48 = (char *)0x7" identifier = (cast_expression "(char *)0x7" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = param_1;" (assignment_expression "local_4c = param_1" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" identifier = identifier) ;) (expression_statement "FUN_000acf30();" (call_expression "FUN_000acf30()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4c = *(char **)(param_1 + 0x164);" (assignment_expression "local_4c = *(char **)(param_1 + 0x164)" identifier = (pointer_expression "*(char **)(param_1 + 0x164)" * (cast_expression "(char **)(param_1 + 0x164)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x164)" ( (binary_expression "param_1 + 0x164" identifier + number_literal) ))))) ;) })) (expression_statement "pcStack_48 = param_3;" (assignment_expression "pcStack_48 = param_3" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" identifier = identifier) ;) (expression_statement "FUN_000ed680();" (call_expression "FUN_000ed680()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar13 = (param_3[0x91] & 0x20U) == 0;" (assignment_expression "bVar13 = (param_3[0x91] & 0x20U) == 0" identifier = (binary_expression "(param_3[0x91] & 0x20U) == 0" (parenthesized_expression "(param_3[0x91] & 0x20U)" ( (binary_expression "param_3[0x91] & 0x20U" (subscript_expression "param_3[0x91]" identifier [ number_literal ]) & number_literal) )) == number_literal)) ;) (if_statement "if (!bVar13) {\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (compound_statement "{\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }" { (if_statement "if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;" if (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) == 0)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 8) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000ad5a2;" goto statement_identifier ;)) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" identifier = false) ;) (expression_statement "bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';" (assignment_expression "bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0'" identifier = (binary_expression "*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0'" (pointer_expression "*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9)" * (cast_expression "(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) + 0x56b9)" ( (binary_expression "*(int *)(DAT_0033f2f0 + 8) + 0x56b9" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" * (cast_expression "(int *)(DAT_0033f2f0 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0033f2f0 + 8)" ( (binary_expression "DAT_0033f2f0 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence '))) ;) (if_statement "if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (compound_statement "{\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }" { (if_statement "if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }" if (parenthesized_expression "(pcVar6 != (char *)0x6)" ( (binary_expression "pcVar6 != (char *)0x6" identifier != (cast_expression "(char *)0x6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }" { (expression_statement "pcStack_44 = "attach_allocated_section_to_segment";" (assignment_expression "pcStack_44 = "attach_allocated_section_to_segment"" identifier = (string_literal ""attach_allocated_section_to_segment"" " string_content ")) ;) (expression_statement "local_4c = "../../gold/layout.cc";" (assignment_expression "local_4c = "../../gold/layout.cc"" identifier = (string_literal ""../../gold/layout.cc"" " string_content ")) ;) (expression_statement "pcStack_48 = (char *)0x835;" (assignment_expression "pcStack_48 = (char *)0x835" identifier = (cast_expression "(char *)0x835" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_4c = *(char **)(param_1 + 0x168);" (assignment_expression "local_4c = *(char **)(param_1 + 0x168)" identifier = (pointer_expression "*(char **)(param_1 + 0x168)" * (cast_expression "(char **)(param_1 + 0x168)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x168)" ( (binary_expression "param_1 + 0x168" identifier + number_literal) ))))) ;) (if_statement "if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }" if (parenthesized_expression "(local_4c == (char *)0x0)" ( (binary_expression "local_4c == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }" { (expression_statement "pcStack_44 = (char *)0x6;" (assignment_expression "pcStack_44 = (char *)0x6" identifier = (cast_expression "(char *)0x6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcStack_48 = (char *)0x6474e552;" (assignment_expression "pcStack_48 = (char *)0x6474e552" identifier = (cast_expression "(char *)0x6474e552" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = param_1;" (assignment_expression "local_4c = param_1" identifier = identifier) ;) (expression_statement "FUN_000acf30();" (call_expression "FUN_000acf30()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4c = *(char **)(param_1 + 0x168);" (assignment_expression "local_4c = *(char **)(param_1 + 0x168)" identifier = (pointer_expression "*(char **)(param_1 + 0x168)" * (cast_expression "(char **)(param_1 + 0x168)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x168)" ( (binary_expression "param_1 + 0x168" identifier + number_literal) ))))) ;) })) (expression_statement "pcStack_44 = (char *)0x6;" (assignment_expression "pcStack_44 = (char *)0x6" identifier = (cast_expression "(char *)0x6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcStack_48 = param_3;" (assignment_expression "pcStack_48 = param_3" identifier = identifier) ;) (expression_statement "FUN_000ed680();" (call_expression "FUN_000ed680()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar12 = (undefined1 *)0xffffffef < &local_4c;" (assignment_expression "bVar12 = (undefined1 *)0xffffffef < &local_4c" identifier = (binary_expression "(undefined1 *)0xffffffef < &local_4c" (cast_expression "(undefined1 *)0xffffffef" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (pointer_expression "&local_4c" & identifier))) ;) (expression_statement "bVar13 = &stack0x00000000 == (undefined1 *)0x3c;" (assignment_expression "bVar13 = &stack0x00000000 == (undefined1 *)0x3c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x3c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x3c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) })) })) (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" identifier = number_literal) ;) (expression_statement "pbVar10 = *(byte **)(param_3 + 0x20);" (assignment_expression "pbVar10 = *(byte **)(param_3 + 0x20)" identifier = (pointer_expression "*(byte **)(param_3 + 0x20)" * (cast_expression "(byte **)(param_3 + 0x20)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_3 + 0x20)" ( (binary_expression "param_3 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pbVar11 = (byte *)".interp";" (assignment_expression "pbVar11 = (byte *)".interp"" identifier = (cast_expression "(byte *)".interp"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal "".interp"" " string_content "))) ;) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);" do (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    }" { (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (expression_statement "bVar12 = *pbVar10 < *pbVar11;" (assignment_expression "bVar12 = *pbVar10 < *pbVar11" identifier = (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" * identifier) < (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "bVar13 = *pbVar10 == *pbVar11;" (assignment_expression "bVar13 = *pbVar10 == *pbVar11" identifier = (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" * identifier) == (pointer_expression "*pbVar11" * identifier))) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1" identifier = (binary_expression "pbVar11 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar14 * -2" identifier + (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar13)" ( identifier )) ;) (if_statement "if (((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))) {\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" if (parenthesized_expression "(((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0))))" ( (binary_expression "((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))" (parenthesized_expression "((!bVar12 && !bVar13) == bVar12)" ( (binary_expression "(!bVar12 && !bVar13) == bVar12" (parenthesized_expression "(!bVar12 && !bVar13)" ( (binary_expression "!bVar12 && !bVar13" (unary_expression "!bVar12" ! identifier) && (unary_expression "!bVar13" ! identifier)) )) == identifier) )) && (parenthesized_expression "((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))" ( (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0))" ( (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)" (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + 0xac)" * (cast_expression "(char *)(*(int *)(param_1 + 4) + 0xac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0xac)" ( (binary_expression "*(int *)(param_1 + 4) + 0xac" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 4) + 0xbc)" * (cast_expression "(int *)(*(int *)(param_1 + 4) + 0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 4) + 0xbc)" ( (binary_expression "*(int *)(param_1 + 4) + 0xbc" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) )) ))) )) (compound_statement "{\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" { (if_statement "if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x16c) == 0)" ( (binary_expression "*(int *)(param_1 + 0x16c) == 0" (pointer_expression "*(int *)(param_1 + 0x16c)" * (cast_expression "(int *)(param_1 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x16c)" ( (binary_expression "param_1 + 0x16c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }" { (expression_statement "pcStack_48 = (char *)0x3;" (assignment_expression "pcStack_48 = (char *)0x3" identifier = (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = param_1;" (assignment_expression "local_4c = param_1" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" identifier = identifier) ;) (expression_statement "FUN_000acf30();" (call_expression "FUN_000acf30()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }" else (compound_statement "{\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }" { (expression_statement "local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";" (assignment_expression "local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment"" identifier = (string_literal ""multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "local_4c = (char *)gettext();" (assignment_expression "local_4c = (char *)gettext()" identifier = (cast_expression "(char *)gettext()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "gettext()" identifier (argument_list "()" ( ))))) ;) (expression_statement "FUN_00082900();" (call_expression "FUN_00082900()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "local_4c = *(char **)(param_1 + 0x16c);" (assignment_expression "local_4c = *(char **)(param_1 + 0x16c)" identifier = (pointer_expression "*(char **)(param_1 + 0x16c)" * (cast_expression "(char **)(param_1 + 0x16c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x16c)" ( (binary_expression "param_1 + 0x16c" identifier + number_literal) ))))) ;) (expression_statement "pcStack_48 = param_3;" (assignment_expression "pcStack_48 = param_3" identifier = identifier) ;) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" identifier = identifier) ;) (expression_statement "FUN_000ed680();" (call_expression "FUN_000ed680()" identifier (argument_list "()" ( ))) ;) })) })) (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 (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (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) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;)) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )))) & LIT) )) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT | (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT)) ))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (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) )))) != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) & LIT) )) == LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_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) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) == (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) && (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) ))) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (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 (subscript_expression IDENT [ LIT ]) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) | LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) && (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) || (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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 (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) ;) })) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (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) )))) ^ (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence '))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) ))) )) ))) )) (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) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (return_statement return ;) })))
(function_definition "void FUN_000ad050(char *param_1,int param_2,char *param_3)\n\n{\n  uint uVar1;\n  uint uVar2;\n  char cVar3;\n  char cVar4;\n  uint uVar5;\n  char *pcVar6;\n  char *pcVar7;\n  int iVar8;\n  int *piVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  char *local_4c;\n  char *pcStack_48;\n  char *pcStack_44;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0xad059;\n  uVar1 = *(uint *)(param_3 + 0x54);\n  if ((uVar1 & 2) == 0) {\n    pcStack_44 = "attach_allocated_section_to_segment";\n    local_4c = "../../gold/layout.cc";\n    pcStack_48 = (char *)0x7af;\n                    \n    FUN_0008b620();\n  }\n  local_4c = *(char **)(DAT_0033f2f0 + 8);\n  if (local_4c == (char *)0x0) {\nLAB_000ad5a2:\n    pcStack_44 = "options";\n    local_4c = "../../gold/parameters.h";\n    pcStack_48 = (char *)0x5c;\n                    \n    FUN_0008b620();\n  }\n  if ((local_4c[0x318d] == '\0') && (*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')) {\n    uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6;\n    if ((uVar1 & 4) != 0) {\n      uVar5 = uVar5 | 1;\n    }\n    pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c));\n    pcStack_44 = (char *)&local_24;\n    pcStack_48 = *(char **)(param_3 + 0x20);\n    cVar3 = FUN_000d8f30();\n    if ((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)) {\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }\n    pcStack_48 = (char *)0x1;\n    local_4c = param_1;\n    pcStack_44 = pcVar6;\n    pcVar7 = (char *)FUN_000acf30();\n    if ((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)) {\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }\n    pcStack_48 = param_1;\n    local_4c = pcVar7;\n    pcStack_44 = param_3;\n    FUN_000ed550();\n    if (cVar3 != '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }\n    if (param_3[0x92] < '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }\nLAB_000ad22a:\n    if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\nLAB_000ad234:\n    if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n    bVar12 = false;\n    bVar13 = (param_3[0x91] & 0x20U) == 0;\n    if (!bVar13) {\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }\n    iVar8 = 8;\n    pbVar10 = *(byte **)(param_3 + 0x20);\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    if (((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))) {\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000ad050(char *param_1,int param_2,char *param_3)" (identifier "FUN_000ad050") (parameter_list "(char *param_1,int param_2,char *param_3)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  char cVar3;\n  char cVar4;\n  uint uVar5;\n  char *pcVar6;\n  char *pcVar7;\n  int iVar8;\n  int *piVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  bool bVar12;\n  bool bVar13;\n  byte bVar14;\n  char *local_4c;\n  char *pcStack_48;\n  char *pcStack_44;\n  undefined4 local_24;\n  undefined4 local_20;\n  undefined4 uStack_14;\n  \n  bVar14 = 0;\n  uStack_14 = 0xad059;\n  uVar1 = *(uint *)(param_3 + 0x54);\n  if ((uVar1 & 2) == 0) {\n    pcStack_44 = "attach_allocated_section_to_segment";\n    local_4c = "../../gold/layout.cc";\n    pcStack_48 = (char *)0x7af;\n                    \n    FUN_0008b620();\n  }\n  local_4c = *(char **)(DAT_0033f2f0 + 8);\n  if (local_4c == (char *)0x0) {\nLAB_000ad5a2:\n    pcStack_44 = "options";\n    local_4c = "../../gold/parameters.h";\n    pcStack_48 = (char *)0x5c;\n                    \n    FUN_0008b620();\n  }\n  if ((local_4c[0x318d] == '\0') && (*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')) {\n    uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6;\n    if ((uVar1 & 4) != 0) {\n      uVar5 = uVar5 | 1;\n    }\n    pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c));\n    pcStack_44 = (char *)&local_24;\n    pcStack_48 = *(char **)(param_3 + 0x20);\n    cVar3 = FUN_000d8f30();\n    if ((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)) {\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }\n    pcStack_48 = (char *)0x1;\n    local_4c = param_1;\n    pcStack_44 = pcVar6;\n    pcVar7 = (char *)FUN_000acf30();\n    if ((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)) {\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }\n    pcStack_48 = param_1;\n    local_4c = pcVar7;\n    pcStack_44 = param_3;\n    FUN_000ed550();\n    if (cVar3 != '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }\n    if (param_3[0x92] < '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }\nLAB_000ad22a:\n    if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\nLAB_000ad234:\n    if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n    bVar12 = false;\n    bVar13 = (param_3[0x91] & 0x20U) == 0;\n    if (!bVar13) {\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }\n    iVar8 = 8;\n    pbVar10 = *(byte **)(param_3 + 0x20);\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    if (((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))) {\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n  }\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "bool bVar12;" (primitive_type "bool") (identifier "bVar12") (; ";")) (declaration "bool bVar13;" (primitive_type "bool") (identifier "bVar13") (; ";")) (declaration "byte bVar14;" (type_identifier "byte") (identifier "bVar14") (; ";")) (declaration "char *local_4c;" (primitive_type "char") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "char *pcStack_48;" (primitive_type "char") (pointer_declarator "*pcStack_48" (* "*") (identifier "pcStack_48")) (; ";")) (declaration "char *pcStack_44;" (primitive_type "char") (pointer_declarator "*pcStack_44" (* "*") (identifier "pcStack_44")) (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar14 = 0;" (assignment_expression "bVar14 = 0" (identifier "bVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0xad059;" (assignment_expression "uStack_14 = 0xad059" (identifier "uStack_14") (= "=") (number_literal "0xad059")) (; ";")) (expression_statement "uVar1 = *(uint *)(param_3 + 0x54);" (assignment_expression "uVar1 = *(uint *)(param_3 + 0x54)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(param_3 + 0x54)" (* "*") (cast_expression "(uint *)(param_3 + 0x54)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x54)" (( "(") (binary_expression "param_3 + 0x54" (identifier "param_3") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (if_statement "if ((uVar1 & 2) == 0) {\n    pcStack_44 = "attach_allocated_section_to_segment";\n    local_4c = "../../gold/layout.cc";\n    pcStack_48 = (char *)0x7af;\n                    \n    FUN_0008b620();\n  }" (if "if") (parenthesized_expression "((uVar1 & 2) == 0)" (( "(") (binary_expression "(uVar1 & 2) == 0" (parenthesized_expression "(uVar1 & 2)" (( "(") (binary_expression "uVar1 & 2" (identifier "uVar1") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pcStack_44 = "attach_allocated_section_to_segment";\n    local_4c = "../../gold/layout.cc";\n    pcStack_48 = (char *)0x7af;\n                    \n    FUN_0008b620();\n  }" ({ "{") (expression_statement "pcStack_44 = "attach_allocated_section_to_segment";" (assignment_expression "pcStack_44 = "attach_allocated_section_to_segment"" (identifier "pcStack_44") (= "=") (string_literal ""attach_allocated_section_to_segment"" (" """) (string_content "attach_allocated_section_to_segment") (" """))) (; ";")) (expression_statement "local_4c = "../../gold/layout.cc";" (assignment_expression "local_4c = "../../gold/layout.cc"" (identifier "local_4c") (= "=") (string_literal ""../../gold/layout.cc"" (" """) (string_content "../../gold/layout.cc") (" """))) (; ";")) (expression_statement "pcStack_48 = (char *)0x7af;" (assignment_expression "pcStack_48 = (char *)0x7af" (identifier "pcStack_48") (= "=") (cast_expression "(char *)0x7af" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7af"))) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_4c = *(char **)(DAT_0033f2f0 + 8);" (assignment_expression "local_4c = *(char **)(DAT_0033f2f0 + 8)" (identifier "local_4c") (= "=") (pointer_expression "*(char **)(DAT_0033f2f0 + 8)" (* "*") (cast_expression "(char **)(DAT_0033f2f0 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 8)" (( "(") (binary_expression "DAT_0033f2f0 + 8" (identifier "DAT_0033f2f0") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (local_4c == (char *)0x0) {\nLAB_000ad5a2:\n    pcStack_44 = "options";\n    local_4c = "../../gold/parameters.h";\n    pcStack_48 = (char *)0x5c;\n                    \n    FUN_0008b620();\n  }" (if "if") (parenthesized_expression "(local_4c == (char *)0x0)" (( "(") (binary_expression "local_4c == (char *)0x0" (identifier "local_4c") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000ad5a2:\n    pcStack_44 = "options";\n    local_4c = "../../gold/parameters.h";\n    pcStack_48 = (char *)0x5c;\n                    \n    FUN_0008b620();\n  }" ({ "{") (labeled_statement "LAB_000ad5a2:\n    pcStack_44 = "options";" (statement_identifier "LAB_000ad5a2") (: ":") (expression_statement "pcStack_44 = "options";" (assignment_expression "pcStack_44 = "options"" (identifier "pcStack_44") (= "=") (string_literal ""options"" (" """) (string_content "options") (" """))) (; ";"))) (expression_statement "local_4c = "../../gold/parameters.h";" (assignment_expression "local_4c = "../../gold/parameters.h"" (identifier "local_4c") (= "=") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """))) (; ";")) (expression_statement "pcStack_48 = (char *)0x5c;" (assignment_expression "pcStack_48 = (char *)0x5c" (identifier "pcStack_48") (= "=") (cast_expression "(char *)0x5c" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5c"))) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((local_4c[0x318d] == '\0') && (*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')) {\n    uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6;\n    if ((uVar1 & 4) != 0) {\n      uVar5 = uVar5 | 1;\n    }\n    pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c));\n    pcStack_44 = (char *)&local_24;\n    pcStack_48 = *(char **)(param_3 + 0x20);\n    cVar3 = FUN_000d8f30();\n    if ((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)) {\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }\n    pcStack_48 = (char *)0x1;\n    local_4c = param_1;\n    pcStack_44 = pcVar6;\n    pcVar7 = (char *)FUN_000acf30();\n    if ((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)) {\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }\n    pcStack_48 = param_1;\n    local_4c = pcVar7;\n    pcStack_44 = param_3;\n    FUN_000ed550();\n    if (cVar3 != '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }\n    if (param_3[0x92] < '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }\nLAB_000ad22a:\n    if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\nLAB_000ad234:\n    if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n    bVar12 = false;\n    bVar13 = (param_3[0x91] & 0x20U) == 0;\n    if (!bVar13) {\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }\n    iVar8 = 8;\n    pbVar10 = *(byte **)(param_3 + 0x20);\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    if (((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))) {\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n  }" (if "if") (parenthesized_expression "((local_4c[0x318d] == '\0') && (*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0'))" (( "(") (binary_expression "(local_4c[0x318d] == '\0') && (*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')" (parenthesized_expression "(local_4c[0x318d] == '\0')" (( "(") (binary_expression "local_4c[0x318d] == '\0'" (subscript_expression "local_4c[0x318d]" (identifier "local_4c") ([ "[") (number_literal "0x318d") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + 0xac)" (* "*") (cast_expression "(char *)(*(int *)(param_1 + 4) + 0xac)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 4) + 0xac)" (( "(") (binary_expression "*(int *)(param_1 + 4) + 0xac" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xac")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6;\n    if ((uVar1 & 4) != 0) {\n      uVar5 = uVar5 | 1;\n    }\n    pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c));\n    pcStack_44 = (char *)&local_24;\n    pcStack_48 = *(char **)(param_3 + 0x20);\n    cVar3 = FUN_000d8f30();\n    if ((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)) {\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }\n    pcStack_48 = (char *)0x1;\n    local_4c = param_1;\n    pcStack_44 = pcVar6;\n    pcVar7 = (char *)FUN_000acf30();\n    if ((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)) {\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }\n    pcStack_48 = param_1;\n    local_4c = pcVar7;\n    pcStack_44 = param_3;\n    FUN_000ed550();\n    if (cVar3 != '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }\n    if (param_3[0x92] < '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }\nLAB_000ad22a:\n    if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\nLAB_000ad234:\n    if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n    bVar12 = false;\n    bVar13 = (param_3[0x91] & 0x20U) == 0;\n    if (!bVar13) {\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }\n    iVar8 = 8;\n    pbVar10 = *(byte **)(param_3 + 0x20);\n    pbVar11 = (byte *)".interp";\n    do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);\n    if (((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))) {\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }\n  }" ({ "{") (expression_statement "uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6;" (assignment_expression "uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6" (identifier "uVar5") (= "=") (binary_expression "(-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6" (parenthesized_expression "(-(uint)((uVar1 & 1) == 0) & 0xfffffffe)" (( "(") (binary_expression "-(uint)((uVar1 & 1) == 0) & 0xfffffffe" (unary_expression "-(uint)((uVar1 & 1) == 0)" (- "-") (call_expression "(uint)((uVar1 & 1) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uVar1 & 1) == 0)" (( "(") (binary_expression "(uVar1 & 1) == 0" (parenthesized_expression "(uVar1 & 1)" (( "(") (binary_expression "uVar1 & 1" (identifier "uVar1") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xfffffffe")) () ")")) (+ "+") (number_literal "6"))) (; ";")) (if_statement "if ((uVar1 & 4) != 0) {\n      uVar5 = uVar5 | 1;\n    }" (if "if") (parenthesized_expression "((uVar1 & 4) != 0)" (( "(") (binary_expression "(uVar1 & 4) != 0" (parenthesized_expression "(uVar1 & 4)" (( "(") (binary_expression "uVar1 & 4" (identifier "uVar1") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar5 = uVar5 | 1;\n    }" ({ "{") (expression_statement "uVar5 = uVar5 | 1;" (assignment_expression "uVar5 = uVar5 | 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 | 1" (identifier "uVar5") (| "|") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c));" (assignment_expression "pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c))" (identifier "pcVar6") (= "=") (cast_expression "(char *)(uVar5 | *(uint *)(param_3 + 0x9c))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar5 | *(uint *)(param_3 + 0x9c))" (( "(") (binary_expression "uVar5 | *(uint *)(param_3 + 0x9c)" (identifier "uVar5") (| "|") (pointer_expression "*(uint *)(param_3 + 0x9c)" (* "*") (cast_expression "(uint *)(param_3 + 0x9c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x9c)" (( "(") (binary_expression "param_3 + 0x9c" (identifier "param_3") (+ "+") (number_literal "0x9c")) () ")"))))) () ")")))) (; ";")) (expression_statement "pcStack_44 = (char *)&local_24;" (assignment_expression "pcStack_44 = (char *)&local_24" (identifier "pcStack_44") (= "=") (cast_expression "(char *)&local_24" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_24" (& "&") (identifier "local_24")))) (; ";")) (expression_statement "pcStack_48 = *(char **)(param_3 + 0x20);" (assignment_expression "pcStack_48 = *(char **)(param_3 + 0x20)" (identifier "pcStack_48") (= "=") (pointer_expression "*(char **)(param_3 + 0x20)" (* "*") (cast_expression "(char **)(param_3 + 0x20)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x20)" (( "(") (binary_expression "param_3 + 0x20" (identifier "param_3") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "cVar3 = FUN_000d8f30();" (assignment_expression "cVar3 = FUN_000d8f30()" (identifier "cVar3") (= "=") (call_expression "FUN_000d8f30()" (identifier "FUN_000d8f30") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)) {\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }" (if "if") (parenthesized_expression "((-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9))" (( "(") (binary_expression "(-1 < param_3[0x92]) &&\n       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)" (parenthesized_expression "(-1 < param_3[0x92])" (( "(") (binary_expression "-1 < param_3[0x92]" (number_literal "-1") (< "<") (subscript_expression "param_3[0x92]" (identifier "param_3") ([ "[") (number_literal "0x92") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "(piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)" (( "(") (comma_expression "piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9" (assignment_expression "piVar9 = *(int **)(param_1 + 0x124)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(param_1 + 0x124)" (* "*") (cast_expression "(int **)(param_1 + 0x124)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")"))))) (, ",") (binary_expression "*(int **)(param_1 + 0x128) != piVar9" (pointer_expression "*(int **)(param_1 + 0x128)" (* "*") (cast_expression "(int **)(param_1 + 0x128)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (!= "!=") (identifier "piVar9"))) () ")"))) () ")")) (compound_statement "{\n      do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);\n    }" ({ "{") (do_statement "do {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      } while (*(int **)(param_1 + 0x128) != piVar9);" (do "do") (compound_statement "{\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }\nLAB_000ad348:\n        piVar9 = piVar9 + 1;\n      }" ({ "{") (expression_statement "local_4c = (char *)*piVar9;" (assignment_expression "local_4c = (char *)*piVar9" (identifier "local_4c") (= "=") (cast_expression "(char *)*piVar9" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar9" (* "*") (identifier "piVar9")))) (; ";")) (if_statement "if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }" (if "if") (parenthesized_expression "((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0))" (( "(") (binary_expression "(*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)" (parenthesized_expression "(*(int *)(local_4c + 0x194) == 1)" (( "(") (binary_expression "*(int *)(local_4c + 0x194) == 1" (pointer_expression "*(int *)(local_4c + 0x194)" (* "*") (cast_expression "(int *)(local_4c + 0x194)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 0x194)" (( "(") (binary_expression "local_4c + 0x194" (identifier "local_4c") (+ "+") (number_literal "0x194")) () ")")))) (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "((local_4c[0x19c] & 8U) == 0)" (( "(") (binary_expression "(local_4c[0x19c] & 8U) == 0" (parenthesized_expression "(local_4c[0x19c] & 8U)" (( "(") (binary_expression "local_4c[0x19c] & 8U" (subscript_expression "local_4c[0x19c]" (identifier "local_4c") ([ "[") (number_literal "0x19c") (] "]")) (& "&") (number_literal "8U")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          iVar8 = *(int *)(DAT_0033f2f0 + 8);\n          if (iVar8 == 0) goto LAB_000ad5a2;\n          if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }\n        }" ({ "{") (expression_statement "iVar8 = *(int *)(DAT_0033f2f0 + 8);" (assignment_expression "iVar8 = *(int *)(DAT_0033f2f0 + 8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 8)" (( "(") (binary_expression "DAT_0033f2f0 + 8" (identifier "DAT_0033f2f0") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 0) goto LAB_000ad5a2;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000ad5a2;" (goto "goto") (statement_identifier "LAB_000ad5a2") (; ";"))) (if_statement "if (((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }" (if "if") (parenthesized_expression "(((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0))))" (( "(") (binary_expression "((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&\n             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))" (parenthesized_expression "((*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0))" (( "(") (binary_expression "(*(char *)(iVar8 + 0x253d) != '\0') ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)" (parenthesized_expression "(*(char *)(iVar8 + 0x253d) != '\0')" (( "(") (binary_expression "*(char *)(iVar8 + 0x253d) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x253d)" (* "*") (cast_expression "(char *)(iVar8 + 0x253d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x253d)" (( "(") (binary_expression "iVar8 + 0x253d" (identifier "iVar8") (+ "+") (number_literal "0x253d")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)" (( "(") (binary_expression "(((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0" (parenthesized_expression "(((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2)" (( "(") (binary_expression "((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2" (parenthesized_expression "((uint)pcVar6 ^ *(uint *)(local_4c + 0x198))" (( "(") (binary_expression "(uint)pcVar6 ^ *(uint *)(local_4c + 0x198)" (cast_expression "(uint)pcVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar6")) (^ "^") (pointer_expression "*(uint *)(local_4c + 0x198)" (* "*") (cast_expression "(uint *)(local_4c + 0x198)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 0x198)" (( "(") (binary_expression "local_4c + 0x198" (identifier "local_4c") (+ "+") (number_literal "0x198")) () ")"))))) () ")")) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))" (( "(") (parenthesized_expression "((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0))" (( "(") (binary_expression "(*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')) ||\n              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)" (parenthesized_expression "(*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0'))" (( "(") (binary_expression "*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&\n               (*(char *)(iVar8 + 0x32c9) == '\0')" (binary_expression "*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0'" (pointer_expression "*(char *)(*(int *)(param_2 + 4) + 0x30)" (* "*") (cast_expression "(char *)(*(int *)(param_2 + 4) + 0x30)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 4) + 0x30)" (( "(") (binary_expression "*(int *)(param_2 + 4) + 0x30" (pointer_expression "*(int *)(param_2 + 4)" (* "*") (cast_expression "(int *)(param_2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x30")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (&& "&&") (parenthesized_expression "(*(char *)(iVar8 + 0x32c9) == '\0')" (( "(") (binary_expression "*(char *)(iVar8 + 0x32c9) == '\0'" (pointer_expression "*(char *)(iVar8 + 0x32c9)" (* "*") (cast_expression "(char *)(iVar8 + 0x32c9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x32c9)" (( "(") (binary_expression "iVar8 + 0x32c9" (identifier "iVar8") (+ "+") (number_literal "0x32c9")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)" (( "(") (binary_expression "(((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0" (parenthesized_expression "(((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1)" (( "(") (binary_expression "((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1" (parenthesized_expression "((uint)pcVar6 ^ *(uint *)(local_4c + 0x198))" (( "(") (binary_expression "(uint)pcVar6 ^ *(uint *)(local_4c + 0x198)" (cast_expression "(uint)pcVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar6")) (^ "^") (pointer_expression "*(uint *)(local_4c + 0x198)" (* "*") (cast_expression "(uint *)(local_4c + 0x198)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 0x198)" (( "(") (binary_expression "local_4c + 0x198" (identifier "local_4c") (+ "+") (number_literal "0x198")) () ")"))))) () ")")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }\n            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }\n          }" ({ "{") (if_statement "if (*(char *)(iVar8 + 0x4128) != '\0') {\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }" (if "if") (parenthesized_expression "(*(char *)(iVar8 + 0x4128) != '\0')" (( "(") (binary_expression "*(char *)(iVar8 + 0x4128) != '\0'" (pointer_expression "*(char *)(iVar8 + 0x4128)" (* "*") (cast_expression "(char *)(iVar8 + 0x4128)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x4128)" (( "(") (binary_expression "iVar8 + 0x4128" (identifier "iVar8") (+ "+") (number_literal "0x4128")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              iVar8 = *(int *)(param_3 + 0x50);\n              cVar4 = FUN_000ea480();\n              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;\n              local_4c = (char *)*piVar9;\n            }" ({ "{") (expression_statement "iVar8 = *(int *)(param_3 + 0x50);" (assignment_expression "iVar8 = *(int *)(param_3 + 0x50)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(param_3 + 0x50)" (* "*") (cast_expression "(int *)(param_3 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x50)" (( "(") (binary_expression "param_3 + 0x50" (identifier "param_3") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "cVar4 = FUN_000ea480();" (assignment_expression "cVar4 = FUN_000ea480()" (identifier "cVar4") (= "=") (call_expression "FUN_000ea480()" (identifier "FUN_000ea480") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;" (if "if") (parenthesized_expression "((iVar8 == 8) == (bool)cVar4)" (( "(") (binary_expression "(iVar8 == 8) == (bool)cVar4" (parenthesized_expression "(iVar8 == 8)" (( "(") (binary_expression "iVar8 == 8" (identifier "iVar8") (== "==") (number_literal "8")) () ")")) (== "==") (cast_expression "(bool)cVar4" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "cVar4"))) () ")")) (goto_statement "goto LAB_000ad348;" (goto "goto") (statement_identifier "LAB_000ad348") (; ";"))) (expression_statement "local_4c = (char *)*piVar9;" (assignment_expression "local_4c = (char *)*piVar9" (identifier "local_4c") (= "=") (cast_expression "(char *)*piVar9" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar9" (* "*") (identifier "piVar9")))) (; ";")) (} "}"))) (if_statement "if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)) {\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }" (if "if") (parenthesized_expression "(((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0))" (( "(") (binary_expression "((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||\n               ((local_4c[0x19c] & 4U) != 0)" (parenthesized_expression "((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8))" (( "(") (binary_expression "(-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)" (parenthesized_expression "(-1 < param_3[0x91])" (( "(") (binary_expression "-1 < param_3[0x91]" (number_literal "-1") (< "<") (subscript_expression "param_3[0x91]" (identifier "param_3") ([ "[") (number_literal "0x91") (] "]"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(param_3 + 0x50) == 8)" (( "(") (binary_expression "*(int *)(param_3 + 0x50) == 8" (pointer_expression "*(int *)(param_3 + 0x50)" (* "*") (cast_expression "(int *)(param_3 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x50)" (( "(") (binary_expression "param_3 + 0x50" (identifier "param_3") (+ "+") (number_literal "0x50")) () ")")))) (== "==") (number_literal "8")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((local_4c[0x19c] & 4U) != 0)" (( "(") (binary_expression "(local_4c[0x19c] & 4U) != 0" (parenthesized_expression "(local_4c[0x19c] & 4U)" (( "(") (binary_expression "local_4c[0x19c] & 4U" (subscript_expression "local_4c[0x19c]" (identifier "local_4c") ([ "[") (number_literal "0x19c") (] "]")) (& "&") (number_literal "4U")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n              if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }\n              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;\n              break;\n            }" ({ "{") (if_statement "if (cVar3 == '\0') {\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }\n              else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                pcStack_44 = param_3;\n                pcStack_48 = param_1;\n                FUN_000ed550();\n              }" ({ "{") (expression_statement "pcStack_44 = param_3;" (assignment_expression "pcStack_44 = param_3" (identifier "pcStack_44") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pcStack_48 = param_1;" (assignment_expression "pcStack_48 = param_1" (identifier "pcStack_48") (= "=") (identifier "param_1")) (; ";")) (expression_statement "FUN_000ed550();" (call_expression "FUN_000ed550()" (identifier "FUN_000ed550") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }" (else "else") (compound_statement "{\n                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;\n                pcStack_48 = param_3;\n                FUN_000ec8e0();\n                iVar8 = *piVar9;\n                if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }\n                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;\n                *(undefined4 *)(iVar8 + 0x15c) = local_24;\n                *(undefined4 *)(iVar8 + 0x160) = local_20;\n                *(undefined4 *)(iVar8 + 0x164) = local_24;\n                *(undefined4 *)(iVar8 + 0x168) = local_20;\n              }" ({ "{") (if_statement "if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;" (if "if") (parenthesized_expression "((local_4c[0x19c] & 2U) != 0)" (( "(") (binary_expression "(local_4c[0x19c] & 2U) != 0" (parenthesized_expression "(local_4c[0x19c] & 2U)" (( "(") (binary_expression "local_4c[0x19c] & 2U" (subscript_expression "local_4c[0x19c]" (identifier "local_4c") ([ "[") (number_literal "0x19c") (] "]")) (& "&") (number_literal "2U")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000ad348;" (goto "goto") (statement_identifier "LAB_000ad348") (; ";"))) (expression_statement "pcStack_48 = param_3;" (assignment_expression "pcStack_48 = param_3" (identifier "pcStack_48") (= "=") (identifier "param_3")) (; ";")) (expression_statement "FUN_000ec8e0();" (call_expression "FUN_000ec8e0()" (identifier "FUN_000ec8e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar8 = *piVar9;" (assignment_expression "iVar8 = *piVar9" (identifier "iVar8") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (if_statement "if (*(int *)(iVar8 + 0x194) != 7) {\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }" (if "if") (parenthesized_expression "(*(int *)(iVar8 + 0x194) != 7)" (( "(") (binary_expression "*(int *)(iVar8 + 0x194) != 7" (pointer_expression "*(int *)(iVar8 + 0x194)" (* "*") (cast_expression "(int *)(iVar8 + 0x194)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x194)" (( "(") (binary_expression "iVar8 + 0x194" (identifier "iVar8") (+ "+") (number_literal "0x194")) () ")")))) (!= "!=") (number_literal "7")) () ")")) (compound_statement "{\n                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;\n                }" ({ "{") (expression_statement "*(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;" (assignment_expression "*(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6" (pointer_expression "*(uint *)(iVar8 + 0x198)" (* "*") (cast_expression "(uint *)(iVar8 + 0x198)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x198)" (( "(") (binary_expression "iVar8 + 0x198" (identifier "iVar8") (+ "+") (number_literal "0x198")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar8 + 0x198) | (uint)pcVar6" (pointer_expression "*(uint *)(iVar8 + 0x198)" (* "*") (cast_expression "(uint *)(iVar8 + 0x198)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x198)" (( "(") (binary_expression "iVar8 + 0x198" (identifier "iVar8") (+ "+") (number_literal "0x198")) () ")")))) (| "|") (cast_expression "(uint)pcVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar6")))) (; ";")) (} "}"))) (expression_statement "*(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;" (assignment_expression "*(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2" (pointer_expression "*(byte *)(iVar8 + 0x19c)" (* "*") (cast_expression "(byte *)(iVar8 + 0x19c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x19c)" (( "(") (binary_expression "iVar8 + 0x19c" (identifier "iVar8") (+ "+") (number_literal "0x19c")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar8 + 0x19c) | 2" (pointer_expression "*(byte *)(iVar8 + 0x19c)" (* "*") (cast_expression "(byte *)(iVar8 + 0x19c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x19c)" (( "(") (binary_expression "iVar8 + 0x19c" (identifier "iVar8") (+ "+") (number_literal "0x19c")) () ")")))) (| "|") (number_literal "2"))) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0x15c) = local_24;" (assignment_expression "*(undefined4 *)(iVar8 + 0x15c) = local_24" (pointer_expression "*(undefined4 *)(iVar8 + 0x15c)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x15c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x15c)" (( "(") (binary_expression "iVar8 + 0x15c" (identifier "iVar8") (+ "+") (number_literal "0x15c")) () ")")))) (= "=") (identifier "local_24")) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0x160) = local_20;" (assignment_expression "*(undefined4 *)(iVar8 + 0x160) = local_20" (pointer_expression "*(undefined4 *)(iVar8 + 0x160)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x160)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x160)" (( "(") (binary_expression "iVar8 + 0x160" (identifier "iVar8") (+ "+") (number_literal "0x160")) () ")")))) (= "=") (identifier "local_20")) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0x164) = local_24;" (assignment_expression "*(undefined4 *)(iVar8 + 0x164) = local_24" (pointer_expression "*(undefined4 *)(iVar8 + 0x164)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x164)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x164)" (( "(") (binary_expression "iVar8 + 0x164" (identifier "iVar8") (+ "+") (number_literal "0x164")) () ")")))) (= "=") (identifier "local_24")) (; ";")) (expression_statement "*(undefined4 *)(iVar8 + 0x168) = local_20;" (assignment_expression "*(undefined4 *)(iVar8 + 0x168) = local_20" (pointer_expression "*(undefined4 *)(iVar8 + 0x168)" (* "*") (cast_expression "(undefined4 *)(iVar8 + 0x168)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x168)" (( "(") (binary_expression "iVar8 + 0x168" (identifier "iVar8") (+ "+") (number_literal "0x168")) () ")")))) (= "=") (identifier "local_20")) (; ";")) (} "}")))) (if_statement "if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;" (if "if") (parenthesized_expression "((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92]))" (( "(") (binary_expression "(*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])" (parenthesized_expression "(*(int **)(param_1 + 0x128) != piVar9)" (( "(") (binary_expression "*(int **)(param_1 + 0x128) != piVar9" (pointer_expression "*(int **)(param_1 + 0x128)" (* "*") (cast_expression "(int **)(param_1 + 0x128)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (!= "!=") (identifier "piVar9")) () ")")) (&& "&&") (parenthesized_expression "(-1 < param_3[0x92])" (( "(") (binary_expression "-1 < param_3[0x92]" (number_literal "-1") (< "<") (subscript_expression "param_3[0x92]" (identifier "param_3") ([ "[") (number_literal "0x92") (] "]"))) () ")"))) () ")")) (goto_statement "goto LAB_000ad22a;" (goto "goto") (statement_identifier "LAB_000ad22a") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}"))) (} "}"))) (labeled_statement "LAB_000ad348:\n        piVar9 = piVar9 + 1;" (statement_identifier "LAB_000ad348") (: ":") (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" (identifier "piVar9") (= "=") (binary_expression "piVar9 + 1" (identifier "piVar9") (+ "+") (number_literal "1"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(*(int **)(param_1 + 0x128) != piVar9)" (( "(") (binary_expression "*(int **)(param_1 + 0x128) != piVar9" (pointer_expression "*(int **)(param_1 + 0x128)" (* "*") (cast_expression "(int **)(param_1 + 0x128)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (!= "!=") (identifier "piVar9")) () ")")) (; ";")) (} "}"))) (expression_statement "pcStack_48 = (char *)0x1;" (assignment_expression "pcStack_48 = (char *)0x1" (identifier "pcStack_48") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "local_4c = param_1;" (assignment_expression "local_4c = param_1" (identifier "local_4c") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" (identifier "pcStack_44") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "pcVar7 = (char *)FUN_000acf30();" (assignment_expression "pcVar7 = (char *)FUN_000acf30()" (identifier "pcVar7") (= "=") (cast_expression "(char *)FUN_000acf30()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000acf30()" (identifier "FUN_000acf30") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)) {\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }" (if "if") (parenthesized_expression "((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8))" (( "(") (binary_expression "(param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)" (parenthesized_expression "(param_3[0x91] < '\0')" (( "(") (binary_expression "param_3[0x91] < '\0'" (subscript_expression "param_3[0x91]" (identifier "param_3") ([ "[") (number_literal "0x91") (] "]")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_3 + 0x50) != 8)" (( "(") (binary_expression "*(int *)(param_3 + 0x50) != 8" (pointer_expression "*(int *)(param_3 + 0x50)" (* "*") (cast_expression "(int *)(param_3 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x50)" (( "(") (binary_expression "param_3 + 0x50" (identifier "param_3") (+ "+") (number_literal "0x50")) () ")")))) (!= "!=") (number_literal "8")) () ")"))) () ")")) (compound_statement "{\n      pcVar7[0x19c] = pcVar7[0x19c] | 4;\n    }" ({ "{") (expression_statement "pcVar7[0x19c] = pcVar7[0x19c] | 4;" (assignment_expression "pcVar7[0x19c] = pcVar7[0x19c] | 4" (subscript_expression "pcVar7[0x19c]" (identifier "pcVar7") ([ "[") (number_literal "0x19c") (] "]")) (= "=") (binary_expression "pcVar7[0x19c] | 4" (subscript_expression "pcVar7[0x19c]" (identifier "pcVar7") ([ "[") (number_literal "0x19c") (] "]")) (| "|") (number_literal "4"))) (; ";")) (} "}"))) (expression_statement "pcStack_48 = param_1;" (assignment_expression "pcStack_48 = param_1" (identifier "pcStack_48") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_4c = pcVar7;" (assignment_expression "local_4c = pcVar7" (identifier "local_4c") (= "=") (identifier "pcVar7")) (; ";")) (expression_statement "pcStack_44 = param_3;" (assignment_expression "pcStack_44 = param_3" (identifier "pcStack_44") (= "=") (identifier "param_3")) (; ";")) (expression_statement "FUN_000ed550();" (call_expression "FUN_000ed550()" (identifier "FUN_000ed550") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (cVar3 != '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      pcVar7[0x19c] = pcVar7[0x19c] | 2;\n      *(undefined4 *)(pcVar7 + 0x15c) = local_24;\n      *(undefined4 *)(pcVar7 + 0x160) = local_20;\n      *(undefined4 *)(pcVar7 + 0x164) = local_24;\n      *(undefined4 *)(pcVar7 + 0x168) = local_20;\n    }" ({ "{") (expression_statement "pcVar7[0x19c] = pcVar7[0x19c] | 2;" (assignment_expression "pcVar7[0x19c] = pcVar7[0x19c] | 2" (subscript_expression "pcVar7[0x19c]" (identifier "pcVar7") ([ "[") (number_literal "0x19c") (] "]")) (= "=") (binary_expression "pcVar7[0x19c] | 2" (subscript_expression "pcVar7[0x19c]" (identifier "pcVar7") ([ "[") (number_literal "0x19c") (] "]")) (| "|") (number_literal "2"))) (; ";")) (expression_statement "*(undefined4 *)(pcVar7 + 0x15c) = local_24;" (assignment_expression "*(undefined4 *)(pcVar7 + 0x15c) = local_24" (pointer_expression "*(undefined4 *)(pcVar7 + 0x15c)" (* "*") (cast_expression "(undefined4 *)(pcVar7 + 0x15c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 0x15c)" (( "(") (binary_expression "pcVar7 + 0x15c" (identifier "pcVar7") (+ "+") (number_literal "0x15c")) () ")")))) (= "=") (identifier "local_24")) (; ";")) (expression_statement "*(undefined4 *)(pcVar7 + 0x160) = local_20;" (assignment_expression "*(undefined4 *)(pcVar7 + 0x160) = local_20" (pointer_expression "*(undefined4 *)(pcVar7 + 0x160)" (* "*") (cast_expression "(undefined4 *)(pcVar7 + 0x160)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 0x160)" (( "(") (binary_expression "pcVar7 + 0x160" (identifier "pcVar7") (+ "+") (number_literal "0x160")) () ")")))) (= "=") (identifier "local_20")) (; ";")) (expression_statement "*(undefined4 *)(pcVar7 + 0x164) = local_24;" (assignment_expression "*(undefined4 *)(pcVar7 + 0x164) = local_24" (pointer_expression "*(undefined4 *)(pcVar7 + 0x164)" (* "*") (cast_expression "(undefined4 *)(pcVar7 + 0x164)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 0x164)" (( "(") (binary_expression "pcVar7 + 0x164" (identifier "pcVar7") (+ "+") (number_literal "0x164")) () ")")))) (= "=") (identifier "local_24")) (; ";")) (expression_statement "*(undefined4 *)(pcVar7 + 0x168) = local_20;" (assignment_expression "*(undefined4 *)(pcVar7 + 0x168) = local_20" (pointer_expression "*(undefined4 *)(pcVar7 + 0x168)" (* "*") (cast_expression "(undefined4 *)(pcVar7 + 0x168)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 0x168)" (( "(") (binary_expression "pcVar7 + 0x168" (identifier "pcVar7") (+ "+") (number_literal "0x168")) () ")")))) (= "=") (identifier "local_20")) (; ";")) (} "}"))) (if_statement "if (param_3[0x92] < '\0') {\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }" (if "if") (parenthesized_expression "(param_3[0x92] < '\0')" (( "(") (binary_expression "param_3[0x92] < '\0'" (subscript_expression "param_3[0x92]" (identifier "param_3") ([ "[") (number_literal "0x92") (] "]")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      pcVar7[0x19c] = pcVar7[0x19c] | 8;\n      uVar5 = *(uint *)(param_3 + 0xa8);\n      uVar2 = *(uint *)(param_3 + 0xa4);\n      if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }\n    }" ({ "{") (expression_statement "pcVar7[0x19c] = pcVar7[0x19c] | 8;" (assignment_expression "pcVar7[0x19c] = pcVar7[0x19c] | 8" (subscript_expression "pcVar7[0x19c]" (identifier "pcVar7") ([ "[") (number_literal "0x19c") (] "]")) (= "=") (binary_expression "pcVar7[0x19c] | 8" (subscript_expression "pcVar7[0x19c]" (identifier "pcVar7") ([ "[") (number_literal "0x19c") (] "]")) (| "|") (number_literal "8"))) (; ";")) (expression_statement "uVar5 = *(uint *)(param_3 + 0xa8);" (assignment_expression "uVar5 = *(uint *)(param_3 + 0xa8)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(param_3 + 0xa8)" (* "*") (cast_expression "(uint *)(param_3 + 0xa8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xa8)" (( "(") (binary_expression "param_3 + 0xa8" (identifier "param_3") (+ "+") (number_literal "0xa8")) () ")"))))) (; ";")) (expression_statement "uVar2 = *(uint *)(param_3 + 0xa4);" (assignment_expression "uVar2 = *(uint *)(param_3 + 0xa4)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(param_3 + 0xa4)" (* "*") (cast_expression "(uint *)(param_3 + 0xa4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0xa4)" (( "(") (binary_expression "param_3 + 0xa4" (identifier "param_3") (+ "+") (number_literal "0xa4")) () ")"))))) (; ";")) (if_statement "if ((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }" (if "if") (parenthesized_expression "((uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2)))" (( "(") (binary_expression "(uVar5 != 0 || uVar2 != 0) &&\n         (*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))" (parenthesized_expression "(uVar5 != 0 || uVar2 != 0)" (( "(") (binary_expression "uVar5 != 0 || uVar2 != 0" (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "(*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))" (( "(") (binary_expression "*(uint *)(pcVar7 + 0x180) < uVar5 ||\n          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2)" (binary_expression "*(uint *)(pcVar7 + 0x180) < uVar5" (pointer_expression "*(uint *)(pcVar7 + 0x180)" (* "*") (cast_expression "(uint *)(pcVar7 + 0x180)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 0x180)" (( "(") (binary_expression "pcVar7 + 0x180" (identifier "pcVar7") (+ "+") (number_literal "0x180")) () ")")))) (< "<") (identifier "uVar5")) (|| "||") (binary_expression "*(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2)" (binary_expression "*(uint *)(pcVar7 + 0x180) - uVar5" (pointer_expression "*(uint *)(pcVar7 + 0x180)" (* "*") (cast_expression "(uint *)(pcVar7 + 0x180)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 0x180)" (( "(") (binary_expression "pcVar7 + 0x180" (identifier "pcVar7") (+ "+") (number_literal "0x180")) () ")")))) (- "-") (identifier "uVar5")) (< "<") (call_expression "(uint)(*(uint *)(pcVar7 + 0x17c) < uVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(*(uint *)(pcVar7 + 0x17c) < uVar2)" (( "(") (binary_expression "*(uint *)(pcVar7 + 0x17c) < uVar2" (pointer_expression "*(uint *)(pcVar7 + 0x17c)" (* "*") (cast_expression "(uint *)(pcVar7 + 0x17c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 0x17c)" (( "(") (binary_expression "pcVar7 + 0x17c" (identifier "pcVar7") (+ "+") (number_literal "0x17c")) () ")")))) (< "<") (identifier "uVar2")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n        *(uint *)(pcVar7 + 0x17c) = uVar2;\n        *(uint *)(pcVar7 + 0x180) = uVar5;\n      }" ({ "{") (expression_statement "*(uint *)(pcVar7 + 0x17c) = uVar2;" (assignment_expression "*(uint *)(pcVar7 + 0x17c) = uVar2" (pointer_expression "*(uint *)(pcVar7 + 0x17c)" (* "*") (cast_expression "(uint *)(pcVar7 + 0x17c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 0x17c)" (( "(") (binary_expression "pcVar7 + 0x17c" (identifier "pcVar7") (+ "+") (number_literal "0x17c")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "*(uint *)(pcVar7 + 0x180) = uVar5;" (assignment_expression "*(uint *)(pcVar7 + 0x180) = uVar5" (pointer_expression "*(uint *)(pcVar7 + 0x180)" (* "*") (cast_expression "(uint *)(pcVar7 + 0x180)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar7 + 0x180)" (( "(") (binary_expression "pcVar7 + 0x180" (identifier "pcVar7") (+ "+") (number_literal "0x180")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_000ad22a:\n    if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" (statement_identifier "LAB_000ad22a") (: ":") (if_statement "if (*(int *)(param_3 + 0x50) == 7) {\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" (if "if") (parenthesized_expression "(*(int *)(param_3 + 0x50) == 7)" (( "(") (binary_expression "*(int *)(param_3 + 0x50) == 7" (pointer_expression "*(int *)(param_3 + 0x50)" (* "*") (cast_expression "(int *)(param_3 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x50)" (( "(") (binary_expression "param_3 + 0x50" (identifier "param_3") (+ "+") (number_literal "0x50")) () ")")))) (== "==") (number_literal "7")) () ")")) (compound_statement "{\n      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }\n      pcStack_48 = (char *)0x4;\n      local_4c = param_1;\n      pcStack_44 = pcVar6;\n      local_4c = (char *)FUN_000acf30();\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" ({ "{") (for_statement "for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);\n          piVar9 = piVar9 + 1) {\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }" (for "for") (( "(") (assignment_expression "piVar9 = *(int **)(param_1 + 0x124)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(param_1 + 0x124)" (* "*") (cast_expression "(int **)(param_1 + 0x124)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")"))))) (; ";") (binary_expression "piVar9 != *(int **)(param_1 + 0x128)" (identifier "piVar9") (!= "!=") (pointer_expression "*(int **)(param_1 + 0x128)" (* "*") (cast_expression "(int **)(param_1 + 0x128)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")"))))) (; ";") (assignment_expression "piVar9 = piVar9 + 1" (identifier "piVar9") (= "=") (binary_expression "piVar9 + 1" (identifier "piVar9") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n        local_4c = (char *)*piVar9;\n        if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }\n      }" ({ "{") (expression_statement "local_4c = (char *)*piVar9;" (assignment_expression "local_4c = (char *)*piVar9" (identifier "local_4c") (= "=") (cast_expression "(char *)*piVar9" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar9" (* "*") (identifier "piVar9")))) (; ";")) (if_statement "if ((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }" (if "if") (parenthesized_expression "((*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0))" (( "(") (binary_expression "(*(int *)(local_4c + 0x194) == 4) &&\n           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)" (parenthesized_expression "(*(int *)(local_4c + 0x194) == 4)" (( "(") (binary_expression "*(int *)(local_4c + 0x194) == 4" (pointer_expression "*(int *)(local_4c + 0x194)" (* "*") (cast_expression "(int *)(local_4c + 0x194)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 0x194)" (( "(") (binary_expression "local_4c + 0x194" (identifier "local_4c") (+ "+") (number_literal "0x194")) () ")")))) (== "==") (number_literal "4")) () ")")) (&& "&&") (parenthesized_expression "(((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)" (( "(") (binary_expression "((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0" (parenthesized_expression "((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2)" (( "(") (binary_expression "(*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2" (parenthesized_expression "(*(uint *)(local_4c + 0x198) ^ (uint)pcVar6)" (( "(") (binary_expression "*(uint *)(local_4c + 0x198) ^ (uint)pcVar6" (pointer_expression "*(uint *)(local_4c + 0x198)" (* "*") (cast_expression "(uint *)(local_4c + 0x198)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 0x198)" (( "(") (binary_expression "local_4c + 0x198" (identifier "local_4c") (+ "+") (number_literal "0x198")) () ")")))) (^ "^") (cast_expression "(uint)pcVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar6"))) () ")")) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          pcStack_48 = param_3;\n          pcStack_44 = pcVar6;\n          FUN_000ed680();\n          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;\n          break;\n        }" ({ "{") (expression_statement "pcStack_48 = param_3;" (assignment_expression "pcStack_48 = param_3" (identifier "pcStack_48") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" (identifier "pcStack_44") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "FUN_000ed680();" (call_expression "FUN_000ed680()" (identifier "FUN_000ed680") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;" (if "if") (parenthesized_expression "(*(int **)(param_1 + 0x128) != piVar9)" (( "(") (binary_expression "*(int **)(param_1 + 0x128) != piVar9" (pointer_expression "*(int **)(param_1 + 0x128)" (* "*") (cast_expression "(int **)(param_1 + 0x128)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (!= "!=") (identifier "piVar9")) () ")")) (goto_statement "goto LAB_000ad234;" (goto "goto") (statement_identifier "LAB_000ad234") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}"))) (expression_statement "pcStack_48 = (char *)0x4;" (assignment_expression "pcStack_48 = (char *)0x4" (identifier "pcStack_48") (= "=") (cast_expression "(char *)0x4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) (; ";")) (expression_statement "local_4c = param_1;" (assignment_expression "local_4c = param_1" (identifier "local_4c") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" (identifier "pcStack_44") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "local_4c = (char *)FUN_000acf30();" (assignment_expression "local_4c = (char *)FUN_000acf30()" (identifier "local_4c") (= "=") (cast_expression "(char *)FUN_000acf30()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000acf30()" (identifier "FUN_000acf30") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pcStack_48 = param_3;" (assignment_expression "pcStack_48 = param_3" (identifier "pcStack_48") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" (identifier "pcStack_44") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "FUN_000ed680();" (call_expression "FUN_000ed680()" (identifier "FUN_000ed680") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_000ad234:\n    if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" (statement_identifier "LAB_000ad234") (: ":") (if_statement "if ((uVar1 & 0x400) != 0) {\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" (if "if") (parenthesized_expression "((uVar1 & 0x400) != 0)" (( "(") (binary_expression "(uVar1 & 0x400) != 0" (parenthesized_expression "(uVar1 & 0x400)" (( "(") (binary_expression "uVar1 & 0x400" (identifier "uVar1") (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_4c = *(char **)(param_1 + 0x164);\n      if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" ({ "{") (expression_statement "local_4c = *(char **)(param_1 + 0x164);" (assignment_expression "local_4c = *(char **)(param_1 + 0x164)" (identifier "local_4c") (= "=") (pointer_expression "*(char **)(param_1 + 0x164)" (* "*") (cast_expression "(char **)(param_1 + 0x164)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x164)" (( "(") (binary_expression "param_1 + 0x164" (identifier "param_1") (+ "+") (number_literal "0x164")) () ")"))))) (; ";")) (if_statement "if (local_4c == (char *)0x0) {\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }" (if "if") (parenthesized_expression "(local_4c == (char *)0x0)" (( "(") (binary_expression "local_4c == (char *)0x0" (identifier "local_4c") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pcStack_48 = (char *)0x7;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n        local_4c = *(char **)(param_1 + 0x164);\n      }" ({ "{") (expression_statement "pcStack_48 = (char *)0x7;" (assignment_expression "pcStack_48 = (char *)0x7" (identifier "pcStack_48") (= "=") (cast_expression "(char *)0x7" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7"))) (; ";")) (expression_statement "local_4c = param_1;" (assignment_expression "local_4c = param_1" (identifier "local_4c") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" (identifier "pcStack_44") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "FUN_000acf30();" (call_expression "FUN_000acf30()" (identifier "FUN_000acf30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_4c = *(char **)(param_1 + 0x164);" (assignment_expression "local_4c = *(char **)(param_1 + 0x164)" (identifier "local_4c") (= "=") (pointer_expression "*(char **)(param_1 + 0x164)" (* "*") (cast_expression "(char **)(param_1 + 0x164)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x164)" (( "(") (binary_expression "param_1 + 0x164" (identifier "param_1") (+ "+") (number_literal "0x164")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pcStack_48 = param_3;" (assignment_expression "pcStack_48 = param_3" (identifier "pcStack_48") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" (identifier "pcStack_44") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "FUN_000ed680();" (call_expression "FUN_000ed680()" (identifier "FUN_000ed680") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" (identifier "bVar12") (= "=") (false "false")) (; ";")) (expression_statement "bVar13 = (param_3[0x91] & 0x20U) == 0;" (assignment_expression "bVar13 = (param_3[0x91] & 0x20U) == 0" (identifier "bVar13") (= "=") (binary_expression "(param_3[0x91] & 0x20U) == 0" (parenthesized_expression "(param_3[0x91] & 0x20U)" (( "(") (binary_expression "param_3[0x91] & 0x20U" (subscript_expression "param_3[0x91]" (identifier "param_3") ([ "[") (number_literal "0x91") (] "]")) (& "&") (number_literal "0x20U")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!bVar13) {\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }" (if "if") (parenthesized_expression "(!bVar13)" (( "(") (unary_expression "!bVar13" (! "!") (identifier "bVar13")) () ")")) (compound_statement "{\n      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;\n      bVar12 = false;\n      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';\n      if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }\n    }" ({ "{") (if_statement "if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;" (if "if") (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) == 0)" (( "(") (binary_expression "*(int *)(DAT_0033f2f0 + 8) == 0" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 8)" (( "(") (binary_expression "DAT_0033f2f0 + 8" (identifier "DAT_0033f2f0") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000ad5a2;" (goto "goto") (statement_identifier "LAB_000ad5a2") (; ";"))) (expression_statement "bVar12 = false;" (assignment_expression "bVar12 = false" (identifier "bVar12") (= "=") (false "false")) (; ";")) (expression_statement "bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';" (assignment_expression "bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0'" (identifier "bVar13") (= "=") (binary_expression "*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0'" (pointer_expression "*(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9)" (* "*") (cast_expression "(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_0033f2f0 + 8) + 0x56b9)" (( "(") (binary_expression "*(int *)(DAT_0033f2f0 + 8) + 0x56b9" (pointer_expression "*(int *)(DAT_0033f2f0 + 8)" (* "*") (cast_expression "(int *)(DAT_0033f2f0 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0033f2f0 + 8)" (( "(") (binary_expression "DAT_0033f2f0 + 8" (identifier "DAT_0033f2f0") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x56b9")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (if_statement "if (!bVar13) {\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }" (if "if") (parenthesized_expression "(!bVar13)" (( "(") (unary_expression "!bVar13" (! "!") (identifier "bVar13")) () ")")) (compound_statement "{\n        if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }\n        local_4c = *(char **)(param_1 + 0x168);\n        if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }\n        pcStack_44 = (char *)0x6;\n        pcStack_48 = param_3;\n        FUN_000ed680();\n        bVar12 = (undefined1 *)0xffffffef < &local_4c;\n        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;\n      }" ({ "{") (if_statement "if (pcVar6 != (char *)0x6) {\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }" (if "if") (parenthesized_expression "(pcVar6 != (char *)0x6)" (( "(") (binary_expression "pcVar6 != (char *)0x6" (identifier "pcVar6") (!= "!=") (cast_expression "(char *)0x6" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x6"))) () ")")) (compound_statement "{\n          pcStack_44 = "attach_allocated_section_to_segment";\n          local_4c = "../../gold/layout.cc";\n          pcStack_48 = (char *)0x835;\n                    \n          FUN_0008b620();\n        }" ({ "{") (expression_statement "pcStack_44 = "attach_allocated_section_to_segment";" (assignment_expression "pcStack_44 = "attach_allocated_section_to_segment"" (identifier "pcStack_44") (= "=") (string_literal ""attach_allocated_section_to_segment"" (" """) (string_content "attach_allocated_section_to_segment") (" """))) (; ";")) (expression_statement "local_4c = "../../gold/layout.cc";" (assignment_expression "local_4c = "../../gold/layout.cc"" (identifier "local_4c") (= "=") (string_literal ""../../gold/layout.cc"" (" """) (string_content "../../gold/layout.cc") (" """))) (; ";")) (expression_statement "pcStack_48 = (char *)0x835;" (assignment_expression "pcStack_48 = (char *)0x835" (identifier "pcStack_48") (= "=") (cast_expression "(char *)0x835" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x835"))) (; ";")) (expression_statement "FUN_0008b620();" (call_expression "FUN_0008b620()" (identifier "FUN_0008b620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_4c = *(char **)(param_1 + 0x168);" (assignment_expression "local_4c = *(char **)(param_1 + 0x168)" (identifier "local_4c") (= "=") (pointer_expression "*(char **)(param_1 + 0x168)" (* "*") (cast_expression "(char **)(param_1 + 0x168)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x168)" (( "(") (binary_expression "param_1 + 0x168" (identifier "param_1") (+ "+") (number_literal "0x168")) () ")"))))) (; ";")) (if_statement "if (local_4c == (char *)0x0) {\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }" (if "if") (parenthesized_expression "(local_4c == (char *)0x0)" (( "(") (binary_expression "local_4c == (char *)0x0" (identifier "local_4c") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pcStack_44 = (char *)0x6;\n          pcStack_48 = (char *)0x6474e552;\n          local_4c = param_1;\n          FUN_000acf30();\n          local_4c = *(char **)(param_1 + 0x168);\n        }" ({ "{") (expression_statement "pcStack_44 = (char *)0x6;" (assignment_expression "pcStack_44 = (char *)0x6" (identifier "pcStack_44") (= "=") (cast_expression "(char *)0x6" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x6"))) (; ";")) (expression_statement "pcStack_48 = (char *)0x6474e552;" (assignment_expression "pcStack_48 = (char *)0x6474e552" (identifier "pcStack_48") (= "=") (cast_expression "(char *)0x6474e552" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x6474e552"))) (; ";")) (expression_statement "local_4c = param_1;" (assignment_expression "local_4c = param_1" (identifier "local_4c") (= "=") (identifier "param_1")) (; ";")) (expression_statement "FUN_000acf30();" (call_expression "FUN_000acf30()" (identifier "FUN_000acf30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_4c = *(char **)(param_1 + 0x168);" (assignment_expression "local_4c = *(char **)(param_1 + 0x168)" (identifier "local_4c") (= "=") (pointer_expression "*(char **)(param_1 + 0x168)" (* "*") (cast_expression "(char **)(param_1 + 0x168)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x168)" (( "(") (binary_expression "param_1 + 0x168" (identifier "param_1") (+ "+") (number_literal "0x168")) () ")"))))) (; ";")) (} "}"))) (expression_statement "pcStack_44 = (char *)0x6;" (assignment_expression "pcStack_44 = (char *)0x6" (identifier "pcStack_44") (= "=") (cast_expression "(char *)0x6" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x6"))) (; ";")) (expression_statement "pcStack_48 = param_3;" (assignment_expression "pcStack_48 = param_3" (identifier "pcStack_48") (= "=") (identifier "param_3")) (; ";")) (expression_statement "FUN_000ed680();" (call_expression "FUN_000ed680()" (identifier "FUN_000ed680") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar12 = (undefined1 *)0xffffffef < &local_4c;" (assignment_expression "bVar12 = (undefined1 *)0xffffffef < &local_4c" (identifier "bVar12") (= "=") (binary_expression "(undefined1 *)0xffffffef < &local_4c" (cast_expression "(undefined1 *)0xffffffef" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffef")) (< "<") (pointer_expression "&local_4c" (& "&") (identifier "local_4c")))) (; ";")) (expression_statement "bVar13 = &stack0x00000000 == (undefined1 *)0x3c;" (assignment_expression "bVar13 = &stack0x00000000 == (undefined1 *)0x3c" (identifier "bVar13") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x3c" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x3c" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3c")))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" (identifier "iVar8") (= "=") (number_literal "8")) (; ";")) (expression_statement "pbVar10 = *(byte **)(param_3 + 0x20);" (assignment_expression "pbVar10 = *(byte **)(param_3 + 0x20)" (identifier "pbVar10") (= "=") (pointer_expression "*(byte **)(param_3 + 0x20)" (* "*") (cast_expression "(byte **)(param_3 + 0x20)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_3 + 0x20)" (( "(") (binary_expression "param_3 + 0x20" (identifier "param_3") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "pbVar11 = (byte *)".interp";" (assignment_expression "pbVar11 = (byte *)".interp"" (identifier "pbVar11") (= "=") (cast_expression "(byte *)".interp"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal "".interp"" (" """) (string_content ".interp") (" """)))) (; ";")) (do_statement "do {\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    } while (bVar13);" (do "do") (compound_statement "{\n      if (iVar8 == 0) break;\n      iVar8 = iVar8 + -1;\n      bVar12 = *pbVar10 < *pbVar11;\n      bVar13 = *pbVar10 == *pbVar11;\n      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;\n      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;\n    }" ({ "{") (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar12 = *pbVar10 < *pbVar11;" (assignment_expression "bVar12 = *pbVar10 < *pbVar11" (identifier "bVar12") (= "=") (binary_expression "*pbVar10 < *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (< "<") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "bVar13 = *pbVar10 == *pbVar11;" (assignment_expression "bVar13 = *pbVar10 == *pbVar11" (identifier "bVar13") (= "=") (binary_expression "*pbVar10 == *pbVar11" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (== "==") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")))) (; ";")) (expression_statement "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar10 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar14 * -2" (identifier "pbVar10") (+ "+") (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar14")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;" (assignment_expression "pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar11 + (uint)bVar14 * -2 + 1" (binary_expression "pbVar11 + (uint)bVar14 * -2" (identifier "pbVar11") (+ "+") (binary_expression "(uint)bVar14 * -2" (cast_expression "(uint)bVar14" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar14")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (; ";")) (if_statement "if (((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))) {\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" (if "if") (parenthesized_expression "(((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0))))" (( "(") (binary_expression "((!bVar12 && !bVar13) == bVar12) &&\n       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))" (parenthesized_expression "((!bVar12 && !bVar13) == bVar12)" (( "(") (binary_expression "(!bVar12 && !bVar13) == bVar12" (parenthesized_expression "(!bVar12 && !bVar13)" (( "(") (binary_expression "!bVar12 && !bVar13" (unary_expression "!bVar12" (! "!") (identifier "bVar12")) (&& "&&") (unary_expression "!bVar13" (! "!") (identifier "bVar13"))) () ")")) (== "==") (identifier "bVar12")) () ")")) (&& "&&") (parenthesized_expression "((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))" (( "(") (parenthesized_expression "(*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0))" (( "(") (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||\n        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)" (binary_expression "*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0'" (pointer_expression "*(char *)(*(int *)(param_1 + 4) + 0xac)" (* "*") (cast_expression "(char *)(*(int *)(param_1 + 4) + 0xac)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 4) + 0xac)" (( "(") (binary_expression "*(int *)(param_1 + 4) + 0xac" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xac")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0" (pointer_expression "*(int *)(*(int *)(param_1 + 4) + 0xbc)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 4) + 0xbc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 4) + 0xbc)" (( "(") (binary_expression "*(int *)(param_1 + 4) + 0xbc" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xbc")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }\n      local_4c = *(char **)(param_1 + 0x16c);\n      pcStack_48 = param_3;\n      pcStack_44 = pcVar6;\n      FUN_000ed680();\n    }" ({ "{") (if_statement "if (*(int *)(param_1 + 0x16c) == 0) {\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }\n      else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x16c) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x16c) == 0" (pointer_expression "*(int *)(param_1 + 0x16c)" (* "*") (cast_expression "(int *)(param_1 + 0x16c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x16c)" (( "(") (binary_expression "param_1 + 0x16c" (identifier "param_1") (+ "+") (number_literal "0x16c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcStack_48 = (char *)0x3;\n        local_4c = param_1;\n        pcStack_44 = pcVar6;\n        FUN_000acf30();\n      }" ({ "{") (expression_statement "pcStack_48 = (char *)0x3;" (assignment_expression "pcStack_48 = (char *)0x3" (identifier "pcStack_48") (= "=") (cast_expression "(char *)0x3" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) (; ";")) (expression_statement "local_4c = param_1;" (assignment_expression "local_4c = param_1" (identifier "local_4c") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" (identifier "pcStack_44") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "FUN_000acf30();" (call_expression "FUN_000acf30()" (identifier "FUN_000acf30") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }" (else "else") (compound_statement "{\n        local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";\n        local_4c = (char *)gettext();\n        FUN_00082900();\n      }" ({ "{") (expression_statement "local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";" (assignment_expression "local_4c = \n        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment"" (identifier "local_4c") (= "=") (string_literal ""multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment"" (" """) (string_content "multiple ") (escape_sequence "\'") (string_content ".interp") (escape_sequence "\'") (string_content " sections in input files may cause confusing PT_INTERP segment") (" """))) (; ";")) (expression_statement "local_4c = (char *)gettext();" (assignment_expression "local_4c = (char *)gettext()" (identifier "local_4c") (= "=") (cast_expression "(char *)gettext()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "gettext()" (identifier "gettext") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "FUN_00082900();" (call_expression "FUN_00082900()" (identifier "FUN_00082900") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "local_4c = *(char **)(param_1 + 0x16c);" (assignment_expression "local_4c = *(char **)(param_1 + 0x16c)" (identifier "local_4c") (= "=") (pointer_expression "*(char **)(param_1 + 0x16c)" (* "*") (cast_expression "(char **)(param_1 + 0x16c)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x16c)" (( "(") (binary_expression "param_1 + 0x16c" (identifier "param_1") (+ "+") (number_literal "0x16c")) () ")"))))) (; ";")) (expression_statement "pcStack_48 = param_3;" (assignment_expression "pcStack_48 = param_3" (identifier "pcStack_48") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pcStack_44 = pcVar6;" (assignment_expression "pcStack_44 = pcVar6" (identifier "pcStack_44") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "FUN_000ed680();" (call_expression "FUN_000ed680()" (identifier "FUN_000ed680") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* WARNING: Enum "ELFOSABI": Some values do not have unique names */
/* DWARF original prototype: void attach_allocated_section_to_segment(Layout * this, Target *
   target, Output_section * os) */

void __thiscall
var_12::type_1::function_1(type_1 *this,type_2 *target,type_3 *os)

{
  type_4 *var_3;
  type_5 var_16;
  type_5 var_17;
  type_5 var_18;
  type_6 var_8;
  type_7 var_1;
  bool var_24;
  type_5 var_4;
  char *format;
  type_8 *var_20;
  int var_21;
  type_9 var_6;
  type_10 *var_22;
  type_10 *var_23;
  bool var_9;
  type_10 bVar15;
  uint64_t addr;
  type_11 uStack_14;
  
  bVar15 = 0;
  uStack_14 = 0xad059;
  var_1 = os->flags_;
  if ((var_1 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
    var_2("../../gold/layout.cc",0x7af,"attach_allocated_section_to_segment");
  }
  var_3 = parameters->options_;
  if (var_3 == (type_4 *)0x0) {
LAB_000ad5a2:
                    /* WARNING: Subroutine does not return */
    var_2("../../gold/parameters.h",0x5c,"options");
  }
  if (((var_3->relocatable_).value == false) &&
     ((this->script_options_->script_sections_).saw_sections_clause_ == false)) {
    var_4 = (-(type_5)((var_1 & 1) == 0) & 0xfffffffe) + 6;
    if ((var_1 & 4) != 0) {
      var_4 = var_4 | 1;
    }
    var_4 = var_4 | (type_5)os->extra_segment_flags_;
    var_24 = type_4::var_5(var_3,os->name_,&addr);
    if ((-1 < (char)os->field_0x92) &&
       (var_6 = (this->segment_list_).
                   super__Vector_base<var_12::type_8*,var_13::allocator<var_12::type_8*>var_14>
                   ._M_impl._M_start,
       (this->segment_list_).
       super__Vector_base<var_12::type_8*,var_13::allocator<var_12::type_8*>var_14>._M_impl.
       _M_finish != var_6)) {
      do {
        var_20 = *var_6;
        if ((var_20->type_ == 1) && ((var_20->field_0x19c & 8) == 0)) {
          var_3 = parameters->options_;
          if (var_3 == (type_4 *)0x0) goto LAB_000ad5a2;
          if ((((var_3->omagic_).value != false) || (((var_4 ^ var_20->flags_) & 2) == 0)) &&
             (((target->pti_->isolate_execinstr == false && ((var_3->rosegment_).value == false))
              || (((var_4 ^ var_20->flags_) & 1) == 0)))) {
            if ((var_3->Tbss_).user_set_via_option != false) {
              var_8 = os->type_;
              var_9 = type_8::var_7(var_20);
              if ((var_8 == 8) == var_9) goto LAB_000ad348;
              var_20 = *var_6;
            }
            if (((-1 < (char)os->field_0x91) || (os->type_ == 8)) ||
               ((var_20->field_0x19c & 4) != 0)) {
              if (var_24) {
                if ((var_20->field_0x19c & 2) != 0) goto LAB_000ad348;
                Output_segment::var_10(var_20,&os->super_Output_data);
                var_20 = *var_6;
                if (var_20->type_ != 7) {
                  var_20->flags_ = var_20->flags_ | var_4;
                }
                var_20->field_0x19c = var_20->field_0x19c | 2;
                *(type_11 *)&var_20->vaddr_ = (type_11)addr;
                *(type_11 *)((int)&var_20->vaddr_ + 4) = addr._4_4_;
                *(type_11 *)&var_20->paddr_ = (type_11)addr;
                *(type_11 *)((int)&var_20->paddr_ + 4) = addr._4_4_;
              }
              else {
                Output_segment::var_11(var_20,this,os,var_4);
              }
              if (((this->segment_list_).
                   super__Vector_base<var_12::type_8*,var_13::allocator<var_12::type_8*>var_14>
                   ._M_impl._M_finish != var_6) && (-1 < (char)os->field_0x92))
              goto LAB_000ad22a;
              break;
            }
          }
        }
LAB_000ad348:
        var_6 = var_6 + 1;
      } while ((this->segment_list_).
               super__Vector_base<var_12::type_8*,var_13::allocator<var_12::type_8*>var_14>.
               _M_impl._M_finish != var_6);
    }
    var_20 = var_15(this,1,var_4);
    if (((char)os->field_0x91 < '\0') && (os->type_ != 8)) {
      var_20->field_0x19c = var_20->field_0x19c | 4;
    }
    Output_segment::var_11(var_20,this,os,var_4);
    if (var_24) {
      var_20->field_0x19c = var_20->field_0x19c | 2;
      *(type_11 *)&var_20->vaddr_ = (type_11)addr;
      *(type_11 *)((int)&var_20->vaddr_ + 4) = addr._4_4_;
      *(type_11 *)&var_20->paddr_ = (type_11)addr;
      *(type_11 *)((int)&var_20->paddr_ + 4) = addr._4_4_;
    }
    if ((char)os->field_0x92 < '\0') {
      var_20->field_0x19c = var_20->field_0x19c | 8;
      var_16 = *(type_5 *)((int)&os->segment_alignment_ + 4);
      var_17 = (type_5)os->segment_alignment_;
      if ((var_16 != 0 || var_17 != 0) &&
         (var_18 = *(type_5 *)((int)&var_20->min_p_align_ + 4),
         var_18 < var_16 || var_18 - var_16 < (type_5)((type_5)var_20->min_p_align_ < var_17))) {
        *(type_5 *)&var_20->min_p_align_ = var_17;
        *(type_5 *)((int)&var_20->min_p_align_ + 4) = var_16;
      }
    }
LAB_000ad22a:
    if (os->type_ == 7) {
      for (var_6 = (this->segment_list_).
                      super__Vector_base<var_12::type_8*,var_13::allocator<var_12::type_8*>var_14>
                      ._M_impl._M_start;
          var_6 !=
          (this->segment_list_).
          super__Vector_base<var_12::type_8*,var_13::allocator<var_12::type_8*>var_14>._M_impl.
          _M_finish; var_6 = var_6 + 1) {
        var_20 = *var_6;
        if ((var_20->type_ == 4) && (((var_20->flags_ ^ var_4) & 2) == 0)) {
          Output_segment::var_19(var_20,os,var_4);
          if ((this->segment_list_).
              super__Vector_base<var_12::type_8*,var_13::allocator<var_12::type_8*>var_14>.
              _M_impl._M_finish != var_6) goto LAB_000ad234;
          break;
        }
      }
      var_20 = var_15(this,4,var_4);
      Output_segment::var_19(var_20,os,var_4);
    }
LAB_000ad234:
    if ((var_1 & 0x400) != 0) {
      var_20 = this->tls_segment_;
      if (var_20 == (type_8 *)0x0) {
        var_15(this,7,var_4);
        var_20 = this->tls_segment_;
      }
      Output_segment::var_19(var_20,os,var_4);
    }
    var_24 = false;
    var_9 = (os->field_0x91 & 0x20) == 0;
    if (!var_9) {
      if (parameters->options_ == (type_4 *)0x0) goto LAB_000ad5a2;
      var_24 = false;
      var_9 = (parameters->options_->relro_).value == false;
      if (!var_9) {
        if (var_4 != 6) {
                    /* WARNING: Subroutine does not return */
          var_2("../../gold/layout.cc",0x835,"attach_allocated_section_to_segment");
        }
        var_20 = this->relro_segment_;
        if (var_20 == (type_8 *)0x0) {
          var_15(this,0x6474e552,6);
          var_20 = this->relro_segment_;
        }
        Output_segment::var_19(var_20,os,6);
        var_24 = (type_12 *)0xffffffef < &stack0xffffffb4;
        var_9 = &stack0x00000000 == (type_12 *)0x3c;
      }
    }
    var_21 = 8;
    var_22 = (type_10 *)os->name_;
    var_23 = (type_10 *)".interp";
    do {
      if (var_21 == 0) break;
      var_21 = var_21 + -1;
      var_24 = *var_22 < *var_23;
      var_9 = *var_22 == *var_23;
      var_22 = var_22 + (type_5)bVar15 * -2 + 1;
      var_23 = var_23 + (type_5)bVar15 * -2 + 1;
    } while (var_9);
    if (((!var_24 && !var_9) == var_24) &&
       (((this->script_options_->script_sections_).saw_sections_clause_ == false ||
        ((this->script_options_->script_sections_).phdrs_elements_ == (type_13 *)0x0)))) {
      if (this->interp_segment_ == (type_8 *)0x0) {
        var_15(this,3,var_4);
      }
      else {
        format = (char *)var_25();
        var_26(format);
      }
      Output_segment::var_19(this->interp_segment_,os,var_4);
    }
  }
  return;
}


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

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

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

{
  uint uVar1;
  uint uVar2;
  char cVar3;
  char cVar4;
  uint uVar5;
  char *pcVar6;
  char *pcVar7;
  int iVar8;
  int *piVar9;
  byte *pbVar10;
  byte *pbVar11;
  bool bVar12;
  bool bVar13;
  byte bVar14;
  char *local_4c;
  char *pcStack_48;
  char *pcStack_44;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 uStack_14;
  
  bVar14 = 0;
  uStack_14 = 0xad059;
  uVar1 = *(uint *)(param_3 + 0x54);
  if ((uVar1 & 2) == 0) {
    pcStack_44 = "attach_allocated_section_to_segment";
    local_4c = "../../gold/layout.cc";
    pcStack_48 = (char *)0x7af;
                    /* WARNING: Subroutine does not return */
    FUN_0008b620();
  }
  local_4c = *(char **)(DAT_0033f2f0 + 8);
  if (local_4c == (char *)0x0) {
LAB_000ad5a2:
    pcStack_44 = "options";
    local_4c = "../../gold/parameters.h";
    pcStack_48 = (char *)0x5c;
                    /* WARNING: Subroutine does not return */
    FUN_0008b620();
  }
  if ((local_4c[0x318d] == '\0') && (*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0')) {
    uVar5 = (-(uint)((uVar1 & 1) == 0) & 0xfffffffe) + 6;
    if ((uVar1 & 4) != 0) {
      uVar5 = uVar5 | 1;
    }
    pcVar6 = (char *)(uVar5 | *(uint *)(param_3 + 0x9c));
    pcStack_44 = (char *)&local_24;
    pcStack_48 = *(char **)(param_3 + 0x20);
    cVar3 = FUN_000d8f30();
    if ((-1 < param_3[0x92]) &&
       (piVar9 = *(int **)(param_1 + 0x124), *(int **)(param_1 + 0x128) != piVar9)) {
      do {
        local_4c = (char *)*piVar9;
        if ((*(int *)(local_4c + 0x194) == 1) && ((local_4c[0x19c] & 8U) == 0)) {
          iVar8 = *(int *)(DAT_0033f2f0 + 8);
          if (iVar8 == 0) goto LAB_000ad5a2;
          if (((*(char *)(iVar8 + 0x253d) != '\0') ||
              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 2) == 0)) &&
             (((*(char *)(*(int *)(param_2 + 4) + 0x30) == '\0' &&
               (*(char *)(iVar8 + 0x32c9) == '\0')) ||
              ((((uint)pcVar6 ^ *(uint *)(local_4c + 0x198)) & 1) == 0)))) {
            if (*(char *)(iVar8 + 0x4128) != '\0') {
              iVar8 = *(int *)(param_3 + 0x50);
              cVar4 = FUN_000ea480();
              if ((iVar8 == 8) == (bool)cVar4) goto LAB_000ad348;
              local_4c = (char *)*piVar9;
            }
            if (((-1 < param_3[0x91]) || (*(int *)(param_3 + 0x50) == 8)) ||
               ((local_4c[0x19c] & 4U) != 0)) {
              if (cVar3 == '\0') {
                pcStack_44 = param_3;
                pcStack_48 = param_1;
                FUN_000ed550();
              }
              else {
                if ((local_4c[0x19c] & 2U) != 0) goto LAB_000ad348;
                pcStack_48 = param_3;
                FUN_000ec8e0();
                iVar8 = *piVar9;
                if (*(int *)(iVar8 + 0x194) != 7) {
                  *(uint *)(iVar8 + 0x198) = *(uint *)(iVar8 + 0x198) | (uint)pcVar6;
                }
                *(byte *)(iVar8 + 0x19c) = *(byte *)(iVar8 + 0x19c) | 2;
                *(undefined4 *)(iVar8 + 0x15c) = local_24;
                *(undefined4 *)(iVar8 + 0x160) = local_20;
                *(undefined4 *)(iVar8 + 0x164) = local_24;
                *(undefined4 *)(iVar8 + 0x168) = local_20;
              }
              if ((*(int **)(param_1 + 0x128) != piVar9) && (-1 < param_3[0x92])) goto LAB_000ad22a;
              break;
            }
          }
        }
LAB_000ad348:
        piVar9 = piVar9 + 1;
      } while (*(int **)(param_1 + 0x128) != piVar9);
    }
    pcStack_48 = (char *)0x1;
    local_4c = param_1;
    pcStack_44 = pcVar6;
    pcVar7 = (char *)FUN_000acf30();
    if ((param_3[0x91] < '\0') && (*(int *)(param_3 + 0x50) != 8)) {
      pcVar7[0x19c] = pcVar7[0x19c] | 4;
    }
    pcStack_48 = param_1;
    local_4c = pcVar7;
    pcStack_44 = param_3;
    FUN_000ed550();
    if (cVar3 != '\0') {
      pcVar7[0x19c] = pcVar7[0x19c] | 2;
      *(undefined4 *)(pcVar7 + 0x15c) = local_24;
      *(undefined4 *)(pcVar7 + 0x160) = local_20;
      *(undefined4 *)(pcVar7 + 0x164) = local_24;
      *(undefined4 *)(pcVar7 + 0x168) = local_20;
    }
    if (param_3[0x92] < '\0') {
      pcVar7[0x19c] = pcVar7[0x19c] | 8;
      uVar5 = *(uint *)(param_3 + 0xa8);
      uVar2 = *(uint *)(param_3 + 0xa4);
      if ((uVar5 != 0 || uVar2 != 0) &&
         (*(uint *)(pcVar7 + 0x180) < uVar5 ||
          *(uint *)(pcVar7 + 0x180) - uVar5 < (uint)(*(uint *)(pcVar7 + 0x17c) < uVar2))) {
        *(uint *)(pcVar7 + 0x17c) = uVar2;
        *(uint *)(pcVar7 + 0x180) = uVar5;
      }
    }
LAB_000ad22a:
    if (*(int *)(param_3 + 0x50) == 7) {
      for (piVar9 = *(int **)(param_1 + 0x124); piVar9 != *(int **)(param_1 + 0x128);
          piVar9 = piVar9 + 1) {
        local_4c = (char *)*piVar9;
        if ((*(int *)(local_4c + 0x194) == 4) &&
           (((*(uint *)(local_4c + 0x198) ^ (uint)pcVar6) & 2) == 0)) {
          pcStack_48 = param_3;
          pcStack_44 = pcVar6;
          FUN_000ed680();
          if (*(int **)(param_1 + 0x128) != piVar9) goto LAB_000ad234;
          break;
        }
      }
      pcStack_48 = (char *)0x4;
      local_4c = param_1;
      pcStack_44 = pcVar6;
      local_4c = (char *)FUN_000acf30();
      pcStack_48 = param_3;
      pcStack_44 = pcVar6;
      FUN_000ed680();
    }
LAB_000ad234:
    if ((uVar1 & 0x400) != 0) {
      local_4c = *(char **)(param_1 + 0x164);
      if (local_4c == (char *)0x0) {
        pcStack_48 = (char *)0x7;
        local_4c = param_1;
        pcStack_44 = pcVar6;
        FUN_000acf30();
        local_4c = *(char **)(param_1 + 0x164);
      }
      pcStack_48 = param_3;
      pcStack_44 = pcVar6;
      FUN_000ed680();
    }
    bVar12 = false;
    bVar13 = (param_3[0x91] & 0x20U) == 0;
    if (!bVar13) {
      if (*(int *)(DAT_0033f2f0 + 8) == 0) goto LAB_000ad5a2;
      bVar12 = false;
      bVar13 = *(char *)(*(int *)(DAT_0033f2f0 + 8) + 0x56b9) == '\0';
      if (!bVar13) {
        if (pcVar6 != (char *)0x6) {
          pcStack_44 = "attach_allocated_section_to_segment";
          local_4c = "../../gold/layout.cc";
          pcStack_48 = (char *)0x835;
                    /* WARNING: Subroutine does not return */
          FUN_0008b620();
        }
        local_4c = *(char **)(param_1 + 0x168);
        if (local_4c == (char *)0x0) {
          pcStack_44 = (char *)0x6;
          pcStack_48 = (char *)0x6474e552;
          local_4c = param_1;
          FUN_000acf30();
          local_4c = *(char **)(param_1 + 0x168);
        }
        pcStack_44 = (char *)0x6;
        pcStack_48 = param_3;
        FUN_000ed680();
        bVar12 = (undefined1 *)0xffffffef < &local_4c;
        bVar13 = &stack0x00000000 == (undefined1 *)0x3c;
      }
    }
    iVar8 = 8;
    pbVar10 = *(byte **)(param_3 + 0x20);
    pbVar11 = (byte *)".interp";
    do {
      if (iVar8 == 0) break;
      iVar8 = iVar8 + -1;
      bVar12 = *pbVar10 < *pbVar11;
      bVar13 = *pbVar10 == *pbVar11;
      pbVar10 = pbVar10 + (uint)bVar14 * -2 + 1;
      pbVar11 = pbVar11 + (uint)bVar14 * -2 + 1;
    } while (bVar13);
    if (((!bVar12 && !bVar13) == bVar12) &&
       ((*(char *)(*(int *)(param_1 + 4) + 0xac) == '\0' ||
        (*(int *)(*(int *)(param_1 + 4) + 0xbc) == 0)))) {
      if (*(int *)(param_1 + 0x16c) == 0) {
        pcStack_48 = (char *)0x3;
        local_4c = param_1;
        pcStack_44 = pcVar6;
        FUN_000acf30();
      }
      else {
        local_4c = 
        "multiple \'.interp\' sections in input files may cause confusing PT_INTERP segment";
        local_4c = (char *)gettext();
        FUN_00082900();
      }
      local_4c = *(char **)(param_1 + 0x16c);
      pcStack_48 = param_3;
      pcStack_44 = pcVar6;
      FUN_000ed680();
    }
  }
  return;
}

