
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: Value_type compute_final_value<32>(Symbol_table * this,
   Sized_symbol<32> * sym, Compute_final_value_status * pstatus) */

Value_type __thiscall
gold::Symbol_table::compute_final_value<32>
          (Symbol_table *this,Sized_symbol<32> *sym,Compute_final_value_status *pstatus)

{
  Output_data *pOVar1;
  _func_int_varargs *p_Var2;
  pointer ppOVar3;
  pointer ppOVar4;
  bool bVar5;
  Value_type VVar6;
  int iVar7;
  undefined4 extraout_var;
  undefined4 extraout_var_00;
  Output_segment *pOVar9;
  ulong uVar10;
  undefined4 extraout_var_01;
  undefined4 extraout_var_02;
  uint64_t uVar11;
  Output_section *this_00;
  uint uVar12;
  Parameters *this_1;
  Output_segment *this_01;
  byte bVar13;
  Section_id SVar14;
  long *plVar8;
  
  bVar13 = (sym->super_Symbol).field_0x3a;
  switch(bVar13 & 7) {
  case 0:
    if ((bVar13 & 7) != 0) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");
    }
    uVar12 = (sym->super_Symbol).u2_.shndx;
    bVar13 = (byte)(sym->super_Symbol).field_0x3b >> 5 & 1;
    if ((uVar12 != 0xfff1) && (bVar13 == 0)) {
      bVar5 = Symbol::is_common_shndx(uVar12);
      if (!bVar5) {
        *pstatus = CFVS_UNSUPPORTED_SYMBOL_SECTION;
        return 0;
      }
      if (((sym->super_Symbol).field_0x3a & 7) != 0) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/symtab.h",0xa1,"object");
      }
    }
    pOVar9 = (sym->super_Symbol).u1_.output_segment;
    if ((((Object *)pOVar9->output_lists_)->field_0x3c & 1) == 0) {
      iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[5])(pOVar9);
      if ((uVar12 != 0) && (CONCAT44(extraout_var,iVar7) == 0)) {
        if ((bVar13 != 0) ||
           ((uVar12 != 0xfff1 && (bVar5 = Symbol::is_common_shndx(uVar12), !bVar5)))) {
          p_Var2 = ((Object *)pOVar9->output_lists_)->_vptr_Object[0x18];
          if (p_Var2 == Relobj::do_output_section) {
            ppOVar3 = (((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->
                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                      )._M_impl._M_start;
            if ((ulong)((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->
                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                              )._M_impl._M_finish - (long)ppOVar3 >> 3) <= (ulong)uVar12)
            goto LAB_002756af;
            this_00 = ppOVar3[uVar12];
          }
          else {
            iVar7 = (*p_Var2)(pOVar9,(ulong)uVar12);
            this_00 = (Output_section *)CONCAT44(extraout_var_02,iVar7);
          }
          bVar5 = is_section_folded(this,(Relobj *)pOVar9,uVar12);
          if (bVar5) {
            if (this_00 != (Output_section *)0x0) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/symtab.cc",0xb0c,"compute_final_value");
            }
            SVar14 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar9,uVar12);
            pOVar9 = (Output_segment *)SVar14.first;
            if (pOVar9 == (Output_segment *)0x0) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/symtab.cc",0xb10,"compute_final_value");
            }
            uVar12 = SVar14.second;
            pOVar1 = pOVar9->output_lists_[0].
                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                     _M_impl._M_start[0x18];
            if (pOVar1 == (Output_data *)Relobj::do_output_section) {
              ppOVar4 = pOVar9->output_lists_[3].
                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.
                        _M_impl._M_finish;
              if ((ulong)((long)pOVar9->output_lists_[3].
                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12) {
LAB_002756af:
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");
              }
              this_00 = (Output_section *)ppOVar4[uVar12];
            }
            else {
              this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12);
            }
            if (this_00 == (Output_section *)0x0) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/symtab.cc",0xb15,"compute_final_value");
            }
            uVar10 = (*(code *)pOVar9->output_lists_[0].
                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>
                               ._M_impl._M_start[0x1a])(pOVar9,SVar14._8_8_ & 0xffffffff);
          }
          else {
            this_1 = (Parameters *)(ulong)uVar12;
            this_01 = pOVar9;
            iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])();
            uVar10 = CONCAT44(extraout_var_01,iVar7);
            if (this_00 == (Output_section *)0x0) {
              if (parameters->doing_static_link_valid_ == false) {
                    /* WARNING: Subroutine does not return */
                Parameters::doing_static_link((Parameters *)this_01,this_1);
              }
              if (parameters->doing_static_link_ == false) {
                if (parameters->options_ == (General_options *)0x0) {
LAB_002756fc:
                    /* WARNING: Subroutine does not return */
                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
                }
                if ((parameters->options_->relocatable_).value == false) {
                  uVar12 = (sym->super_Symbol).dynsym_index_;
                  if (uVar12 == 0) {
                    Symbol::dynsym_index((Symbol *)this_01);
                    goto LAB_002756fc;
                  }
                  if (uVar12 != 0xffffffff) {
                    /* WARNING: Subroutine does not return */
                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");
                  }
                }
              }
              *pstatus = CFVS_NO_OUTPUT_SECTION;
              return 0;
            }
          }
          if (uVar10 == 0xffffffffffffffff) {
            uVar11 = Output_section::output_address
                               (this_00,(Relobj *)pOVar9,uVar12,(ulong)sym->value_);
            VVar6 = (Value_type)uVar11;
          }
          else {
            if ((uVar10 & 0xffffffff) != uVar10) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");
            }
            VVar6 = sym->value_;
            if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {
              p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12];
              if (p_Var2 == Output_section::do_tls_offset) {
                iVar7 = (int)this_00->tls_offset_;
              }
              else {
                iVar7 = (*p_Var2)(this_00);
              }
              VVar6 = iVar7 + VVar6 + (int)uVar10;
            }
            else {
              if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;
              VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;
            }
          }
          break;
        }
        goto switchD_00275186_caseD_3;
      }
    }
  case 4:
    VVar6 = 0;
    break;
  case 1:
    if ((bVar13 & 7) != 1) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");
    }
    pOVar1 = (sym->super_Symbol).u1_.output_data;
    VVar6 = sym->value_;
    if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {
      iVar7 = (*pOVar1->_vptr_Output_data[9])(pOVar1);
      plVar8 = (long *)CONCAT44(extraout_var_00,iVar7);
      if (plVar8 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/symtab.cc",0xb43,"compute_final_value");
      }
      if (*(code **)(*plVar8 + 0x90) == Output_section::do_tls_offset) {
        iVar7 = (int)plVar8[0x1a];
      }
      else {
        iVar7 = (**(code **)(*plVar8 + 0x90))(plVar8);
      }
      bVar13 = pOVar1->field_0x20;
      if (((bVar13 & 1) == 0) || ((*(byte *)(plVar8 + 4) & 1) == 0)) goto LAB_00275602;
      iVar7 = iVar7 + ((int)pOVar1->address_ - (int)plVar8[1]);
      if (((sym->super_Symbol).field_0x3a & 7) != 1) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/symtab.h",0xbe,"offset_is_from_end");
      }
    }
    else {
      bVar13 = pOVar1->field_0x20;
      if ((bVar13 & 1) == 0) {
LAB_00275602:
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/output.h",0xc5,"address");
      }
      iVar7 = (int)pOVar1->address_;
    }
    VVar6 = iVar7 + VVar6;
    if ((sym->super_Symbol).u2_.offset_is_from_end != false) {
      if ((bVar13 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");
      }
      VVar6 = VVar6 + (int)pOVar1->data_size_;
    }
    break;
  case 2:
    if ((bVar13 & 7) != 2) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/symtab.h",200,"output_segment");
    }
    pOVar9 = (sym->super_Symbol).u1_.output_segment;
    VVar6 = sym->value_;
    if (((sym->super_Symbol).field_0x38 & 0xf) != 6) {
      VVar6 = VVar6 + (int)pOVar9->vaddr_;
    }
    uVar12 = (sym->super_Symbol).u2_.shndx;
    if (uVar12 == 1) {
      VVar6 = VVar6 + (int)pOVar9->memsz_;
    }
    else if (uVar12 != 0) {
      if (uVar12 != 2) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/symtab.cc",0xb5c,"compute_final_value");
      }
      VVar6 = VVar6 + (int)pOVar9->filesz_;
    }
    break;
  case 3:
switchD_00275186_caseD_3:
    VVar6 = sym->value_;
    break;
  default:
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable("../../gold/symtab.cc",0xb6a,"compute_final_value");
  }
  *pstatus = CFVS_OK;
  return VVar6;
}



ulong FUN_00275150(long param_1,long param_2,undefined4 *param_3)

{
  int iVar1;
  char cVar2;
  uint uVar3;
  int iVar4;
  long lVar5;
  long *plVar6;
  ulong uVar7;
  byte bVar8;
  long *plVar9;
  undefined1 auVar10 [16];
  
  bVar8 = *(byte *)(param_2 + 0x3a);
  switch(bVar8 & 7) {
  case 0:
    if ((bVar8 & 7) != 0) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");
    }
    uVar3 = *(uint *)(param_2 + 0x18);
    bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;
    if ((uVar3 != 0xfff1) && (bVar8 == 0)) {
      cVar2 = FUN_00270ff0(uVar3);
      if (cVar2 == '\0') {
        *param_3 = 1;
        return 0;
      }
      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/symtab.h",0xa1,"object");
      }
    }
    plVar9 = *(long **)(param_2 + 0x10);
    if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||
        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))
    goto switchD_00275186_caseD_4;
    if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {
      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {
        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;
        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);
      }
      else {
        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);
      }
      cVar2 = FUN_00271390(param_1,plVar9,uVar3);
      if (cVar2 == '\0') {
        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);
        if (plVar6 == (long *)0x0) {
          if (PTR_DAT_0043e6b0[0x20] == '\0') {
            FUN_00270c00();
            goto LAB_002756af;
          }
          if (PTR_DAT_0043e6b0[0x21] == '\0') {
            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {
LAB_002756fc:
                    /* WARNING: Subroutine does not return */
              FUN_0017c650("../../gold/parameters.h",0x5c,"options");
            }
            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {
              if (*(int *)(param_2 + 0x20) == 0) {
                FUN_00270c20();
                goto LAB_002756fc;
              }
              if (*(int *)(param_2 + 0x20) != -1) {
                    /* WARNING: Subroutine does not return */
                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");
              }
            }
          }
          *param_3 = 2;
          return 0;
        }
      }
      else {
        if (plVar6 != (long *)0x0) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");
        }
        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);
        uVar7 = auVar10._8_8_;
        plVar9 = auVar10._0_8_;
        if (plVar9 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");
        }
        uVar3 = auVar10._8_4_;
        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {
          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {
LAB_002756af:
                    /* WARNING: Subroutine does not return */
            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");
          }
          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);
        }
        else {
          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);
        }
        if (plVar6 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");
        }
        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);
      }
      if (uVar7 == 0xffffffffffffffff) {
        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));
      }
      else {
        if ((uVar7 & 0xffffffff) != uVar7) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");
        }
        iVar1 = *(int *)(param_2 + 0x40);
        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {
          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {
            iVar4 = (int)plVar6[0x1a];
          }
          else {
            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);
          }
          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);
        }
        else {
          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;
          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);
        }
      }
      break;
    }
  case 3:
    uVar7 = (ulong)*(uint *)(param_2 + 0x40);
    break;
  case 1:
    if ((bVar8 & 7) != 1) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");
    }
    plVar9 = *(long **)(param_2 + 0x10);
    iVar1 = *(int *)(param_2 + 0x40);
    if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {
      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);
      if (plVar6 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");
      }
      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {
        iVar4 = (int)plVar6[0x1a];
      }
      else {
        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);
      }
      bVar8 = *(byte *)(plVar9 + 4);
      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;
      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);
      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");
      }
    }
    else {
      bVar8 = *(byte *)(plVar9 + 4);
      if ((bVar8 & 1) == 0) {
LAB_00275602:
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/output.h",0xc5,"address");
      }
      iVar4 = (int)plVar9[1];
    }
    uVar3 = iVar4 + iVar1;
    uVar7 = (ulong)uVar3;
    if (*(char *)(param_2 + 0x18) != '\0') {
      if ((bVar8 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/output.h",0xcf,"data_size");
      }
      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);
    }
    break;
  case 2:
    if ((bVar8 & 7) != 2) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/symtab.h",200,"output_segment");
    }
    lVar5 = *(long *)(param_2 + 0x10);
    uVar3 = *(uint *)(param_2 + 0x40);
    if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {
      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);
    }
    uVar7 = (ulong)uVar3;
    iVar1 = *(int *)(param_2 + 0x18);
    if (iVar1 == 1) {
      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));
    }
    else if (iVar1 != 0) {
      if (iVar1 != 2) {
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");
      }
      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));
    }
    break;
  case 4:
switchD_00275186_caseD_4:
    uVar7 = 0;
    break;
  default:
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");
  }
  *param_3 = 0;
  return uVar7;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
MOV RBP,RDX
PUSH RBX
SUB RSP,0x18
MOVZX EDX,byte ptr [RSI + 0x3a]
MOV EAX,EDX
AND EAX,0x7
CMP AL,0x4
JA 0x0027559b
LEA RCX,[0x3868e4]
MOVZX EAX,AL
MOV RBX,RSI
MOVSXD RAX,dword ptr [RCX + RAX*0x4]
ADD RAX,RCX
JMP RAX
AND EDX,0x7
JNZ 0x002755d2
MOVZX R12D,byte ptr [RSI + 0x3b]
MOV R15D,dword ptr [RSI + 0x18]
MOV R13,RDI
SHR R12B,0x5
AND R12D,0x1
CMP R15D,0xfff1
JZ 0x002751bf
TEST R12B,R12B
JZ 0x00275478
MOV R14,qword ptr [RBX + 0x10]
TEST byte ptr [R14 + 0x3c],0x1
JNZ 0x002751e8
MOV RAX,qword ptr [R14]
MOV RDI,R14
CALL qword ptr [RAX + 0x28]
TEST R15D,R15D
JZ 0x002751e8
TEST RAX,RAX
JZ 0x00275340
NOP dword ptr [RAX]
XOR EAX,EAX
MOV dword ptr [RBP],0x0
ADD RSP,0x18
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV EAX,dword ptr [RBX + 0x40]
JMP 0x002751ea
AND EDX,0x7
CMP DL,0x2
JNZ 0x002755ba
MOVZX EDX,byte ptr [RSI + 0x38]
MOV RCX,qword ptr [RSI + 0x10]
MOV EAX,dword ptr [RSI + 0x40]
AND EDX,0xf
CMP DL,0x6
JZ 0x0027522d
ADD EAX,dword ptr [RCX + 0x2b8]
MOV EDX,dword ptr [RBX + 0x18]
CMP EDX,0x1
JZ 0x00275330
TEST EDX,EDX
JZ 0x002751ea
CMP EDX,0x2
JNZ 0x002755ea
ADD EAX,dword ptr [RCX + 0x2e8]
JMP 0x002751ea
AND EDX,0x7
CMP DL,0x1
JNZ 0x0027561a
MOVZX EAX,byte ptr [RSI + 0x38]
MOV R13,qword ptr [RSI + 0x10]
MOV R12D,dword ptr [RSI + 0x40]
AND EAX,0xf
CMP AL,0x6
JZ 0x002752a0
MOVZX EDX,byte ptr [R13 + 0x20]
TEST DL,0x1
JZ 0x00275602
MOV EAX,dword ptr [R13 + 0x8]
ADD EAX,R12D
CMP byte ptr [RBX + 0x18],0x0
JZ 0x002751ea
AND EDX,0x2
JZ 0x00275662
ADD EAX,dword ptr [R13 + 0x10]
JMP 0x002751ea
MOV RAX,qword ptr [R13]
MOV RDI,R13
CALL qword ptr [RAX + 0x48]
MOV R14,RAX
TEST RAX,RAX
JZ 0x0027564a
MOV RAX,qword ptr [RAX]
LEA RDX,[0x1be670]
MOV RAX,qword ptr [RAX + 0x90]
CMP RAX,RDX
JNZ 0x002754c0
MOV RAX,qword ptr [R14 + 0xd0]
MOVZX EDX,byte ptr [R13 + 0x20]
TEST DL,0x1
JZ 0x00275602
MOV RCX,qword ptr [R13 + 0x8]
TEST byte ptr [R14 + 0x20],0x1
JZ 0x00275602
SUB RCX,qword ptr [R14 + 0x8]
ADD RAX,RCX
MOVZX ECX,byte ptr [RBX + 0x3a]
ADD EAX,R12D
AND ECX,0x7
CMP CL,0x1
JZ 0x00275284
LEA RDX,[0x387020]
MOV ESI,0xbe
LEA RDI,[0x3726ed]
CALL 0x0017c650
ADD EAX,dword ptr [RCX + 0x2c8]
JMP 0x002751ea
TEST R12B,R12B
JNZ 0x00275362
CMP R15D,0xfff1
JZ 0x00275200
MOV EDI,R15D
CALL 0x00270ff0
TEST AL,AL
JNZ 0x00275200
MOV RAX,qword ptr [R14]
LEA RSI,[0x156120]
MOV RAX,qword ptr [RAX + 0xc0]
CMP RAX,RSI
JNZ 0x00275531
MOV RDX,qword ptr [R14 + 0x50]
MOV RAX,qword ptr [R14 + 0x58]
MOV ECX,R15D
SUB RAX,RDX
SAR RAX,0x3
CMP RCX,RAX
JNC 0x002756af
MOV R12,qword ptr [RDX + RCX*0x8]
MOV EDX,R15D
MOV RSI,R14
MOV RDI,R13
CALL 0x00271390
TEST AL,AL
JZ 0x002754ca
TEST R12,R12
JNZ 0x002756c7
MOV RDI,qword ptr [R13 + 0x298]
MOV RSI,R14
MOV EDX,R15D
CALL 0x0017f670
MOV R13,RAX
MOV R14,RAX
TEST RAX,RAX
JZ 0x00275692
MOV RAX,qword ptr [RAX]
LEA RSI,[0x156120]
MOV R15D,EDX
MOV RAX,qword ptr [RAX + 0xc0]
CMP RAX,RSI
JNZ 0x00275582
MOV RCX,qword ptr [R13 + 0x50]
MOV RAX,qword ptr [R13 + 0x58]
MOV ESI,EDX
SUB RAX,RCX
SAR RAX,0x3
CMP RSI,RAX
JNC 0x002756af
MOV R12,qword ptr [RCX + RSI*0x8]
TEST R12,R12
JZ 0x00275632
MOV RAX,qword ptr [R13]
MOV ESI,EDX
MOV RDI,R13
CALL qword ptr [RAX + 0xd0]
CMP RAX,-0x1
JZ 0x0027556c
MOV EDX,EAX
MOV R13D,EAX
CMP RDX,RAX
JNZ 0x0027567a
MOVZX EAX,byte ptr [RBX + 0x38]
MOV R14D,dword ptr [RBX + 0x40]
AND EAX,0xf
CMP AL,0x6
JZ 0x00275541
TEST byte ptr [R12 + 0x20],0x1
JZ 0x00275602
LEA EAX,[R14 + R13*0x1]
ADD EAX,dword ptr [R12 + 0x8]
JMP 0x002751ea
MOV EDI,R15D
CALL 0x00270ff0
TEST AL,AL
JZ 0x002754b0
TEST byte ptr [RBX + 0x3a],0x7
JZ 0x002751bf
LEA RDX,[0x3874c4]
MOV ESI,0xa1
LEA RDI,[0x3726ed]
CALL 0x0017c650
MOV dword ptr [RBP],0x1
XOR EAX,EAX
JMP 0x002751f1
MOV RDI,R14
CALL RAX
JMP 0x002752d7
MOV RAX,qword ptr [R14]
MOV ESI,R15D
MOV RDI,R14
CALL qword ptr [RAX + 0xd0]
TEST R12,R12
JNZ 0x0027542e
MOV RAX,qword ptr [0x0043e6b0]
CMP byte ptr [RAX + 0x20],0x0
JZ 0x002756aa
CMP byte ptr [RAX + 0x21],0x0
JNZ 0x00275523
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x002756fc
CMP byte ptr [RAX + 0x5051],0x0
JNZ 0x00275523
MOV EAX,dword ptr [RBX + 0x20]
TEST EAX,EAX
JZ 0x002756f7
CMP EAX,-0x1
JNZ 0x002756df
MOV dword ptr [RBP],0x2
XOR EAX,EAX
JMP 0x002751f1
MOV ESI,R15D
MOV RDI,R14
CALL RAX
MOV R12,RAX
JMP 0x0027539b
MOV RAX,qword ptr [R12]
LEA RDX,[0x1be670]
MOV RAX,qword ptr [RAX + 0x90]
CMP RAX,RDX
JNZ 0x002755b3
MOV RAX,qword ptr [R12 + 0xd0]
LEA R12D,[R14 + R13*0x1]
ADD EAX,R12D
JMP 0x002751ea
MOV ECX,dword ptr [RBX + 0x40]
MOV EDX,R15D
MOV RSI,R14
MOV RDI,R12
CALL 0x001fbe80
JMP 0x002751ea
MOV ESI,EDX
MOV qword ptr [RSP + 0x8],RDX
MOV RDI,R13
CALL RAX
MOV RDX,qword ptr [RSP + 0x8]
MOV R12,RAX
JMP 0x00275416
LEA RDX,[0x387060]
MOV ESI,0xb6a
LEA RDI,[0x386751]
CALL 0x0017c650
MOV RDI,R12
CALL RAX
JMP 0x00275560
LEA RDX,[0x386ff8]
MOV ESI,0xc8
LEA RDI,[0x3726ed]
CALL 0x0017c650
LEA RDX,[0x3874e7]
MOV ESI,0xaa
LEA RDI,[0x3726ed]
CALL 0x0017c650
LEA RDX,[0x387060]
MOV ESI,0xb5c
LEA RDI,[0x386751]
CALL 0x0017c650
LEA RDX,[0x387038]
MOV ESI,0xc5
LEA RDI,[0x373454]
CALL 0x0017c650
LEA RDX,[0x387040]
MOV ESI,0xb5
LEA RDI,[0x3726ed]
CALL 0x0017c650
LEA RDX,[0x387060]
MOV ESI,0xb15
LEA RDI,[0x386751]
CALL 0x0017c650
LEA RDX,[0x387060]
MOV ESI,0xb43
LEA RDI,[0x386751]
CALL 0x0017c650
LEA RDX,[0x387008]
MOV ESI,0xcf
LEA RDI,[0x373454]
CALL 0x0017c650
LEA RDX,[0x387050]
MOV ESI,0xc0
LEA RDI,[0x3734af]
CALL 0x0017c650
LEA RDX,[0x387060]
MOV ESI,0xb10
LEA RDI,[0x386751]
CALL 0x0017c650
CALL 0x00270c00
LEA RDX,[0x387460]
MOV ESI,0x5c8
LEA RDI,[0x36b016]
CALL 0x0017c650
LEA RDX,[0x387060]
MOV ESI,0xb0c
LEA RDI,[0x386751]
CALL 0x0017c650
LEA RDX,[0x387060]
MOV ESI,0xb21
LEA RDI,[0x386751]
CALL 0x0017c650
CALL 0x00270c20
LEA RDX,[0x387508]
MOV ESI,0x5c
LEA RDI,[0x3726d0]
CALL 0x0017c650
(translation_unit "ulong FUN_00275150(long param_1,long param_2,undefined4 *param_3)\n\n{\n  int iVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  long lVar5;\n  long *plVar6;\n  ulong uVar7;\n  byte bVar8;\n  long *plVar9;\n  undefined1 auVar10 [16];\n  \n  bVar8 = *(byte *)(param_2 + 0x3a);\n  switch(bVar8 & 7) {\n  case 0:\n    if ((bVar8 & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar3 = *(uint *)(param_2 + 0x18);\n    bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;\n    if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;\n    if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }\n  case 3:\n    uVar7 = (ulong)*(uint *)(param_2 + 0x40);\n    break;\n  case 1:\n    if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    iVar1 = *(int *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }\n    uVar3 = iVar4 + iVar1;\n    uVar7 = (ulong)uVar3;\n    if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }\n    break;\n  case 2:\n    if ((bVar8 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }\n    lVar5 = *(long *)(param_2 + 0x10);\n    uVar3 = *(uint *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }\n    uVar7 = (ulong)uVar3;\n    iVar1 = *(int *)(param_2 + 0x18);\n    if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }\n    break;\n  case 4:\nswitchD_00275186_caseD_4:\n    uVar7 = 0;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }\n  *param_3 = 0;\n  return uVar7;\n}\n\n" (function_definition "ulong FUN_00275150(long param_1,long param_2,undefined4 *param_3)\n\n{\n  int iVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  long lVar5;\n  long *plVar6;\n  ulong uVar7;\n  byte bVar8;\n  long *plVar9;\n  undefined1 auVar10 [16];\n  \n  bVar8 = *(byte *)(param_2 + 0x3a);\n  switch(bVar8 & 7) {\n  case 0:\n    if ((bVar8 & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar3 = *(uint *)(param_2 + 0x18);\n    bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;\n    if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;\n    if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }\n  case 3:\n    uVar7 = (ulong)*(uint *)(param_2 + 0x40);\n    break;\n  case 1:\n    if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    iVar1 = *(int *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }\n    uVar3 = iVar4 + iVar1;\n    uVar7 = (ulong)uVar3;\n    if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }\n    break;\n  case 2:\n    if ((bVar8 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }\n    lVar5 = *(long *)(param_2 + 0x10);\n    uVar3 = *(uint *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }\n    uVar7 = (ulong)uVar3;\n    iVar1 = *(int *)(param_2 + 0x18);\n    if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }\n    break;\n  case 4:\nswitchD_00275186_caseD_4:\n    uVar7 = 0;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }\n  *param_3 = 0;\n  return uVar7;\n}" type_identifier (function_declarator "FUN_00275150(long param_1,long param_2,undefined4 *param_3)" identifier (parameter_list "(long param_1,long param_2,undefined4 *param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  long lVar5;\n  long *plVar6;\n  ulong uVar7;\n  byte bVar8;\n  long *plVar9;\n  undefined1 auVar10 [16];\n  \n  bVar8 = *(byte *)(param_2 + 0x3a);\n  switch(bVar8 & 7) {\n  case 0:\n    if ((bVar8 & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar3 = *(uint *)(param_2 + 0x18);\n    bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;\n    if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;\n    if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }\n  case 3:\n    uVar7 = (ulong)*(uint *)(param_2 + 0x40);\n    break;\n  case 1:\n    if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    iVar1 = *(int *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }\n    uVar3 = iVar4 + iVar1;\n    uVar7 = (ulong)uVar3;\n    if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }\n    break;\n  case 2:\n    if ((bVar8 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }\n    lVar5 = *(long *)(param_2 + 0x10);\n    uVar3 = *(uint *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }\n    uVar7 = (ulong)uVar3;\n    iVar1 = *(int *)(param_2 + 0x18);\n    if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }\n    break;\n  case 4:\nswitchD_00275186_caseD_4:\n    uVar7 = 0;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }\n  *param_3 = 0;\n  return uVar7;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "long *plVar9;" (sized_type_specifier "long" long) (pointer_declarator "*plVar9" * identifier) ;) (declaration "undefined1 auVar10 [16];" type_identifier (array_declarator "auVar10 [16]" identifier [ number_literal ]) ;) (expression_statement "bVar8 = *(byte *)(param_2 + 0x3a);" (assignment_expression "bVar8 = *(byte *)(param_2 + 0x3a)" identifier = (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) ))))) ;) (switch_statement "switch(bVar8 & 7) {\n  case 0:\n    if ((bVar8 & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar3 = *(uint *)(param_2 + 0x18);\n    bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;\n    if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;\n    if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }\n  case 3:\n    uVar7 = (ulong)*(uint *)(param_2 + 0x40);\n    break;\n  case 1:\n    if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    iVar1 = *(int *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }\n    uVar3 = iVar4 + iVar1;\n    uVar7 = (ulong)uVar3;\n    if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }\n    break;\n  case 2:\n    if ((bVar8 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }\n    lVar5 = *(long *)(param_2 + 0x10);\n    uVar3 = *(uint *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }\n    uVar7 = (ulong)uVar3;\n    iVar1 = *(int *)(param_2 + 0x18);\n    if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }\n    break;\n  case 4:\nswitchD_00275186_caseD_4:\n    uVar7 = 0;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }" switch (parenthesized_expression "(bVar8 & 7)" ( (binary_expression "bVar8 & 7" identifier & number_literal) )) (compound_statement "{\n  case 0:\n    if ((bVar8 & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar3 = *(uint *)(param_2 + 0x18);\n    bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;\n    if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;\n    if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }\n  case 3:\n    uVar7 = (ulong)*(uint *)(param_2 + 0x40);\n    break;\n  case 1:\n    if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    iVar1 = *(int *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }\n    uVar3 = iVar4 + iVar1;\n    uVar7 = (ulong)uVar3;\n    if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }\n    break;\n  case 2:\n    if ((bVar8 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }\n    lVar5 = *(long *)(param_2 + 0x10);\n    uVar3 = *(uint *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }\n    uVar7 = (ulong)uVar3;\n    iVar1 = *(int *)(param_2 + 0x18);\n    if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }\n    break;\n  case 4:\nswitchD_00275186_caseD_4:\n    uVar7 = 0;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }" { (case_statement "case 0:\n    if ((bVar8 & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar3 = *(uint *)(param_2 + 0x18);\n    bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;\n    if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;\n    if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }" case number_literal : (if_statement "if ((bVar8 & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }" if (parenthesized_expression "((bVar8 & 7) != 0)" ( (binary_expression "(bVar8 & 7) != 0" (parenthesized_expression "(bVar8 & 7)" ( (binary_expression "bVar8 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }" { comment (expression_statement "FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_0017c650("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;) })) (expression_statement "uVar3 = *(uint *)(param_2 + 0x18);" (assignment_expression "uVar3 = *(uint *)(param_2 + 0x18)" identifier = (pointer_expression "*(uint *)(param_2 + 0x18)" * (cast_expression "(uint *)(param_2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;" (assignment_expression "bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1" identifier = (binary_expression "*(byte *)(param_2 + 0x3b) >> 5 & 1" (binary_expression "*(byte *)(param_2 + 0x3b) >> 5" (pointer_expression "*(byte *)(param_2 + 0x3b)" * (cast_expression "(byte *)(param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3b)" ( (binary_expression "param_2 + 0x3b" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) (if_statement "if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }" if (parenthesized_expression "((uVar3 != 0xfff1) && (bVar8 == 0))" ( (binary_expression "(uVar3 != 0xfff1) && (bVar8 == 0)" (parenthesized_expression "(uVar3 != 0xfff1)" ( (binary_expression "uVar3 != 0xfff1" identifier != number_literal) )) && (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }" { (expression_statement "cVar2 = FUN_00270ff0(uVar3);" (assignment_expression "cVar2 = FUN_00270ff0(uVar3)" identifier = (call_expression "FUN_00270ff0(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (if_statement "if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *param_3 = 1;\n        return 0;\n      }" { (expression_statement "*param_3 = 1;" (assignment_expression "*param_3 = 1" (pointer_expression "*param_3" * identifier) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }" if (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }" { comment (expression_statement "FUN_0017c650("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_0017c650("../../gold/symtab.h",0xa1,"object")" identifier (argument_list "("../../gold/symtab.h",0xa1,"object")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") ))) ;) })) })) (expression_statement "plVar9 = *(long **)(param_2 + 0x10);" (assignment_expression "plVar9 = *(long **)(param_2 + 0x10)" identifier = (pointer_expression "*(long **)(param_2 + 0x10)" * (cast_expression "(long **)(param_2 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;" if (parenthesized_expression "((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))" ( (binary_expression "(((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0)" (parenthesized_expression "(((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0))" ( (binary_expression "((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)" (parenthesized_expression "((*(byte *)((long)plVar9 + 0x3c) & 1) != 0)" ( (binary_expression "(*(byte *)((long)plVar9 + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)((long)plVar9 + 0x3c) & 1)" ( (binary_expression "*(byte *)((long)plVar9 + 0x3c) & 1" (pointer_expression "*(byte *)((long)plVar9 + 0x3c)" * (cast_expression "(byte *)((long)plVar9 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar9 + 0x3c)" ( (binary_expression "(long)plVar9 + 0x3c" (cast_expression "(long)plVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)" ( (comma_expression "lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0" (assignment_expression "lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9)" identifier = (call_expression "(**(code **)(*plVar9 + 0x28))(plVar9)" (parenthesized_expression "(**(code **)(*plVar9 + 0x28))" ( (pointer_expression "**(code **)(*plVar9 + 0x28)" * (pointer_expression "*(code **)(*plVar9 + 0x28)" * (cast_expression "(code **)(*plVar9 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar9 + 0x28)" ( (binary_expression "*plVar9 + 0x28" (pointer_expression "*plVar9" * identifier) + number_literal) ))))) )) (argument_list "(plVar9)" ( identifier )))) , (binary_expression "uVar3 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(lVar5 != 0)" ( (binary_expression "lVar5 != 0" identifier != number_literal) ))) )) (goto_statement "goto switchD_00275186_caseD_4;" goto statement_identifier ;)) (if_statement "if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }" if (parenthesized_expression "((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0'))))" ( (binary_expression "(bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))" (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) || (parenthesized_expression "((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))" ( (parenthesized_expression "(uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0'))" ( (binary_expression "uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')" (binary_expression "uVar3 != 0xfff1" identifier != number_literal) && (parenthesized_expression "(cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')" ( (comma_expression "cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0'" (assignment_expression "cVar2 = FUN_00270ff0(uVar3)" identifier = (call_expression "FUN_00270ff0(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) , (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) ))) )) (compound_statement "{\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }" { (if_statement "if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }" if (parenthesized_expression "(*(code **)(*plVar9 + 0xc0) == FUN_00156120)" ( (binary_expression "*(code **)(*plVar9 + 0xc0) == FUN_00156120" (pointer_expression "*(code **)(*plVar9 + 0xc0)" * (cast_expression "(code **)(*plVar9 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar9 + 0xc0)" ( (binary_expression "*plVar9 + 0xc0" (pointer_expression "*plVar9" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }" { (if_statement "if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;" if (parenthesized_expression "((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3)" ( (binary_expression "(ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3" (call_expression "(ulong)(plVar9[0xb] - plVar9[10] >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(plVar9[0xb] - plVar9[10] >> 3)" ( (binary_expression "plVar9[0xb] - plVar9[10] >> 3" (binary_expression "plVar9[0xb] - plVar9[10]" (subscript_expression "plVar9[0xb]" identifier [ number_literal ]) - (subscript_expression "plVar9[10]" identifier [ number_literal ])) >> number_literal) ))) <= (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) )) (goto_statement "goto LAB_002756af;" goto statement_identifier ;)) (expression_statement "plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);" (assignment_expression "plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8)" identifier = (pointer_expression "*(long **)(plVar9[10] + (ulong)uVar3 * 8)" * (cast_expression "(long **)(plVar9[10] + (ulong)uVar3 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plVar9[10] + (ulong)uVar3 * 8)" ( (binary_expression "plVar9[10] + (ulong)uVar3 * 8" (subscript_expression "plVar9[10]" identifier [ number_literal ]) + (binary_expression "(ulong)uVar3 * 8" (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ))))) ;) }) (else_clause "else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }" else (compound_statement "{\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }" { (expression_statement "plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);" (assignment_expression "plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3)" identifier = (cast_expression "(long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3)" (parenthesized_expression "(**(code **)(*plVar9 + 0xc0))" ( (pointer_expression "**(code **)(*plVar9 + 0xc0)" * (pointer_expression "*(code **)(*plVar9 + 0xc0)" * (cast_expression "(code **)(*plVar9 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar9 + 0xc0)" ( (binary_expression "*plVar9 + 0xc0" (pointer_expression "*plVar9" * identifier) + number_literal) ))))) )) (argument_list "(plVar9,uVar3)" ( identifier , identifier ))))) ;) }))) (expression_statement "cVar2 = FUN_00271390(param_1,plVar9,uVar3);" (assignment_expression "cVar2 = FUN_00271390(param_1,plVar9,uVar3)" identifier = (call_expression "FUN_00271390(param_1,plVar9,uVar3)" identifier (argument_list "(param_1,plVar9,uVar3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }" { (expression_statement "uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);" (assignment_expression "uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3)" identifier = (call_expression "(**(code **)(*plVar9 + 0xd0))(plVar9,uVar3)" (parenthesized_expression "(**(code **)(*plVar9 + 0xd0))" ( (pointer_expression "**(code **)(*plVar9 + 0xd0)" * (pointer_expression "*(code **)(*plVar9 + 0xd0)" * (cast_expression "(code **)(*plVar9 + 0xd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar9 + 0xd0)" ( (binary_expression "*plVar9 + 0xd0" (pointer_expression "*plVar9" * identifier) + number_literal) ))))) )) (argument_list "(plVar9,uVar3)" ( identifier , identifier )))) ;) (if_statement "if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }" if (parenthesized_expression "(plVar6 == (long *)0x0)" ( (binary_expression "plVar6 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }" { (if_statement "if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }" if (parenthesized_expression "(PTR_DAT_0043e6b0[0x20] == '\0')" ( (binary_expression "PTR_DAT_0043e6b0[0x20] == '\0'" (subscript_expression "PTR_DAT_0043e6b0[0x20]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            FUN_00270c00();\n            goto LAB_002756af;\n          }" { (expression_statement "FUN_00270c00();" (call_expression "FUN_00270c00()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_002756af;" goto statement_identifier ;) })) (if_statement "if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }" if (parenthesized_expression "(PTR_DAT_0043e6b0[0x21] == '\0')" ( (binary_expression "PTR_DAT_0043e6b0[0x21] == '\0'" (subscript_expression "PTR_DAT_0043e6b0[0x21]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }" { (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }" if (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }" { (labeled_statement "LAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "FUN_0017c650("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0017c650("../../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 (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }" { (if_statement "if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }" if (parenthesized_expression "(*(int *)(param_2 + 0x20) == 0)" ( (binary_expression "*(int *)(param_2 + 0x20) == 0" (pointer_expression "*(int *)(param_2 + 0x20)" * (cast_expression "(int *)(param_2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }" { (expression_statement "FUN_00270c20();" (call_expression "FUN_00270c20()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_002756fc;" goto statement_identifier ;) })) (if_statement "if (*(int *)(param_2 + 0x20) != -1) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }" if (parenthesized_expression "(*(int *)(param_2 + 0x20) != -1)" ( (binary_expression "*(int *)(param_2 + 0x20) != -1" (pointer_expression "*(int *)(param_2 + 0x20)" * (cast_expression "(int *)(param_2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }" { comment (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb21,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) })) })) (expression_statement "*param_3 = 2;" (assignment_expression "*param_3 = 2" (pointer_expression "*param_3" * identifier) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n        if (plVar6 != (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }" else (compound_statement "{\n        if (plVar6 != (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }" { (if_statement "if (plVar6 != (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }" if (parenthesized_expression "(plVar6 != (long *)0x0)" ( (binary_expression "plVar6 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }" { comment (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb0c,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (expression_statement "auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);" (assignment_expression "auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3)" identifier = (call_expression "FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x298)" * (cast_expression "(undefined8 *)(param_1 + 0x298)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) , identifier , identifier )))) ;) (expression_statement "uVar7 = auVar10._8_8_;" (assignment_expression "uVar7 = auVar10._8_8_" identifier = (field_expression "auVar10._8_8_" identifier . field_identifier)) ;) (expression_statement "plVar9 = auVar10._0_8_;" (assignment_expression "plVar9 = auVar10._0_8_" identifier = (field_expression "auVar10._0_8_" identifier . field_identifier)) ;) (if_statement "if (plVar9 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }" if (parenthesized_expression "(plVar9 == (long *)0x0)" ( (binary_expression "plVar9 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }" { comment (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb10,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (expression_statement "uVar3 = auVar10._8_4_;" (assignment_expression "uVar3 = auVar10._8_4_" identifier = (field_expression "auVar10._8_4_" identifier . field_identifier)) ;) (if_statement "if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }" if (parenthesized_expression "(*(code **)(*plVar9 + 0xc0) == FUN_00156120)" ( (binary_expression "*(code **)(*plVar9 + 0xc0) == FUN_00156120" (pointer_expression "*(code **)(*plVar9 + 0xc0)" * (cast_expression "(code **)(*plVar9 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar9 + 0xc0)" ( (binary_expression "*plVar9 + 0xc0" (pointer_expression "*plVar9" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }" { (if_statement "if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }" if (parenthesized_expression "((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff))" ( (binary_expression "(ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)" (call_expression "(ulong)(plVar9[0xb] - plVar9[10] >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(plVar9[0xb] - plVar9[10] >> 3)" ( (binary_expression "plVar9[0xb] - plVar9[10] >> 3" (binary_expression "plVar9[0xb] - plVar9[10]" (subscript_expression "plVar9[0xb]" identifier [ number_literal ]) - (subscript_expression "plVar9[10]" identifier [ number_literal ])) >> number_literal) ))) <= (parenthesized_expression "(uVar7 & 0xffffffff)" ( (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) ))) )) (compound_statement "{\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }" { (labeled_statement "LAB_002756af:\n                    /* WARNING: Subroutine does not return */\n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");" statement_identifier : comment (expression_statement "FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");" (call_expression "FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section")" identifier (argument_list "("../../gold/object.h",0x5c8,"do_output_section")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""do_output_section"" " string_content ") ))) ;)) })) (expression_statement "plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);" (assignment_expression "plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8)" identifier = (pointer_expression "*(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8)" * (cast_expression "(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plVar9[10] + (uVar7 & 0xffffffff) * 8)" ( (binary_expression "plVar9[10] + (uVar7 & 0xffffffff) * 8" (subscript_expression "plVar9[10]" identifier [ number_literal ]) + (binary_expression "(uVar7 & 0xffffffff) * 8" (parenthesized_expression "(uVar7 & 0xffffffff)" ( (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) )) * number_literal)) ))))) ;) }) (else_clause "else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }" else (compound_statement "{\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }" { (expression_statement "plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);" (assignment_expression "plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff)" identifier = (cast_expression "(long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff)" (parenthesized_expression "(**(code **)(*plVar9 + 0xc0))" ( (pointer_expression "**(code **)(*plVar9 + 0xc0)" * (pointer_expression "*(code **)(*plVar9 + 0xc0)" * (cast_expression "(code **)(*plVar9 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar9 + 0xc0)" ( (binary_expression "*plVar9 + 0xc0" (pointer_expression "*plVar9" * identifier) + number_literal) ))))) )) (argument_list "(plVar9,uVar7 & 0xffffffff)" ( identifier , (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) ))))) ;) }))) (if_statement "if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }" if (parenthesized_expression "(plVar6 == (long *)0x0)" ( (binary_expression "plVar6 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }" { comment (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb15,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (expression_statement "uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);" (assignment_expression "uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff)" identifier = (call_expression "(**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff)" (parenthesized_expression "(**(code **)(*plVar9 + 0xd0))" ( (pointer_expression "**(code **)(*plVar9 + 0xd0)" * (pointer_expression "*(code **)(*plVar9 + 0xd0)" * (cast_expression "(code **)(*plVar9 + 0xd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar9 + 0xd0)" ( (binary_expression "*plVar9 + 0xd0" (pointer_expression "*plVar9" * identifier) + number_literal) ))))) )) (argument_list "(plVar9,uVar7 & 0xffffffff)" ( identifier , (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) )))) ;) }))) (if_statement "if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }" if (parenthesized_expression "(uVar7 == 0xffffffffffffffff)" ( (binary_expression "uVar7 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }" { (expression_statement "uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));" (assignment_expression "uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40))" identifier = (call_expression "FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40))" identifier (argument_list "(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40))" ( identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(param_2 + 0x40)" * (cast_expression "(undefined4 *)(param_2 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) )))) )))) ;) }) (else_clause "else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }" else (compound_statement "{\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }" { (if_statement "if ((uVar7 & 0xffffffff) != uVar7) {\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }" if (parenthesized_expression "((uVar7 & 0xffffffff) != uVar7)" ( (binary_expression "(uVar7 & 0xffffffff) != uVar7" (parenthesized_expression "(uVar7 & 0xffffffff)" ( (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) )) != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }" { comment (expression_statement "FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");" (call_expression "FUN_0017c650("../../gold/gold.h",0xc0,"convert_types")" identifier (argument_list "("../../gold/gold.h",0xc0,"convert_types")" ( (string_literal ""../../gold/gold.h"" " string_content ") , number_literal , (string_literal ""convert_types"" " string_content ") ))) ;) })) (expression_statement "iVar1 = *(int *)(param_2 + 0x40);" (assignment_expression "iVar1 = *(int *)(param_2 + 0x40)" identifier = (pointer_expression "*(int *)(param_2 + 0x40)" * (cast_expression "(int *)(param_2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }" if (parenthesized_expression "((*(byte *)(param_2 + 0x38) & 0xf) == 6)" ( (binary_expression "(*(byte *)(param_2 + 0x38) & 0xf) == 6" (parenthesized_expression "(*(byte *)(param_2 + 0x38) & 0xf)" ( (binary_expression "*(byte *)(param_2 + 0x38) & 0xf" (pointer_expression "*(byte *)(param_2 + 0x38)" * (cast_expression "(byte *)(param_2 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }" { (if_statement "if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }" if (parenthesized_expression "(*(code **)(*plVar6 + 0x90) == FUN_001be670)" ( (binary_expression "*(code **)(*plVar6 + 0x90) == FUN_001be670" (pointer_expression "*(code **)(*plVar6 + 0x90)" * (cast_expression "(code **)(*plVar6 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x90)" ( (binary_expression "*plVar6 + 0x90" (pointer_expression "*plVar6" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n            iVar4 = (int)plVar6[0x1a];\n          }" { (expression_statement "iVar4 = (int)plVar6[0x1a];" (assignment_expression "iVar4 = (int)plVar6[0x1a]" identifier = (cast_expression "(int)plVar6[0x1a]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar6[0x1a]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }" else (compound_statement "{\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }" { (expression_statement "iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);" (assignment_expression "iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6)" identifier = (call_expression "(**(code **)(*plVar6 + 0x90))(plVar6)" (parenthesized_expression "(**(code **)(*plVar6 + 0x90))" ( (pointer_expression "**(code **)(*plVar6 + 0x90)" * (pointer_expression "*(code **)(*plVar6 + 0x90)" * (cast_expression "(code **)(*plVar6 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x90)" ( (binary_expression "*plVar6 + 0x90" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "(plVar6)" ( identifier )))) ;) }))) (expression_statement "uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);" (assignment_expression "uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7)" identifier = (call_expression "(ulong)(uint)(iVar4 + iVar1 + (int)uVar7)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(iVar4 + iVar1 + (int)uVar7)" ( (binary_expression "iVar4 + iVar1 + (int)uVar7" (binary_expression "iVar4 + iVar1" identifier + identifier) + (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) (else_clause "else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }" else (compound_statement "{\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }" { (if_statement "if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;" if (parenthesized_expression "((*(byte *)(plVar6 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)(plVar6 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(plVar6 + 4) & 1)" ( (binary_expression "*(byte *)(plVar6 + 4) & 1" (pointer_expression "*(byte *)(plVar6 + 4)" * (cast_expression "(byte *)(plVar6 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 4)" ( (binary_expression "plVar6 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00275602;" goto statement_identifier ;)) (expression_statement "uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);" (assignment_expression "uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1])" identifier = (call_expression "(ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1])" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(iVar1 + (int)uVar7 + (int)plVar6[1])" ( (binary_expression "iVar1 + (int)uVar7 + (int)plVar6[1]" (binary_expression "iVar1 + (int)uVar7" identifier + (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) + (cast_expression "(int)plVar6[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar6[1]" identifier [ number_literal ]))) )))) ;) }))) }))) (break_statement "break;" break ;) }))) (case_statement "case 3:\n    uVar7 = (ulong)*(uint *)(param_2 + 0x40);\n    break;" case number_literal : (expression_statement "uVar7 = (ulong)*(uint *)(param_2 + 0x40);" (assignment_expression "uVar7 = (ulong)*(uint *)(param_2 + 0x40)" identifier = (binary_expression "(ulong)*(uint *)(param_2 + 0x40)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(param_2 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n    if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    iVar1 = *(int *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }\n    uVar3 = iVar4 + iVar1;\n    uVar7 = (ulong)uVar3;\n    if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }\n    break;" case number_literal : (if_statement "if ((bVar8 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }" if (parenthesized_expression "((bVar8 & 7) != 1)" ( (binary_expression "(bVar8 & 7) != 1" (parenthesized_expression "(bVar8 & 7)" ( (binary_expression "bVar8 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }" { comment (expression_statement "FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");" (call_expression "FUN_0017c650("../../gold/symtab.h",0xb5,"output_data")" identifier (argument_list "("../../gold/symtab.h",0xb5,"output_data")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""output_data"" " string_content ") ))) ;) })) (expression_statement "plVar9 = *(long **)(param_2 + 0x10);" (assignment_expression "plVar9 = *(long **)(param_2 + 0x10)" identifier = (pointer_expression "*(long **)(param_2 + 0x10)" * (cast_expression "(long **)(param_2 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)(param_2 + 0x40);" (assignment_expression "iVar1 = *(int *)(param_2 + 0x40)" identifier = (pointer_expression "*(int *)(param_2 + 0x40)" * (cast_expression "(int *)(param_2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }" if (parenthesized_expression "((*(byte *)(param_2 + 0x38) & 0xf) == 6)" ( (binary_expression "(*(byte *)(param_2 + 0x38) & 0xf) == 6" (parenthesized_expression "(*(byte *)(param_2 + 0x38) & 0xf)" ( (binary_expression "*(byte *)(param_2 + 0x38) & 0xf" (pointer_expression "*(byte *)(param_2 + 0x38)" * (cast_expression "(byte *)(param_2 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }" { (expression_statement "plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);" (assignment_expression "plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9)" identifier = (cast_expression "(long *)(**(code **)(*plVar9 + 0x48))(plVar9)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*plVar9 + 0x48))(plVar9)" (parenthesized_expression "(**(code **)(*plVar9 + 0x48))" ( (pointer_expression "**(code **)(*plVar9 + 0x48)" * (pointer_expression "*(code **)(*plVar9 + 0x48)" * (cast_expression "(code **)(*plVar9 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar9 + 0x48)" ( (binary_expression "*plVar9 + 0x48" (pointer_expression "*plVar9" * identifier) + number_literal) ))))) )) (argument_list "(plVar9)" ( identifier ))))) ;) (if_statement "if (plVar6 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }" if (parenthesized_expression "(plVar6 == (long *)0x0)" ( (binary_expression "plVar6 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }" { comment (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb43,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (if_statement "if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }" if (parenthesized_expression "(*(code **)(*plVar6 + 0x90) == FUN_001be670)" ( (binary_expression "*(code **)(*plVar6 + 0x90) == FUN_001be670" (pointer_expression "*(code **)(*plVar6 + 0x90)" * (cast_expression "(code **)(*plVar6 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x90)" ( (binary_expression "*plVar6 + 0x90" (pointer_expression "*plVar6" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n        iVar4 = (int)plVar6[0x1a];\n      }" { (expression_statement "iVar4 = (int)plVar6[0x1a];" (assignment_expression "iVar4 = (int)plVar6[0x1a]" identifier = (cast_expression "(int)plVar6[0x1a]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar6[0x1a]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }" else (compound_statement "{\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }" { (expression_statement "iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);" (assignment_expression "iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6)" identifier = (call_expression "(**(code **)(*plVar6 + 0x90))(plVar6)" (parenthesized_expression "(**(code **)(*plVar6 + 0x90))" ( (pointer_expression "**(code **)(*plVar6 + 0x90)" * (pointer_expression "*(code **)(*plVar6 + 0x90)" * (cast_expression "(code **)(*plVar6 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x90)" ( (binary_expression "*plVar6 + 0x90" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "(plVar6)" ( identifier )))) ;) }))) (expression_statement "bVar8 = *(byte *)(plVar9 + 4);" (assignment_expression "bVar8 = *(byte *)(plVar9 + 4)" identifier = (pointer_expression "*(byte *)(plVar9 + 4)" * (cast_expression "(byte *)(plVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar9 + 4)" ( (binary_expression "plVar9 + 4" identifier + number_literal) ))))) ;) (if_statement "if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;" if (parenthesized_expression "(((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0))" ( (binary_expression "((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)" (parenthesized_expression "((bVar8 & 1) == 0)" ( (binary_expression "(bVar8 & 1) == 0" (parenthesized_expression "(bVar8 & 1)" ( (binary_expression "bVar8 & 1" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((*(byte *)(plVar6 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)(plVar6 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(plVar6 + 4) & 1)" ( (binary_expression "*(byte *)(plVar6 + 4) & 1" (pointer_expression "*(byte *)(plVar6 + 4)" * (cast_expression "(byte *)(plVar6 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 4)" ( (binary_expression "plVar6 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00275602;" goto statement_identifier ;)) (expression_statement "iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);" (assignment_expression "iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1])" identifier = (binary_expression "iVar4 + ((int)plVar9[1] - (int)plVar6[1])" identifier + (parenthesized_expression "((int)plVar9[1] - (int)plVar6[1])" ( (binary_expression "(int)plVar9[1] - (int)plVar6[1]" (cast_expression "(int)plVar9[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar9[1]" identifier [ number_literal ])) - (cast_expression "(int)plVar6[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar6[1]" identifier [ number_literal ]))) )))) ;) (if_statement "if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }" if (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) != 1)" ( (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) != 1" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }" { comment (expression_statement "FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");" (call_expression "FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end")" identifier (argument_list "("../../gold/symtab.h",0xbe,"offset_is_from_end")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""offset_is_from_end"" " string_content ") ))) ;) })) }) (else_clause "else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }" else (compound_statement "{\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }" { (expression_statement "bVar8 = *(byte *)(plVar9 + 4);" (assignment_expression "bVar8 = *(byte *)(plVar9 + 4)" identifier = (pointer_expression "*(byte *)(plVar9 + 4)" * (cast_expression "(byte *)(plVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar9 + 4)" ( (binary_expression "plVar9 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }" if (parenthesized_expression "((bVar8 & 1) == 0)" ( (binary_expression "(bVar8 & 1) == 0" (parenthesized_expression "(bVar8 & 1)" ( (binary_expression "bVar8 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }" { (labeled_statement "LAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xc5,"address");" statement_identifier : comment (expression_statement "FUN_0017c650("../../gold/output.h",0xc5,"address");" (call_expression "FUN_0017c650("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;)) })) (expression_statement "iVar4 = (int)plVar9[1];" (assignment_expression "iVar4 = (int)plVar9[1]" identifier = (cast_expression "(int)plVar9[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar9[1]" identifier [ number_literal ]))) ;) }))) (expression_statement "uVar3 = iVar4 + iVar1;" (assignment_expression "uVar3 = iVar4 + iVar1" identifier = (binary_expression "iVar4 + iVar1" identifier + identifier)) ;) (expression_statement "uVar7 = (ulong)uVar3;" (assignment_expression "uVar7 = (ulong)uVar3" identifier = (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }" if (parenthesized_expression "(*(char *)(param_2 + 0x18) != '\0')" ( (binary_expression "*(char *)(param_2 + 0x18) != '\0'" (pointer_expression "*(char *)(param_2 + 0x18)" * (cast_expression "(char *)(param_2 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((bVar8 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }" { (if_statement "if ((bVar8 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }" if (parenthesized_expression "((bVar8 & 2) == 0)" ( (binary_expression "(bVar8 & 2) == 0" (parenthesized_expression "(bVar8 & 2)" ( (binary_expression "bVar8 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }" { comment (expression_statement "FUN_0017c650("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_0017c650("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;) })) (expression_statement "uVar7 = (ulong)(uVar3 + (int)plVar9[2]);" (assignment_expression "uVar7 = (ulong)(uVar3 + (int)plVar9[2])" identifier = (call_expression "(ulong)(uVar3 + (int)plVar9[2])" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 + (int)plVar9[2])" ( (binary_expression "uVar3 + (int)plVar9[2]" identifier + (cast_expression "(int)plVar9[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar9[2]" identifier [ number_literal ]))) )))) ;) })) (break_statement "break;" break ;)) (case_statement "case 2:\n    if ((bVar8 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }\n    lVar5 = *(long *)(param_2 + 0x10);\n    uVar3 = *(uint *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }\n    uVar7 = (ulong)uVar3;\n    iVar1 = *(int *)(param_2 + 0x18);\n    if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }\n    break;" case number_literal : (if_statement "if ((bVar8 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }" if (parenthesized_expression "((bVar8 & 7) != 2)" ( (binary_expression "(bVar8 & 7) != 2" (parenthesized_expression "(bVar8 & 7)" ( (binary_expression "bVar8 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }" { comment (expression_statement "FUN_0017c650("../../gold/symtab.h",200,"output_segment");" (call_expression "FUN_0017c650("../../gold/symtab.h",200,"output_segment")" identifier (argument_list "("../../gold/symtab.h",200,"output_segment")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""output_segment"" " string_content ") ))) ;) })) (expression_statement "lVar5 = *(long *)(param_2 + 0x10);" (assignment_expression "lVar5 = *(long *)(param_2 + 0x10)" identifier = (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)(param_2 + 0x40);" (assignment_expression "uVar3 = *(uint *)(param_2 + 0x40)" identifier = (pointer_expression "*(uint *)(param_2 + 0x40)" * (cast_expression "(uint *)(param_2 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }" if (parenthesized_expression "((*(byte *)(param_2 + 0x38) & 0xf) != 6)" ( (binary_expression "(*(byte *)(param_2 + 0x38) & 0xf) != 6" (parenthesized_expression "(*(byte *)(param_2 + 0x38) & 0xf)" ( (binary_expression "*(byte *)(param_2 + 0x38) & 0xf" (pointer_expression "*(byte *)(param_2 + 0x38)" * (cast_expression "(byte *)(param_2 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }" { (expression_statement "uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);" (assignment_expression "uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8)" identifier = (binary_expression "uVar3 + *(int *)(lVar5 + 0x2b8)" identifier + (pointer_expression "*(int *)(lVar5 + 0x2b8)" * (cast_expression "(int *)(lVar5 + 0x2b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x2b8)" ( (binary_expression "lVar5 + 0x2b8" identifier + number_literal) )))))) ;) })) (expression_statement "uVar7 = (ulong)uVar3;" (assignment_expression "uVar7 = (ulong)uVar3" identifier = (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "iVar1 = *(int *)(param_2 + 0x18);" (assignment_expression "iVar1 = *(int *)(param_2 + 0x18)" identifier = (pointer_expression "*(int *)(param_2 + 0x18)" * (cast_expression "(int *)(param_2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }" if (parenthesized_expression "(iVar1 == 1)" ( (binary_expression "iVar1 == 1" identifier == number_literal) )) (compound_statement "{\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }" { (expression_statement "uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));" (assignment_expression "uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8))" identifier = (call_expression "(ulong)(uVar3 + *(int *)(lVar5 + 0x2c8))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 + *(int *)(lVar5 + 0x2c8))" ( (binary_expression "uVar3 + *(int *)(lVar5 + 0x2c8)" identifier + (pointer_expression "*(int *)(lVar5 + 0x2c8)" * (cast_expression "(int *)(lVar5 + 0x2c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x2c8)" ( (binary_expression "lVar5 + 0x2c8" identifier + number_literal) ))))) )))) ;) }) (else_clause "else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }" else (if_statement "if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      if (iVar1 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }" { (if_statement "if (iVar1 != 2) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }" if (parenthesized_expression "(iVar1 != 2)" ( (binary_expression "iVar1 != 2" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }" { comment (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb5c,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (expression_statement "uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));" (assignment_expression "uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8))" identifier = (call_expression "(ulong)(uVar3 + *(int *)(lVar5 + 0x2e8))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 + *(int *)(lVar5 + 0x2e8))" ( (binary_expression "uVar3 + *(int *)(lVar5 + 0x2e8)" identifier + (pointer_expression "*(int *)(lVar5 + 0x2e8)" * (cast_expression "(int *)(lVar5 + 0x2e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x2e8)" ( (binary_expression "lVar5 + 0x2e8" identifier + number_literal) ))))) )))) ;) })))) (break_statement "break;" break ;)) (case_statement "case 4:\nswitchD_00275186_caseD_4:\n    uVar7 = 0;\n    break;" case number_literal : (labeled_statement "switchD_00275186_caseD_4:\n    uVar7 = 0;" statement_identifier : (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;)) (break_statement "break;" break ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");" default : comment (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb6a,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;)) })) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (return_statement "return uVar7;" return identifier ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: Value_type compute_final_value<32>(Symbol_table * this,\n   Sized_symbol<32> * sym, Compute_final_value_status * pstatus) */\n\nValue_type __thiscall\ngold::Symbol_table::compute_final_value<32>\n          (Symbol_table *this,Sized_symbol<32> *sym,Compute_final_value_status *pstatus)\n\n{\n  Output_data *pOVar1;\n  _func_int_varargs *p_Var2;\n  pointer ppOVar3;\n  pointer ppOVar4;\n  bool bVar5;\n  Value_type VVar6;\n  int iVar7;\n  undefined4 extraout_var;\n  undefined4 extraout_var_00;\n  Output_segment *pOVar9;\n  ulong uVar10;\n  undefined4 extraout_var_01;\n  undefined4 extraout_var_02;\n  uint64_t uVar11;\n  Output_section *this_00;\n  uint uVar12;\n  Parameters *this_1;\n  Output_segment *this_01;\n  byte bVar13;\n  Section_id SVar14;\n  long *plVar8;\n  \n  bVar13 = (sym->super_Symbol).field_0x3a;\n  switch(bVar13 & 7) {\n  case 0:\n    if ((bVar13 & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar12 = (sym->super_Symbol).u2_.shndx;\n    bVar13 = (byte)(sym->super_Symbol).field_0x3b >> 5 & 1;\n    if ((uVar12 != 0xfff1) && (bVar13 == 0)) {\n      bVar5 = Symbol::is_common_shndx(uVar12);\n      if (!bVar5) {\n        *pstatus = CFVS_UNSUPPORTED_SYMBOL_SECTION;\n        return 0;\n      }\n      if (((sym->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    pOVar9 = (sym->super_Symbol).u1_.output_segment;\n    if ((((Object *)pOVar9->output_lists_)->field_0x3c & 1) == 0) {\n      iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[5])(pOVar9);\n      if ((uVar12 != 0) && (CONCAT44(extraout_var,iVar7) == 0)) {\n        if ((bVar13 != 0) ||\n           ((uVar12 != 0xfff1 && (bVar5 = Symbol::is_common_shndx(uVar12), !bVar5)))) {\n          p_Var2 = ((Object *)pOVar9->output_lists_)->_vptr_Object[0x18];\n          if (p_Var2 == Relobj::do_output_section) {\n            ppOVar3 = (((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      )._M_impl._M_start;\n            if ((ulong)((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3) <= (ulong)uVar12)\n            goto LAB_002756af;\n            this_00 = ppOVar3[uVar12];\n          }\n          else {\n            iVar7 = (*p_Var2)(pOVar9,(ulong)uVar12);\n            this_00 = (Output_section *)CONCAT44(extraout_var_02,iVar7);\n          }\n          bVar5 = is_section_folded(this,(Relobj *)pOVar9,uVar12);\n          if (bVar5) {\n            if (this_00 != (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            SVar14 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar9,uVar12);\n            pOVar9 = (Output_segment *)SVar14.first;\n            if (pOVar9 == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb10,"compute_final_value");\n            }\n            uVar12 = SVar14.second;\n            pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start[0x18];\n            if (pOVar1 == (Output_data *)Relobj::do_output_section) {\n              ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n              if ((ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              this_00 = (Output_section *)ppOVar4[uVar12];\n            }\n            else {\n              this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12);\n            }\n            if (this_00 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb15,"compute_final_value");\n            }\n            uVar10 = (*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_start[0x1a])(pOVar9,SVar14._8_8_ & 0xffffffff);\n          }\n          else {\n            this_1 = (Parameters *)(ulong)uVar12;\n            this_01 = pOVar9;\n            iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])();\n            uVar10 = CONCAT44(extraout_var_01,iVar7);\n            if (this_00 == (Output_section *)0x0) {\n              if (parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n                Parameters::doing_static_link((Parameters *)this_01,this_1);\n              }\n              if (parameters->doing_static_link_ == false) {\n                if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                if ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *pstatus = CFVS_NO_OUTPUT_SECTION;\n              return 0;\n            }\n          }\n          if (uVar10 == 0xffffffffffffffff) {\n            uVar11 = Output_section::output_address\n                               (this_00,(Relobj *)pOVar9,uVar12,(ulong)sym->value_);\n            VVar6 = (Value_type)uVar11;\n          }\n          else {\n            if ((uVar10 & 0xffffffff) != uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n            }\n            VVar6 = sym->value_;\n            if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n              p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12];\n              if (p_Var2 == Output_section::do_tls_offset) {\n                iVar7 = (int)this_00->tls_offset_;\n              }\n              else {\n                iVar7 = (*p_Var2)(this_00);\n              }\n              VVar6 = iVar7 + VVar6 + (int)uVar10;\n            }\n            else {\n              if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;\n              VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;\n            }\n          }\n          break;\n        }\n        goto switchD_00275186_caseD_3;\n      }\n    }\n  case 4:\n    VVar6 = 0;\n    break;\n  case 1:\n    if ((bVar13 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n    }\n    pOVar1 = (sym->super_Symbol).u1_.output_data;\n    VVar6 = sym->value_;\n    if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n      iVar7 = (*pOVar1->_vptr_Output_data[9])(pOVar1);\n      plVar8 = (long *)CONCAT44(extraout_var_00,iVar7);\n      if (plVar8 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar8 + 0x90) == Output_section::do_tls_offset) {\n        iVar7 = (int)plVar8[0x1a];\n      }\n      else {\n        iVar7 = (**(code **)(*plVar8 + 0x90))(plVar8);\n      }\n      bVar13 = pOVar1->field_0x20;\n      if (((bVar13 & 1) == 0) || ((*(byte *)(plVar8 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar7 = iVar7 + ((int)pOVar1->address_ - (int)plVar8[1]);\n      if (((sym->super_Symbol).field_0x3a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar13 = pOVar1->field_0x20;\n      if ((bVar13 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }\n      iVar7 = (int)pOVar1->address_;\n    }\n    VVar6 = iVar7 + VVar6;\n    if ((sym->super_Symbol).u2_.offset_is_from_end != false) {\n      if ((bVar13 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n      VVar6 = VVar6 + (int)pOVar1->data_size_;\n    }\n    break;\n  case 2:\n    if ((bVar13 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n    }\n    pOVar9 = (sym->super_Symbol).u1_.output_segment;\n    VVar6 = sym->value_;\n    if (((sym->super_Symbol).field_0x38 & 0xf) != 6) {\n      VVar6 = VVar6 + (int)pOVar9->vaddr_;\n    }\n    uVar12 = (sym->super_Symbol).u2_.shndx;\n    if (uVar12 == 1) {\n      VVar6 = VVar6 + (int)pOVar9->memsz_;\n    }\n    else if (uVar12 != 0) {\n      if (uVar12 != 2) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      VVar6 = VVar6 + (int)pOVar9->filesz_;\n    }\n    break;\n  case 3:\nswitchD_00275186_caseD_3:\n    VVar6 = sym->value_;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }\n  *pstatus = CFVS_OK;\n  return VVar6;\n}\n\n" comment comment comment (function_definition "Value_type __thiscall\ngold::Symbol_table::compute_final_value<32>\n          (Symbol_table *this,Sized_symbol<32> *sym,Compute_final_value_status *pstatus)\n\n{\n  Output_data *pOVar1;\n  _func_int_varargs *p_Var2;\n  pointer ppOVar3;\n  pointer ppOVar4;\n  bool bVar5;\n  Value_type VVar6;\n  int iVar7;\n  undefined4 extraout_var;\n  undefined4 extraout_var_00;\n  Output_segment *pOVar9;\n  ulong uVar10;\n  undefined4 extraout_var_01;\n  undefined4 extraout_var_02;\n  uint64_t uVar11;\n  Output_section *this_00;\n  uint uVar12;\n  Parameters *this_1;\n  Output_segment *this_01;\n  byte bVar13;\n  Section_id SVar14;\n  long *plVar8;\n  \n  bVar13 = (sym->super_Symbol).field_0x3a;\n  switch(bVar13 & 7) {\n  case 0:\n    if ((bVar13 & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar12 = (sym->super_Symbol).u2_.shndx;\n    bVar13 = (byte)(sym->super_Symbol).field_0x3b >> 5 & 1;\n    if ((uVar12 != 0xfff1) && (bVar13 == 0)) {\n      bVar5 = Symbol::is_common_shndx(uVar12);\n      if (!bVar5) {\n        *pstatus = CFVS_UNSUPPORTED_SYMBOL_SECTION;\n        return 0;\n      }\n      if (((sym->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    pOVar9 = (sym->super_Symbol).u1_.output_segment;\n    if ((((Object *)pOVar9->output_lists_)->field_0x3c & 1) == 0) {\n      iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[5])(pOVar9);\n      if ((uVar12 != 0) && (CONCAT44(extraout_var,iVar7) == 0)) {\n        if ((bVar13 != 0) ||\n           ((uVar12 != 0xfff1 && (bVar5 = Symbol::is_common_shndx(uVar12), !bVar5)))) {\n          p_Var2 = ((Object *)pOVar9->output_lists_)->_vptr_Object[0x18];\n          if (p_Var2 == Relobj::do_output_section) {\n            ppOVar3 = (((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      )._M_impl._M_start;\n            if ((ulong)((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3) <= (ulong)uVar12)\n            goto LAB_002756af;\n            this_00 = ppOVar3[uVar12];\n          }\n          else {\n            iVar7 = (*p_Var2)(pOVar9,(ulong)uVar12);\n            this_00 = (Output_section *)CONCAT44(extraout_var_02,iVar7);\n          }\n          bVar5 = is_section_folded(this,(Relobj *)pOVar9,uVar12);\n          if (bVar5) {\n            if (this_00 != (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            SVar14 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar9,uVar12);\n            pOVar9 = (Output_segment *)SVar14.first;\n            if (pOVar9 == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb10,"compute_final_value");\n            }\n            uVar12 = SVar14.second;\n            pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start[0x18];\n            if (pOVar1 == (Output_data *)Relobj::do_output_section) {\n              ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n              if ((ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              this_00 = (Output_section *)ppOVar4[uVar12];\n            }\n            else {\n              this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12);\n            }\n            if (this_00 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb15,"compute_final_value");\n            }\n            uVar10 = (*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_start[0x1a])(pOVar9,SVar14._8_8_ & 0xffffffff);\n          }\n          else {\n            this_1 = (Parameters *)(ulong)uVar12;\n            this_01 = pOVar9;\n            iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])();\n            uVar10 = CONCAT44(extraout_var_01,iVar7);\n            if (this_00 == (Output_section *)0x0) {\n              if (parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n                Parameters::doing_static_link((Parameters *)this_01,this_1);\n              }\n              if (parameters->doing_static_link_ == false) {\n                if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                if ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *pstatus = CFVS_NO_OUTPUT_SECTION;\n              return 0;\n            }\n          }\n          if (uVar10 == 0xffffffffffffffff) {\n            uVar11 = Output_section::output_address\n                               (this_00,(Relobj *)pOVar9,uVar12,(ulong)sym->value_);\n            VVar6 = (Value_type)uVar11;\n          }\n          else {\n            if ((uVar10 & 0xffffffff) != uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n            }\n            VVar6 = sym->value_;\n            if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n              p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12];\n              if (p_Var2 == Output_section::do_tls_offset) {\n                iVar7 = (int)this_00->tls_offset_;\n              }\n              else {\n                iVar7 = (*p_Var2)(this_00);\n              }\n              VVar6 = iVar7 + VVar6 + (int)uVar10;\n            }\n            else {\n              if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;\n              VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;\n            }\n          }\n          break;\n        }\n        goto switchD_00275186_caseD_3;\n      }\n    }\n  case 4:\n    VVar6 = 0;\n    break;\n  case 1:\n    if ((bVar13 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n    }\n    pOVar1 = (sym->super_Symbol).u1_.output_data;\n    VVar6 = sym->value_;\n    if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n      iVar7 = (*pOVar1->_vptr_Output_data[9])(pOVar1);\n      plVar8 = (long *)CONCAT44(extraout_var_00,iVar7);\n      if (plVar8 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar8 + 0x90) == Output_section::do_tls_offset) {\n        iVar7 = (int)plVar8[0x1a];\n      }\n      else {\n        iVar7 = (**(code **)(*plVar8 + 0x90))(plVar8);\n      }\n      bVar13 = pOVar1->field_0x20;\n      if (((bVar13 & 1) == 0) || ((*(byte *)(plVar8 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar7 = iVar7 + ((int)pOVar1->address_ - (int)plVar8[1]);\n      if (((sym->super_Symbol).field_0x3a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar13 = pOVar1->field_0x20;\n      if ((bVar13 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }\n      iVar7 = (int)pOVar1->address_;\n    }\n    VVar6 = iVar7 + VVar6;\n    if ((sym->super_Symbol).u2_.offset_is_from_end != false) {\n      if ((bVar13 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n      VVar6 = VVar6 + (int)pOVar1->data_size_;\n    }\n    break;\n  case 2:\n    if ((bVar13 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n    }\n    pOVar9 = (sym->super_Symbol).u1_.output_segment;\n    VVar6 = sym->value_;\n    if (((sym->super_Symbol).field_0x38 & 0xf) != 6) {\n      VVar6 = VVar6 + (int)pOVar9->vaddr_;\n    }\n    uVar12 = (sym->super_Symbol).u2_.shndx;\n    if (uVar12 == 1) {\n      VVar6 = VVar6 + (int)pOVar9->memsz_;\n    }\n    else if (uVar12 != 0) {\n      if (uVar12 != 2) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      VVar6 = VVar6 + (int)pOVar9->filesz_;\n    }\n    break;\n  case 3:\nswitchD_00275186_caseD_3:\n    VVar6 = sym->value_;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }\n  *pstatus = CFVS_OK;\n  return VVar6;\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::" identifier : : identifier : :) (function_declarator "compute_final_value<32>\n          (Symbol_table *this,Sized_symbol<32> *sym,Compute_final_value_status *pstatus)" identifier (ERROR "<32>" < number_literal >) (parameter_list "(Symbol_table *this,Sized_symbol<32> *sym,Compute_final_value_status *pstatus)" ( (parameter_declaration "Symbol_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Sized_symbol<32> *sym" type_identifier (ERROR "<32>" < number_literal >) (pointer_declarator "*sym" * identifier)) , (parameter_declaration "Compute_final_value_status *pstatus" type_identifier (pointer_declarator "*pstatus" * identifier)) ))) (compound_statement "{\n  Output_data *pOVar1;\n  _func_int_varargs *p_Var2;\n  pointer ppOVar3;\n  pointer ppOVar4;\n  bool bVar5;\n  Value_type VVar6;\n  int iVar7;\n  undefined4 extraout_var;\n  undefined4 extraout_var_00;\n  Output_segment *pOVar9;\n  ulong uVar10;\n  undefined4 extraout_var_01;\n  undefined4 extraout_var_02;\n  uint64_t uVar11;\n  Output_section *this_00;\n  uint uVar12;\n  Parameters *this_1;\n  Output_segment *this_01;\n  byte bVar13;\n  Section_id SVar14;\n  long *plVar8;\n  \n  bVar13 = (sym->super_Symbol).field_0x3a;\n  switch(bVar13 & 7) {\n  case 0:\n    if ((bVar13 & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar12 = (sym->super_Symbol).u2_.shndx;\n    bVar13 = (byte)(sym->super_Symbol).field_0x3b >> 5 & 1;\n    if ((uVar12 != 0xfff1) && (bVar13 == 0)) {\n      bVar5 = Symbol::is_common_shndx(uVar12);\n      if (!bVar5) {\n        *pstatus = CFVS_UNSUPPORTED_SYMBOL_SECTION;\n        return 0;\n      }\n      if (((sym->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    pOVar9 = (sym->super_Symbol).u1_.output_segment;\n    if ((((Object *)pOVar9->output_lists_)->field_0x3c & 1) == 0) {\n      iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[5])(pOVar9);\n      if ((uVar12 != 0) && (CONCAT44(extraout_var,iVar7) == 0)) {\n        if ((bVar13 != 0) ||\n           ((uVar12 != 0xfff1 && (bVar5 = Symbol::is_common_shndx(uVar12), !bVar5)))) {\n          p_Var2 = ((Object *)pOVar9->output_lists_)->_vptr_Object[0x18];\n          if (p_Var2 == Relobj::do_output_section) {\n            ppOVar3 = (((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      )._M_impl._M_start;\n            if ((ulong)((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3) <= (ulong)uVar12)\n            goto LAB_002756af;\n            this_00 = ppOVar3[uVar12];\n          }\n          else {\n            iVar7 = (*p_Var2)(pOVar9,(ulong)uVar12);\n            this_00 = (Output_section *)CONCAT44(extraout_var_02,iVar7);\n          }\n          bVar5 = is_section_folded(this,(Relobj *)pOVar9,uVar12);\n          if (bVar5) {\n            if (this_00 != (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            SVar14 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar9,uVar12);\n            pOVar9 = (Output_segment *)SVar14.first;\n            if (pOVar9 == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb10,"compute_final_value");\n            }\n            uVar12 = SVar14.second;\n            pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start[0x18];\n            if (pOVar1 == (Output_data *)Relobj::do_output_section) {\n              ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n              if ((ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              this_00 = (Output_section *)ppOVar4[uVar12];\n            }\n            else {\n              this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12);\n            }\n            if (this_00 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb15,"compute_final_value");\n            }\n            uVar10 = (*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_start[0x1a])(pOVar9,SVar14._8_8_ & 0xffffffff);\n          }\n          else {\n            this_1 = (Parameters *)(ulong)uVar12;\n            this_01 = pOVar9;\n            iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])();\n            uVar10 = CONCAT44(extraout_var_01,iVar7);\n            if (this_00 == (Output_section *)0x0) {\n              if (parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n                Parameters::doing_static_link((Parameters *)this_01,this_1);\n              }\n              if (parameters->doing_static_link_ == false) {\n                if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                if ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *pstatus = CFVS_NO_OUTPUT_SECTION;\n              return 0;\n            }\n          }\n          if (uVar10 == 0xffffffffffffffff) {\n            uVar11 = Output_section::output_address\n                               (this_00,(Relobj *)pOVar9,uVar12,(ulong)sym->value_);\n            VVar6 = (Value_type)uVar11;\n          }\n          else {\n            if ((uVar10 & 0xffffffff) != uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n            }\n            VVar6 = sym->value_;\n            if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n              p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12];\n              if (p_Var2 == Output_section::do_tls_offset) {\n                iVar7 = (int)this_00->tls_offset_;\n              }\n              else {\n                iVar7 = (*p_Var2)(this_00);\n              }\n              VVar6 = iVar7 + VVar6 + (int)uVar10;\n            }\n            else {\n              if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;\n              VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;\n            }\n          }\n          break;\n        }\n        goto switchD_00275186_caseD_3;\n      }\n    }\n  case 4:\n    VVar6 = 0;\n    break;\n  case 1:\n    if ((bVar13 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n    }\n    pOVar1 = (sym->super_Symbol).u1_.output_data;\n    VVar6 = sym->value_;\n    if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n      iVar7 = (*pOVar1->_vptr_Output_data[9])(pOVar1);\n      plVar8 = (long *)CONCAT44(extraout_var_00,iVar7);\n      if (plVar8 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar8 + 0x90) == Output_section::do_tls_offset) {\n        iVar7 = (int)plVar8[0x1a];\n      }\n      else {\n        iVar7 = (**(code **)(*plVar8 + 0x90))(plVar8);\n      }\n      bVar13 = pOVar1->field_0x20;\n      if (((bVar13 & 1) == 0) || ((*(byte *)(plVar8 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar7 = iVar7 + ((int)pOVar1->address_ - (int)plVar8[1]);\n      if (((sym->super_Symbol).field_0x3a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar13 = pOVar1->field_0x20;\n      if ((bVar13 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }\n      iVar7 = (int)pOVar1->address_;\n    }\n    VVar6 = iVar7 + VVar6;\n    if ((sym->super_Symbol).u2_.offset_is_from_end != false) {\n      if ((bVar13 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n      VVar6 = VVar6 + (int)pOVar1->data_size_;\n    }\n    break;\n  case 2:\n    if ((bVar13 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n    }\n    pOVar9 = (sym->super_Symbol).u1_.output_segment;\n    VVar6 = sym->value_;\n    if (((sym->super_Symbol).field_0x38 & 0xf) != 6) {\n      VVar6 = VVar6 + (int)pOVar9->vaddr_;\n    }\n    uVar12 = (sym->super_Symbol).u2_.shndx;\n    if (uVar12 == 1) {\n      VVar6 = VVar6 + (int)pOVar9->memsz_;\n    }\n    else if (uVar12 != 0) {\n      if (uVar12 != 2) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      VVar6 = VVar6 + (int)pOVar9->filesz_;\n    }\n    break;\n  case 3:\nswitchD_00275186_caseD_3:\n    VVar6 = sym->value_;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }\n  *pstatus = CFVS_OK;\n  return VVar6;\n}" { (declaration "Output_data *pOVar1;" type_identifier (pointer_declarator "*pOVar1" * identifier) ;) (declaration "_func_int_varargs *p_Var2;" type_identifier (pointer_declarator "*p_Var2" * identifier) ;) (declaration "pointer ppOVar3;" type_identifier identifier ;) (declaration "pointer ppOVar4;" type_identifier identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "Value_type VVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 extraout_var;" type_identifier identifier ;) (declaration "undefined4 extraout_var_00;" type_identifier identifier ;) (declaration "Output_segment *pOVar9;" type_identifier (pointer_declarator "*pOVar9" * identifier) ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "undefined4 extraout_var_01;" type_identifier identifier ;) (declaration "undefined4 extraout_var_02;" type_identifier identifier ;) (declaration "uint64_t uVar11;" primitive_type identifier ;) (declaration "Output_section *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "Parameters *this_1;" type_identifier (pointer_declarator "*this_1" * identifier) ;) (declaration "Output_segment *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "Section_id SVar14;" type_identifier identifier ;) (declaration "long *plVar8;" (sized_type_specifier "long" long) (pointer_declarator "*plVar8" * identifier) ;) (expression_statement "bVar13 = (sym->super_Symbol).field_0x3a;" (assignment_expression "bVar13 = (sym->super_Symbol).field_0x3a" identifier = (field_expression "(sym->super_Symbol).field_0x3a" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (switch_statement "switch(bVar13 & 7) {\n  case 0:\n    if ((bVar13 & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar12 = (sym->super_Symbol).u2_.shndx;\n    bVar13 = (byte)(sym->super_Symbol).field_0x3b >> 5 & 1;\n    if ((uVar12 != 0xfff1) && (bVar13 == 0)) {\n      bVar5 = Symbol::is_common_shndx(uVar12);\n      if (!bVar5) {\n        *pstatus = CFVS_UNSUPPORTED_SYMBOL_SECTION;\n        return 0;\n      }\n      if (((sym->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    pOVar9 = (sym->super_Symbol).u1_.output_segment;\n    if ((((Object *)pOVar9->output_lists_)->field_0x3c & 1) == 0) {\n      iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[5])(pOVar9);\n      if ((uVar12 != 0) && (CONCAT44(extraout_var,iVar7) == 0)) {\n        if ((bVar13 != 0) ||\n           ((uVar12 != 0xfff1 && (bVar5 = Symbol::is_common_shndx(uVar12), !bVar5)))) {\n          p_Var2 = ((Object *)pOVar9->output_lists_)->_vptr_Object[0x18];\n          if (p_Var2 == Relobj::do_output_section) {\n            ppOVar3 = (((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      )._M_impl._M_start;\n            if ((ulong)((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3) <= (ulong)uVar12)\n            goto LAB_002756af;\n            this_00 = ppOVar3[uVar12];\n          }\n          else {\n            iVar7 = (*p_Var2)(pOVar9,(ulong)uVar12);\n            this_00 = (Output_section *)CONCAT44(extraout_var_02,iVar7);\n          }\n          bVar5 = is_section_folded(this,(Relobj *)pOVar9,uVar12);\n          if (bVar5) {\n            if (this_00 != (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            SVar14 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar9,uVar12);\n            pOVar9 = (Output_segment *)SVar14.first;\n            if (pOVar9 == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb10,"compute_final_value");\n            }\n            uVar12 = SVar14.second;\n            pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start[0x18];\n            if (pOVar1 == (Output_data *)Relobj::do_output_section) {\n              ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n              if ((ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              this_00 = (Output_section *)ppOVar4[uVar12];\n            }\n            else {\n              this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12);\n            }\n            if (this_00 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb15,"compute_final_value");\n            }\n            uVar10 = (*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_start[0x1a])(pOVar9,SVar14._8_8_ & 0xffffffff);\n          }\n          else {\n            this_1 = (Parameters *)(ulong)uVar12;\n            this_01 = pOVar9;\n            iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])();\n            uVar10 = CONCAT44(extraout_var_01,iVar7);\n            if (this_00 == (Output_section *)0x0) {\n              if (parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n                Parameters::doing_static_link((Parameters *)this_01,this_1);\n              }\n              if (parameters->doing_static_link_ == false) {\n                if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                if ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *pstatus = CFVS_NO_OUTPUT_SECTION;\n              return 0;\n            }\n          }\n          if (uVar10 == 0xffffffffffffffff) {\n            uVar11 = Output_section::output_address\n                               (this_00,(Relobj *)pOVar9,uVar12,(ulong)sym->value_);\n            VVar6 = (Value_type)uVar11;\n          }\n          else {\n            if ((uVar10 & 0xffffffff) != uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n            }\n            VVar6 = sym->value_;\n            if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n              p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12];\n              if (p_Var2 == Output_section::do_tls_offset) {\n                iVar7 = (int)this_00->tls_offset_;\n              }\n              else {\n                iVar7 = (*p_Var2)(this_00);\n              }\n              VVar6 = iVar7 + VVar6 + (int)uVar10;\n            }\n            else {\n              if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;\n              VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;\n            }\n          }\n          break;\n        }\n        goto switchD_00275186_caseD_3;\n      }\n    }\n  case 4:\n    VVar6 = 0;\n    break;\n  case 1:\n    if ((bVar13 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n    }\n    pOVar1 = (sym->super_Symbol).u1_.output_data;\n    VVar6 = sym->value_;\n    if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n      iVar7 = (*pOVar1->_vptr_Output_data[9])(pOVar1);\n      plVar8 = (long *)CONCAT44(extraout_var_00,iVar7);\n      if (plVar8 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar8 + 0x90) == Output_section::do_tls_offset) {\n        iVar7 = (int)plVar8[0x1a];\n      }\n      else {\n        iVar7 = (**(code **)(*plVar8 + 0x90))(plVar8);\n      }\n      bVar13 = pOVar1->field_0x20;\n      if (((bVar13 & 1) == 0) || ((*(byte *)(plVar8 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar7 = iVar7 + ((int)pOVar1->address_ - (int)plVar8[1]);\n      if (((sym->super_Symbol).field_0x3a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar13 = pOVar1->field_0x20;\n      if ((bVar13 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }\n      iVar7 = (int)pOVar1->address_;\n    }\n    VVar6 = iVar7 + VVar6;\n    if ((sym->super_Symbol).u2_.offset_is_from_end != false) {\n      if ((bVar13 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n      VVar6 = VVar6 + (int)pOVar1->data_size_;\n    }\n    break;\n  case 2:\n    if ((bVar13 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n    }\n    pOVar9 = (sym->super_Symbol).u1_.output_segment;\n    VVar6 = sym->value_;\n    if (((sym->super_Symbol).field_0x38 & 0xf) != 6) {\n      VVar6 = VVar6 + (int)pOVar9->vaddr_;\n    }\n    uVar12 = (sym->super_Symbol).u2_.shndx;\n    if (uVar12 == 1) {\n      VVar6 = VVar6 + (int)pOVar9->memsz_;\n    }\n    else if (uVar12 != 0) {\n      if (uVar12 != 2) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      VVar6 = VVar6 + (int)pOVar9->filesz_;\n    }\n    break;\n  case 3:\nswitchD_00275186_caseD_3:\n    VVar6 = sym->value_;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }" switch (parenthesized_expression "(bVar13 & 7)" ( (binary_expression "bVar13 & 7" identifier & number_literal) )) (compound_statement "{\n  case 0:\n    if ((bVar13 & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar12 = (sym->super_Symbol).u2_.shndx;\n    bVar13 = (byte)(sym->super_Symbol).field_0x3b >> 5 & 1;\n    if ((uVar12 != 0xfff1) && (bVar13 == 0)) {\n      bVar5 = Symbol::is_common_shndx(uVar12);\n      if (!bVar5) {\n        *pstatus = CFVS_UNSUPPORTED_SYMBOL_SECTION;\n        return 0;\n      }\n      if (((sym->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    pOVar9 = (sym->super_Symbol).u1_.output_segment;\n    if ((((Object *)pOVar9->output_lists_)->field_0x3c & 1) == 0) {\n      iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[5])(pOVar9);\n      if ((uVar12 != 0) && (CONCAT44(extraout_var,iVar7) == 0)) {\n        if ((bVar13 != 0) ||\n           ((uVar12 != 0xfff1 && (bVar5 = Symbol::is_common_shndx(uVar12), !bVar5)))) {\n          p_Var2 = ((Object *)pOVar9->output_lists_)->_vptr_Object[0x18];\n          if (p_Var2 == Relobj::do_output_section) {\n            ppOVar3 = (((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      )._M_impl._M_start;\n            if ((ulong)((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3) <= (ulong)uVar12)\n            goto LAB_002756af;\n            this_00 = ppOVar3[uVar12];\n          }\n          else {\n            iVar7 = (*p_Var2)(pOVar9,(ulong)uVar12);\n            this_00 = (Output_section *)CONCAT44(extraout_var_02,iVar7);\n          }\n          bVar5 = is_section_folded(this,(Relobj *)pOVar9,uVar12);\n          if (bVar5) {\n            if (this_00 != (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            SVar14 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar9,uVar12);\n            pOVar9 = (Output_segment *)SVar14.first;\n            if (pOVar9 == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb10,"compute_final_value");\n            }\n            uVar12 = SVar14.second;\n            pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start[0x18];\n            if (pOVar1 == (Output_data *)Relobj::do_output_section) {\n              ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n              if ((ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              this_00 = (Output_section *)ppOVar4[uVar12];\n            }\n            else {\n              this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12);\n            }\n            if (this_00 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb15,"compute_final_value");\n            }\n            uVar10 = (*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_start[0x1a])(pOVar9,SVar14._8_8_ & 0xffffffff);\n          }\n          else {\n            this_1 = (Parameters *)(ulong)uVar12;\n            this_01 = pOVar9;\n            iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])();\n            uVar10 = CONCAT44(extraout_var_01,iVar7);\n            if (this_00 == (Output_section *)0x0) {\n              if (parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n                Parameters::doing_static_link((Parameters *)this_01,this_1);\n              }\n              if (parameters->doing_static_link_ == false) {\n                if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                if ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *pstatus = CFVS_NO_OUTPUT_SECTION;\n              return 0;\n            }\n          }\n          if (uVar10 == 0xffffffffffffffff) {\n            uVar11 = Output_section::output_address\n                               (this_00,(Relobj *)pOVar9,uVar12,(ulong)sym->value_);\n            VVar6 = (Value_type)uVar11;\n          }\n          else {\n            if ((uVar10 & 0xffffffff) != uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n            }\n            VVar6 = sym->value_;\n            if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n              p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12];\n              if (p_Var2 == Output_section::do_tls_offset) {\n                iVar7 = (int)this_00->tls_offset_;\n              }\n              else {\n                iVar7 = (*p_Var2)(this_00);\n              }\n              VVar6 = iVar7 + VVar6 + (int)uVar10;\n            }\n            else {\n              if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;\n              VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;\n            }\n          }\n          break;\n        }\n        goto switchD_00275186_caseD_3;\n      }\n    }\n  case 4:\n    VVar6 = 0;\n    break;\n  case 1:\n    if ((bVar13 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n    }\n    pOVar1 = (sym->super_Symbol).u1_.output_data;\n    VVar6 = sym->value_;\n    if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n      iVar7 = (*pOVar1->_vptr_Output_data[9])(pOVar1);\n      plVar8 = (long *)CONCAT44(extraout_var_00,iVar7);\n      if (plVar8 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar8 + 0x90) == Output_section::do_tls_offset) {\n        iVar7 = (int)plVar8[0x1a];\n      }\n      else {\n        iVar7 = (**(code **)(*plVar8 + 0x90))(plVar8);\n      }\n      bVar13 = pOVar1->field_0x20;\n      if (((bVar13 & 1) == 0) || ((*(byte *)(plVar8 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar7 = iVar7 + ((int)pOVar1->address_ - (int)plVar8[1]);\n      if (((sym->super_Symbol).field_0x3a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar13 = pOVar1->field_0x20;\n      if ((bVar13 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }\n      iVar7 = (int)pOVar1->address_;\n    }\n    VVar6 = iVar7 + VVar6;\n    if ((sym->super_Symbol).u2_.offset_is_from_end != false) {\n      if ((bVar13 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n      VVar6 = VVar6 + (int)pOVar1->data_size_;\n    }\n    break;\n  case 2:\n    if ((bVar13 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n    }\n    pOVar9 = (sym->super_Symbol).u1_.output_segment;\n    VVar6 = sym->value_;\n    if (((sym->super_Symbol).field_0x38 & 0xf) != 6) {\n      VVar6 = VVar6 + (int)pOVar9->vaddr_;\n    }\n    uVar12 = (sym->super_Symbol).u2_.shndx;\n    if (uVar12 == 1) {\n      VVar6 = VVar6 + (int)pOVar9->memsz_;\n    }\n    else if (uVar12 != 0) {\n      if (uVar12 != 2) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      VVar6 = VVar6 + (int)pOVar9->filesz_;\n    }\n    break;\n  case 3:\nswitchD_00275186_caseD_3:\n    VVar6 = sym->value_;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }" { (case_statement "case 0:\n    if ((bVar13 & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar12 = (sym->super_Symbol).u2_.shndx;\n    bVar13 = (byte)(sym->super_Symbol).field_0x3b >> 5 & 1;\n    if ((uVar12 != 0xfff1) && (bVar13 == 0)) {\n      bVar5 = Symbol::is_common_shndx(uVar12);\n      if (!bVar5) {\n        *pstatus = CFVS_UNSUPPORTED_SYMBOL_SECTION;\n        return 0;\n      }\n      if (((sym->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    pOVar9 = (sym->super_Symbol).u1_.output_segment;\n    if ((((Object *)pOVar9->output_lists_)->field_0x3c & 1) == 0) {\n      iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[5])(pOVar9);\n      if ((uVar12 != 0) && (CONCAT44(extraout_var,iVar7) == 0)) {\n        if ((bVar13 != 0) ||\n           ((uVar12 != 0xfff1 && (bVar5 = Symbol::is_common_shndx(uVar12), !bVar5)))) {\n          p_Var2 = ((Object *)pOVar9->output_lists_)->_vptr_Object[0x18];\n          if (p_Var2 == Relobj::do_output_section) {\n            ppOVar3 = (((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      )._M_impl._M_start;\n            if ((ulong)((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3) <= (ulong)uVar12)\n            goto LAB_002756af;\n            this_00 = ppOVar3[uVar12];\n          }\n          else {\n            iVar7 = (*p_Var2)(pOVar9,(ulong)uVar12);\n            this_00 = (Output_section *)CONCAT44(extraout_var_02,iVar7);\n          }\n          bVar5 = is_section_folded(this,(Relobj *)pOVar9,uVar12);\n          if (bVar5) {\n            if (this_00 != (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            SVar14 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar9,uVar12);\n            pOVar9 = (Output_segment *)SVar14.first;\n            if (pOVar9 == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb10,"compute_final_value");\n            }\n            uVar12 = SVar14.second;\n            pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start[0x18];\n            if (pOVar1 == (Output_data *)Relobj::do_output_section) {\n              ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n              if ((ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              this_00 = (Output_section *)ppOVar4[uVar12];\n            }\n            else {\n              this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12);\n            }\n            if (this_00 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb15,"compute_final_value");\n            }\n            uVar10 = (*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_start[0x1a])(pOVar9,SVar14._8_8_ & 0xffffffff);\n          }\n          else {\n            this_1 = (Parameters *)(ulong)uVar12;\n            this_01 = pOVar9;\n            iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])();\n            uVar10 = CONCAT44(extraout_var_01,iVar7);\n            if (this_00 == (Output_section *)0x0) {\n              if (parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n                Parameters::doing_static_link((Parameters *)this_01,this_1);\n              }\n              if (parameters->doing_static_link_ == false) {\n                if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                if ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *pstatus = CFVS_NO_OUTPUT_SECTION;\n              return 0;\n            }\n          }\n          if (uVar10 == 0xffffffffffffffff) {\n            uVar11 = Output_section::output_address\n                               (this_00,(Relobj *)pOVar9,uVar12,(ulong)sym->value_);\n            VVar6 = (Value_type)uVar11;\n          }\n          else {\n            if ((uVar10 & 0xffffffff) != uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n            }\n            VVar6 = sym->value_;\n            if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n              p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12];\n              if (p_Var2 == Output_section::do_tls_offset) {\n                iVar7 = (int)this_00->tls_offset_;\n              }\n              else {\n                iVar7 = (*p_Var2)(this_00);\n              }\n              VVar6 = iVar7 + VVar6 + (int)uVar10;\n            }\n            else {\n              if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;\n              VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;\n            }\n          }\n          break;\n        }\n        goto switchD_00275186_caseD_3;\n      }\n    }" case number_literal : (if_statement "if ((bVar13 & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n    }" if (parenthesized_expression "((bVar13 & 7) != 0)" ( (binary_expression "(bVar13 & 7) != 0" (parenthesized_expression "(bVar13 & 7)" ( (binary_expression "bVar13 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;) })) (expression_statement "uVar12 = (sym->super_Symbol).u2_.shndx;" (assignment_expression "uVar12 = (sym->super_Symbol).u2_.shndx" identifier = (field_expression "(sym->super_Symbol).u2_.shndx" (field_expression "(sym->super_Symbol).u2_" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "bVar13 = (byte)(sym->super_Symbol).field_0x3b >> 5 & 1;" (assignment_expression "bVar13 = (byte)(sym->super_Symbol).field_0x3b >> 5 & 1" identifier = (binary_expression "(byte)(sym->super_Symbol).field_0x3b >> 5 & 1" (binary_expression "(byte)(sym->super_Symbol).field_0x3b >> 5" (field_expression "(byte)(sym->super_Symbol).field_0x3b" (call_expression "(byte)(sym->super_Symbol)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) ))) . field_identifier) >> number_literal) & number_literal)) ;) (if_statement "if ((uVar12 != 0xfff1) && (bVar13 == 0)) {\n      bVar5 = Symbol::is_common_shndx(uVar12);\n      if (!bVar5) {\n        *pstatus = CFVS_UNSUPPORTED_SYMBOL_SECTION;\n        return 0;\n      }\n      if (((sym->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n      }\n    }" if (parenthesized_expression "((uVar12 != 0xfff1) && (bVar13 == 0))" ( (binary_expression "(uVar12 != 0xfff1) && (bVar13 == 0)" (parenthesized_expression "(uVar12 != 0xfff1)" ( (binary_expression "uVar12 != 0xfff1" identifier != number_literal) )) && (parenthesized_expression "(bVar13 == 0)" ( (binary_expression "bVar13 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      bVar5 = Symbol::is_common_shndx(uVar12);\n      if (!bVar5) {\n        *pstatus = CFVS_UNSUPPORTED_SYMBOL_SECTION;\n        return 0;\n      }\n      if (((sym->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n      }\n    }" { (ERROR "bVar5 = Symbol::" (assignment_expression "bVar5 = Symbol" identifier = identifier) : :) (expression_statement "is_common_shndx(uVar12);" (call_expression "is_common_shndx(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (if_statement "if (!bVar5) {\n        *pstatus = CFVS_UNSUPPORTED_SYMBOL_SECTION;\n        return 0;\n      }" if (parenthesized_expression "(!bVar5)" ( (unary_expression "!bVar5" ! identifier) )) (compound_statement "{\n        *pstatus = CFVS_UNSUPPORTED_SYMBOL_SECTION;\n        return 0;\n      }" { (expression_statement "*pstatus = CFVS_UNSUPPORTED_SYMBOL_SECTION;" (assignment_expression "*pstatus = CFVS_UNSUPPORTED_SYMBOL_SECTION" (pointer_expression "*pstatus" * identifier) = identifier) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (((sym->super_Symbol).field_0x3a & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n      }" if (parenthesized_expression "(((sym->super_Symbol).field_0x3a & 7) != 0)" ( (binary_expression "((sym->super_Symbol).field_0x3a & 7) != 0" (parenthesized_expression "((sym->super_Symbol).field_0x3a & 7)" ( (binary_expression "(sym->super_Symbol).field_0x3a & 7" (field_expression "(sym->super_Symbol).field_0x3a" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xa1,"object");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0xa1,"object");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0xa1,"object")" identifier (argument_list "("../../gold/symtab.h",0xa1,"object")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") ))) ;) })) })) (expression_statement "pOVar9 = (sym->super_Symbol).u1_.output_segment;" (assignment_expression "pOVar9 = (sym->super_Symbol).u1_.output_segment" identifier = (field_expression "(sym->super_Symbol).u1_.output_segment" (field_expression "(sym->super_Symbol).u1_" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((((Object *)pOVar9->output_lists_)->field_0x3c & 1) == 0) {\n      iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[5])(pOVar9);\n      if ((uVar12 != 0) && (CONCAT44(extraout_var,iVar7) == 0)) {\n        if ((bVar13 != 0) ||\n           ((uVar12 != 0xfff1 && (bVar5 = Symbol::is_common_shndx(uVar12), !bVar5)))) {\n          p_Var2 = ((Object *)pOVar9->output_lists_)->_vptr_Object[0x18];\n          if (p_Var2 == Relobj::do_output_section) {\n            ppOVar3 = (((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      )._M_impl._M_start;\n            if ((ulong)((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3) <= (ulong)uVar12)\n            goto LAB_002756af;\n            this_00 = ppOVar3[uVar12];\n          }\n          else {\n            iVar7 = (*p_Var2)(pOVar9,(ulong)uVar12);\n            this_00 = (Output_section *)CONCAT44(extraout_var_02,iVar7);\n          }\n          bVar5 = is_section_folded(this,(Relobj *)pOVar9,uVar12);\n          if (bVar5) {\n            if (this_00 != (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            SVar14 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar9,uVar12);\n            pOVar9 = (Output_segment *)SVar14.first;\n            if (pOVar9 == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb10,"compute_final_value");\n            }\n            uVar12 = SVar14.second;\n            pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start[0x18];\n            if (pOVar1 == (Output_data *)Relobj::do_output_section) {\n              ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n              if ((ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              this_00 = (Output_section *)ppOVar4[uVar12];\n            }\n            else {\n              this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12);\n            }\n            if (this_00 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb15,"compute_final_value");\n            }\n            uVar10 = (*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_start[0x1a])(pOVar9,SVar14._8_8_ & 0xffffffff);\n          }\n          else {\n            this_1 = (Parameters *)(ulong)uVar12;\n            this_01 = pOVar9;\n            iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])();\n            uVar10 = CONCAT44(extraout_var_01,iVar7);\n            if (this_00 == (Output_section *)0x0) {\n              if (parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n                Parameters::doing_static_link((Parameters *)this_01,this_1);\n              }\n              if (parameters->doing_static_link_ == false) {\n                if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                if ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *pstatus = CFVS_NO_OUTPUT_SECTION;\n              return 0;\n            }\n          }\n          if (uVar10 == 0xffffffffffffffff) {\n            uVar11 = Output_section::output_address\n                               (this_00,(Relobj *)pOVar9,uVar12,(ulong)sym->value_);\n            VVar6 = (Value_type)uVar11;\n          }\n          else {\n            if ((uVar10 & 0xffffffff) != uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n            }\n            VVar6 = sym->value_;\n            if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n              p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12];\n              if (p_Var2 == Output_section::do_tls_offset) {\n                iVar7 = (int)this_00->tls_offset_;\n              }\n              else {\n                iVar7 = (*p_Var2)(this_00);\n              }\n              VVar6 = iVar7 + VVar6 + (int)uVar10;\n            }\n            else {\n              if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;\n              VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;\n            }\n          }\n          break;\n        }\n        goto switchD_00275186_caseD_3;\n      }\n    }" if (parenthesized_expression "((((Object *)pOVar9->output_lists_)->field_0x3c & 1) == 0)" ( (binary_expression "(((Object *)pOVar9->output_lists_)->field_0x3c & 1) == 0" (parenthesized_expression "(((Object *)pOVar9->output_lists_)->field_0x3c & 1)" ( (binary_expression "((Object *)pOVar9->output_lists_)->field_0x3c & 1" (field_expression "((Object *)pOVar9->output_lists_)->field_0x3c" (parenthesized_expression "((Object *)pOVar9->output_lists_)" ( (cast_expression "(Object *)pOVar9->output_lists_" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar9->output_lists_" identifier -> field_identifier)) )) -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[5])(pOVar9);\n      if ((uVar12 != 0) && (CONCAT44(extraout_var,iVar7) == 0)) {\n        if ((bVar13 != 0) ||\n           ((uVar12 != 0xfff1 && (bVar5 = Symbol::is_common_shndx(uVar12), !bVar5)))) {\n          p_Var2 = ((Object *)pOVar9->output_lists_)->_vptr_Object[0x18];\n          if (p_Var2 == Relobj::do_output_section) {\n            ppOVar3 = (((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      )._M_impl._M_start;\n            if ((ulong)((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3) <= (ulong)uVar12)\n            goto LAB_002756af;\n            this_00 = ppOVar3[uVar12];\n          }\n          else {\n            iVar7 = (*p_Var2)(pOVar9,(ulong)uVar12);\n            this_00 = (Output_section *)CONCAT44(extraout_var_02,iVar7);\n          }\n          bVar5 = is_section_folded(this,(Relobj *)pOVar9,uVar12);\n          if (bVar5) {\n            if (this_00 != (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            SVar14 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar9,uVar12);\n            pOVar9 = (Output_segment *)SVar14.first;\n            if (pOVar9 == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb10,"compute_final_value");\n            }\n            uVar12 = SVar14.second;\n            pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start[0x18];\n            if (pOVar1 == (Output_data *)Relobj::do_output_section) {\n              ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n              if ((ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              this_00 = (Output_section *)ppOVar4[uVar12];\n            }\n            else {\n              this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12);\n            }\n            if (this_00 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb15,"compute_final_value");\n            }\n            uVar10 = (*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_start[0x1a])(pOVar9,SVar14._8_8_ & 0xffffffff);\n          }\n          else {\n            this_1 = (Parameters *)(ulong)uVar12;\n            this_01 = pOVar9;\n            iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])();\n            uVar10 = CONCAT44(extraout_var_01,iVar7);\n            if (this_00 == (Output_section *)0x0) {\n              if (parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n                Parameters::doing_static_link((Parameters *)this_01,this_1);\n              }\n              if (parameters->doing_static_link_ == false) {\n                if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                if ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *pstatus = CFVS_NO_OUTPUT_SECTION;\n              return 0;\n            }\n          }\n          if (uVar10 == 0xffffffffffffffff) {\n            uVar11 = Output_section::output_address\n                               (this_00,(Relobj *)pOVar9,uVar12,(ulong)sym->value_);\n            VVar6 = (Value_type)uVar11;\n          }\n          else {\n            if ((uVar10 & 0xffffffff) != uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n            }\n            VVar6 = sym->value_;\n            if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n              p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12];\n              if (p_Var2 == Output_section::do_tls_offset) {\n                iVar7 = (int)this_00->tls_offset_;\n              }\n              else {\n                iVar7 = (*p_Var2)(this_00);\n              }\n              VVar6 = iVar7 + VVar6 + (int)uVar10;\n            }\n            else {\n              if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;\n              VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;\n            }\n          }\n          break;\n        }\n        goto switchD_00275186_caseD_3;\n      }\n    }" { (expression_statement "iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[5])(pOVar9);" (assignment_expression "iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[5])(pOVar9)" identifier = (call_expression "(*((Object *)pOVar9->output_lists_)->_vptr_Object[5])(pOVar9)" (parenthesized_expression "(*((Object *)pOVar9->output_lists_)->_vptr_Object[5])" ( (pointer_expression "*((Object *)pOVar9->output_lists_)->_vptr_Object[5]" * (subscript_expression "((Object *)pOVar9->output_lists_)->_vptr_Object[5]" (field_expression "((Object *)pOVar9->output_lists_)->_vptr_Object" (parenthesized_expression "((Object *)pOVar9->output_lists_)" ( (cast_expression "(Object *)pOVar9->output_lists_" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar9->output_lists_" identifier -> field_identifier)) )) -> field_identifier) [ number_literal ])) )) (argument_list "(pOVar9)" ( identifier )))) ;) (if_statement "if ((uVar12 != 0) && (CONCAT44(extraout_var,iVar7) == 0)) {\n        if ((bVar13 != 0) ||\n           ((uVar12 != 0xfff1 && (bVar5 = Symbol::is_common_shndx(uVar12), !bVar5)))) {\n          p_Var2 = ((Object *)pOVar9->output_lists_)->_vptr_Object[0x18];\n          if (p_Var2 == Relobj::do_output_section) {\n            ppOVar3 = (((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      )._M_impl._M_start;\n            if ((ulong)((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3) <= (ulong)uVar12)\n            goto LAB_002756af;\n            this_00 = ppOVar3[uVar12];\n          }\n          else {\n            iVar7 = (*p_Var2)(pOVar9,(ulong)uVar12);\n            this_00 = (Output_section *)CONCAT44(extraout_var_02,iVar7);\n          }\n          bVar5 = is_section_folded(this,(Relobj *)pOVar9,uVar12);\n          if (bVar5) {\n            if (this_00 != (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            SVar14 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar9,uVar12);\n            pOVar9 = (Output_segment *)SVar14.first;\n            if (pOVar9 == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb10,"compute_final_value");\n            }\n            uVar12 = SVar14.second;\n            pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start[0x18];\n            if (pOVar1 == (Output_data *)Relobj::do_output_section) {\n              ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n              if ((ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              this_00 = (Output_section *)ppOVar4[uVar12];\n            }\n            else {\n              this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12);\n            }\n            if (this_00 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb15,"compute_final_value");\n            }\n            uVar10 = (*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_start[0x1a])(pOVar9,SVar14._8_8_ & 0xffffffff);\n          }\n          else {\n            this_1 = (Parameters *)(ulong)uVar12;\n            this_01 = pOVar9;\n            iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])();\n            uVar10 = CONCAT44(extraout_var_01,iVar7);\n            if (this_00 == (Output_section *)0x0) {\n              if (parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n                Parameters::doing_static_link((Parameters *)this_01,this_1);\n              }\n              if (parameters->doing_static_link_ == false) {\n                if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                if ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *pstatus = CFVS_NO_OUTPUT_SECTION;\n              return 0;\n            }\n          }\n          if (uVar10 == 0xffffffffffffffff) {\n            uVar11 = Output_section::output_address\n                               (this_00,(Relobj *)pOVar9,uVar12,(ulong)sym->value_);\n            VVar6 = (Value_type)uVar11;\n          }\n          else {\n            if ((uVar10 & 0xffffffff) != uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n            }\n            VVar6 = sym->value_;\n            if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n              p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12];\n              if (p_Var2 == Output_section::do_tls_offset) {\n                iVar7 = (int)this_00->tls_offset_;\n              }\n              else {\n                iVar7 = (*p_Var2)(this_00);\n              }\n              VVar6 = iVar7 + VVar6 + (int)uVar10;\n            }\n            else {\n              if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;\n              VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;\n            }\n          }\n          break;\n        }\n        goto switchD_00275186_caseD_3;\n      }" if (parenthesized_expression "((uVar12 != 0) && (CONCAT44(extraout_var,iVar7) == 0))" ( (binary_expression "(uVar12 != 0) && (CONCAT44(extraout_var,iVar7) == 0)" (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(CONCAT44(extraout_var,iVar7) == 0)" ( (binary_expression "CONCAT44(extraout_var,iVar7) == 0" (call_expression "CONCAT44(extraout_var,iVar7)" identifier (argument_list "(extraout_var,iVar7)" ( identifier , identifier ))) == number_literal) ))) )) (compound_statement "{\n        if ((bVar13 != 0) ||\n           ((uVar12 != 0xfff1 && (bVar5 = Symbol::is_common_shndx(uVar12), !bVar5)))) {\n          p_Var2 = ((Object *)pOVar9->output_lists_)->_vptr_Object[0x18];\n          if (p_Var2 == Relobj::do_output_section) {\n            ppOVar3 = (((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      )._M_impl._M_start;\n            if ((ulong)((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3) <= (ulong)uVar12)\n            goto LAB_002756af;\n            this_00 = ppOVar3[uVar12];\n          }\n          else {\n            iVar7 = (*p_Var2)(pOVar9,(ulong)uVar12);\n            this_00 = (Output_section *)CONCAT44(extraout_var_02,iVar7);\n          }\n          bVar5 = is_section_folded(this,(Relobj *)pOVar9,uVar12);\n          if (bVar5) {\n            if (this_00 != (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            SVar14 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar9,uVar12);\n            pOVar9 = (Output_segment *)SVar14.first;\n            if (pOVar9 == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb10,"compute_final_value");\n            }\n            uVar12 = SVar14.second;\n            pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start[0x18];\n            if (pOVar1 == (Output_data *)Relobj::do_output_section) {\n              ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n              if ((ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              this_00 = (Output_section *)ppOVar4[uVar12];\n            }\n            else {\n              this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12);\n            }\n            if (this_00 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb15,"compute_final_value");\n            }\n            uVar10 = (*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_start[0x1a])(pOVar9,SVar14._8_8_ & 0xffffffff);\n          }\n          else {\n            this_1 = (Parameters *)(ulong)uVar12;\n            this_01 = pOVar9;\n            iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])();\n            uVar10 = CONCAT44(extraout_var_01,iVar7);\n            if (this_00 == (Output_section *)0x0) {\n              if (parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n                Parameters::doing_static_link((Parameters *)this_01,this_1);\n              }\n              if (parameters->doing_static_link_ == false) {\n                if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                if ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *pstatus = CFVS_NO_OUTPUT_SECTION;\n              return 0;\n            }\n          }\n          if (uVar10 == 0xffffffffffffffff) {\n            uVar11 = Output_section::output_address\n                               (this_00,(Relobj *)pOVar9,uVar12,(ulong)sym->value_);\n            VVar6 = (Value_type)uVar11;\n          }\n          else {\n            if ((uVar10 & 0xffffffff) != uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n            }\n            VVar6 = sym->value_;\n            if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n              p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12];\n              if (p_Var2 == Output_section::do_tls_offset) {\n                iVar7 = (int)this_00->tls_offset_;\n              }\n              else {\n                iVar7 = (*p_Var2)(this_00);\n              }\n              VVar6 = iVar7 + VVar6 + (int)uVar10;\n            }\n            else {\n              if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;\n              VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;\n            }\n          }\n          break;\n        }\n        goto switchD_00275186_caseD_3;\n      }" { (if_statement "if ((bVar13 != 0) ||\n           ((uVar12 != 0xfff1 && (bVar5 = Symbol::is_common_shndx(uVar12), !bVar5)))) {\n          p_Var2 = ((Object *)pOVar9->output_lists_)->_vptr_Object[0x18];\n          if (p_Var2 == Relobj::do_output_section) {\n            ppOVar3 = (((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      )._M_impl._M_start;\n            if ((ulong)((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3) <= (ulong)uVar12)\n            goto LAB_002756af;\n            this_00 = ppOVar3[uVar12];\n          }\n          else {\n            iVar7 = (*p_Var2)(pOVar9,(ulong)uVar12);\n            this_00 = (Output_section *)CONCAT44(extraout_var_02,iVar7);\n          }\n          bVar5 = is_section_folded(this,(Relobj *)pOVar9,uVar12);\n          if (bVar5) {\n            if (this_00 != (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            SVar14 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar9,uVar12);\n            pOVar9 = (Output_segment *)SVar14.first;\n            if (pOVar9 == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb10,"compute_final_value");\n            }\n            uVar12 = SVar14.second;\n            pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start[0x18];\n            if (pOVar1 == (Output_data *)Relobj::do_output_section) {\n              ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n              if ((ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              this_00 = (Output_section *)ppOVar4[uVar12];\n            }\n            else {\n              this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12);\n            }\n            if (this_00 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb15,"compute_final_value");\n            }\n            uVar10 = (*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_start[0x1a])(pOVar9,SVar14._8_8_ & 0xffffffff);\n          }\n          else {\n            this_1 = (Parameters *)(ulong)uVar12;\n            this_01 = pOVar9;\n            iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])();\n            uVar10 = CONCAT44(extraout_var_01,iVar7);\n            if (this_00 == (Output_section *)0x0) {\n              if (parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n                Parameters::doing_static_link((Parameters *)this_01,this_1);\n              }\n              if (parameters->doing_static_link_ == false) {\n                if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                if ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *pstatus = CFVS_NO_OUTPUT_SECTION;\n              return 0;\n            }\n          }\n          if (uVar10 == 0xffffffffffffffff) {\n            uVar11 = Output_section::output_address\n                               (this_00,(Relobj *)pOVar9,uVar12,(ulong)sym->value_);\n            VVar6 = (Value_type)uVar11;\n          }\n          else {\n            if ((uVar10 & 0xffffffff) != uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n            }\n            VVar6 = sym->value_;\n            if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n              p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12];\n              if (p_Var2 == Output_section::do_tls_offset) {\n                iVar7 = (int)this_00->tls_offset_;\n              }\n              else {\n                iVar7 = (*p_Var2)(this_00);\n              }\n              VVar6 = iVar7 + VVar6 + (int)uVar10;\n            }\n            else {\n              if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;\n              VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;\n            }\n          }\n          break;\n        }" if (parenthesized_expression "((bVar13 != 0) ||\n           ((uVar12 != 0xfff1 && (bVar5 = Symbol::is_common_shndx(uVar12), !bVar5))))" ( (binary_expression "(bVar13 != 0) ||\n           ((uVar12 != 0xfff1 && (bVar5 = Symbol::is_common_shndx(uVar12), !bVar5)))" (parenthesized_expression "(bVar13 != 0)" ( (binary_expression "bVar13 != 0" identifier != number_literal) )) || (parenthesized_expression "((uVar12 != 0xfff1 && (bVar5 = Symbol::is_common_shndx(uVar12), !bVar5)))" ( (parenthesized_expression "(uVar12 != 0xfff1 && (bVar5 = Symbol::is_common_shndx(uVar12), !bVar5))" ( (binary_expression "uVar12 != 0xfff1 && (bVar5 = Symbol::is_common_shndx(uVar12), !bVar5)" (binary_expression "uVar12 != 0xfff1" identifier != number_literal) && (parenthesized_expression "(bVar5 = Symbol::is_common_shndx(uVar12), !bVar5)" ( (ERROR "bVar5 = Symbol::" (assignment_expression "bVar5 = Symbol" identifier = identifier) : :) (comma_expression "is_common_shndx(uVar12), !bVar5" (call_expression "is_common_shndx(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) , (unary_expression "!bVar5" ! identifier)) ))) )) ))) )) (compound_statement "{\n          p_Var2 = ((Object *)pOVar9->output_lists_)->_vptr_Object[0x18];\n          if (p_Var2 == Relobj::do_output_section) {\n            ppOVar3 = (((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      )._M_impl._M_start;\n            if ((ulong)((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3) <= (ulong)uVar12)\n            goto LAB_002756af;\n            this_00 = ppOVar3[uVar12];\n          }\n          else {\n            iVar7 = (*p_Var2)(pOVar9,(ulong)uVar12);\n            this_00 = (Output_section *)CONCAT44(extraout_var_02,iVar7);\n          }\n          bVar5 = is_section_folded(this,(Relobj *)pOVar9,uVar12);\n          if (bVar5) {\n            if (this_00 != (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            SVar14 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar9,uVar12);\n            pOVar9 = (Output_segment *)SVar14.first;\n            if (pOVar9 == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb10,"compute_final_value");\n            }\n            uVar12 = SVar14.second;\n            pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start[0x18];\n            if (pOVar1 == (Output_data *)Relobj::do_output_section) {\n              ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n              if ((ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              this_00 = (Output_section *)ppOVar4[uVar12];\n            }\n            else {\n              this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12);\n            }\n            if (this_00 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb15,"compute_final_value");\n            }\n            uVar10 = (*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_start[0x1a])(pOVar9,SVar14._8_8_ & 0xffffffff);\n          }\n          else {\n            this_1 = (Parameters *)(ulong)uVar12;\n            this_01 = pOVar9;\n            iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])();\n            uVar10 = CONCAT44(extraout_var_01,iVar7);\n            if (this_00 == (Output_section *)0x0) {\n              if (parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n                Parameters::doing_static_link((Parameters *)this_01,this_1);\n              }\n              if (parameters->doing_static_link_ == false) {\n                if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                if ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *pstatus = CFVS_NO_OUTPUT_SECTION;\n              return 0;\n            }\n          }\n          if (uVar10 == 0xffffffffffffffff) {\n            uVar11 = Output_section::output_address\n                               (this_00,(Relobj *)pOVar9,uVar12,(ulong)sym->value_);\n            VVar6 = (Value_type)uVar11;\n          }\n          else {\n            if ((uVar10 & 0xffffffff) != uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n            }\n            VVar6 = sym->value_;\n            if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n              p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12];\n              if (p_Var2 == Output_section::do_tls_offset) {\n                iVar7 = (int)this_00->tls_offset_;\n              }\n              else {\n                iVar7 = (*p_Var2)(this_00);\n              }\n              VVar6 = iVar7 + VVar6 + (int)uVar10;\n            }\n            else {\n              if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;\n              VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;\n            }\n          }\n          break;\n        }" { (expression_statement "p_Var2 = ((Object *)pOVar9->output_lists_)->_vptr_Object[0x18];" (assignment_expression "p_Var2 = ((Object *)pOVar9->output_lists_)->_vptr_Object[0x18]" identifier = (subscript_expression "((Object *)pOVar9->output_lists_)->_vptr_Object[0x18]" (field_expression "((Object *)pOVar9->output_lists_)->_vptr_Object" (parenthesized_expression "((Object *)pOVar9->output_lists_)" ( (cast_expression "(Object *)pOVar9->output_lists_" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar9->output_lists_" identifier -> field_identifier)) )) -> field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var2 == Relobj::do_output_section) {\n            ppOVar3 = (((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      )._M_impl._M_start;\n            if ((ulong)((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3) <= (ulong)uVar12)\n            goto LAB_002756af;\n            this_00 = ppOVar3[uVar12];\n          }\n          else {\n            iVar7 = (*p_Var2)(pOVar9,(ulong)uVar12);\n            this_00 = (Output_section *)CONCAT44(extraout_var_02,iVar7);\n          }" if (parenthesized_expression "(p_Var2 == Relobj::do_output_section)" ( (ERROR "p_Var2 == Relobj::" (binary_expression "p_Var2 == Relobj" identifier == identifier) : :) identifier )) (compound_statement "{\n            ppOVar3 = (((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      )._M_impl._M_start;\n            if ((ulong)((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3) <= (ulong)uVar12)\n            goto LAB_002756af;\n            this_00 = ppOVar3[uVar12];\n          }" { (expression_statement "ppOVar3 = (((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      )._M_impl._M_start;" (assignment_expression "ppOVar3 = (((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      )._M_impl._M_start" identifier = (field_expression "(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      )._M_impl._M_start" (field_expression "(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      )._M_impl" (parenthesized_expression "(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                      )" ( (binary_expression "((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>" (binary_expression "((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold::Output_section*,_std" (binary_expression "((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base<gold" (field_expression "((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                      super__Vector_base" (parenthesized_expression "((Output_sections *)((Object *)pOVar9->output_lists_ + 1))" ( (cast_expression "(Output_sections *)((Object *)pOVar9->output_lists_ + 1)" ( (type_descriptor "Output_sections *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((Object *)pOVar9->output_lists_ + 1)" ( (binary_expression "(Object *)pOVar9->output_lists_ + 1" (cast_expression "(Object *)pOVar9->output_lists_" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar9->output_lists_" identifier -> field_identifier)) + number_literal) ))) )) -> field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((ulong)((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3) <= (ulong)uVar12)\n            goto LAB_002756af;" if (parenthesized_expression "((ulong)((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3) <= (ulong)uVar12)" ( (binary_expression "(ulong)((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3) <= (ulong)uVar12" (call_expression "(ulong)((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3)" ( (binary_expression "(long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3 >> 3" (binary_expression "(long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish - (long)ppOVar3" (cast_expression "(long)(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl._M_finish" (field_expression "(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )._M_impl" (parenthesized_expression "(((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                              )" ( (binary_expression "((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>" (binary_expression "((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold::Output_section*,_std" (binary_expression "((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base<gold" (field_expression "((Output_sections *)((Object *)pOVar9->output_lists_ + 1))->\n                              super__Vector_base" (parenthesized_expression "((Output_sections *)((Object *)pOVar9->output_lists_ + 1))" ( (cast_expression "(Output_sections *)((Object *)pOVar9->output_lists_ + 1)" ( (type_descriptor "Output_sections *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((Object *)pOVar9->output_lists_ + 1)" ( (binary_expression "(Object *)pOVar9->output_lists_ + 1" (cast_expression "(Object *)pOVar9->output_lists_" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar9->output_lists_" identifier -> field_identifier)) + number_literal) ))) )) -> field_identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) > identifier) )) . field_identifier) . field_identifier)) - (cast_expression "(long)ppOVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) ))) <= (cast_expression "(ulong)uVar12" ( (type_descriptor "ulong" type_identifier) ) identifier)) )) (goto_statement "goto LAB_002756af;" goto statement_identifier ;)) (expression_statement "this_00 = ppOVar3[uVar12];" (assignment_expression "this_00 = ppOVar3[uVar12]" identifier = (subscript_expression "ppOVar3[uVar12]" identifier [ identifier ])) ;) }) (else_clause "else {\n            iVar7 = (*p_Var2)(pOVar9,(ulong)uVar12);\n            this_00 = (Output_section *)CONCAT44(extraout_var_02,iVar7);\n          }" else (compound_statement "{\n            iVar7 = (*p_Var2)(pOVar9,(ulong)uVar12);\n            this_00 = (Output_section *)CONCAT44(extraout_var_02,iVar7);\n          }" { (expression_statement "iVar7 = (*p_Var2)(pOVar9,(ulong)uVar12);" (assignment_expression "iVar7 = (*p_Var2)(pOVar9,(ulong)uVar12)" identifier = (call_expression "(*p_Var2)(pOVar9,(ulong)uVar12)" (parenthesized_expression "(*p_Var2)" ( (pointer_expression "*p_Var2" * identifier) )) (argument_list "(pOVar9,(ulong)uVar12)" ( identifier , (cast_expression "(ulong)uVar12" ( (type_descriptor "ulong" type_identifier) ) identifier) )))) ;) (expression_statement "this_00 = (Output_section *)CONCAT44(extraout_var_02,iVar7);" (assignment_expression "this_00 = (Output_section *)CONCAT44(extraout_var_02,iVar7)" identifier = (cast_expression "(Output_section *)CONCAT44(extraout_var_02,iVar7)" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(extraout_var_02,iVar7)" identifier (argument_list "(extraout_var_02,iVar7)" ( identifier , identifier ))))) ;) }))) (expression_statement "bVar5 = is_section_folded(this,(Relobj *)pOVar9,uVar12);" (assignment_expression "bVar5 = is_section_folded(this,(Relobj *)pOVar9,uVar12)" identifier = (call_expression "is_section_folded(this,(Relobj *)pOVar9,uVar12)" identifier (argument_list "(this,(Relobj *)pOVar9,uVar12)" ( identifier , (cast_expression "(Relobj *)pOVar9" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (bVar5) {\n            if (this_00 != (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            SVar14 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar9,uVar12);\n            pOVar9 = (Output_segment *)SVar14.first;\n            if (pOVar9 == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb10,"compute_final_value");\n            }\n            uVar12 = SVar14.second;\n            pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start[0x18];\n            if (pOVar1 == (Output_data *)Relobj::do_output_section) {\n              ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n              if ((ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              this_00 = (Output_section *)ppOVar4[uVar12];\n            }\n            else {\n              this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12);\n            }\n            if (this_00 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb15,"compute_final_value");\n            }\n            uVar10 = (*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_start[0x1a])(pOVar9,SVar14._8_8_ & 0xffffffff);\n          }\n          else {\n            this_1 = (Parameters *)(ulong)uVar12;\n            this_01 = pOVar9;\n            iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])();\n            uVar10 = CONCAT44(extraout_var_01,iVar7);\n            if (this_00 == (Output_section *)0x0) {\n              if (parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n                Parameters::doing_static_link((Parameters *)this_01,this_1);\n              }\n              if (parameters->doing_static_link_ == false) {\n                if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                if ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *pstatus = CFVS_NO_OUTPUT_SECTION;\n              return 0;\n            }\n          }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n            if (this_00 != (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            SVar14 = Icf::get_folded_section(this->icf_,(Relobj *)pOVar9,uVar12);\n            pOVar9 = (Output_segment *)SVar14.first;\n            if (pOVar9 == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb10,"compute_final_value");\n            }\n            uVar12 = SVar14.second;\n            pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start[0x18];\n            if (pOVar1 == (Output_data *)Relobj::do_output_section) {\n              ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n              if ((ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              this_00 = (Output_section *)ppOVar4[uVar12];\n            }\n            else {\n              this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12);\n            }\n            if (this_00 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb15,"compute_final_value");\n            }\n            uVar10 = (*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_start[0x1a])(pOVar9,SVar14._8_8_ & 0xffffffff);\n          }" { (if_statement "if (this_00 != (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }" if (parenthesized_expression "(this_00 != (Output_section *)0x0)" ( (binary_expression "this_00 != (Output_section *)0x0" identifier != (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0xb0c,"compute_final_value");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0xb0c,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb0c,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (ERROR "SVar14 = Icf::" (assignment_expression "SVar14 = Icf" identifier = identifier) : :) (expression_statement "get_folded_section(this->icf_,(Relobj *)pOVar9,uVar12);" (call_expression "get_folded_section(this->icf_,(Relobj *)pOVar9,uVar12)" identifier (argument_list "(this->icf_,(Relobj *)pOVar9,uVar12)" ( (field_expression "this->icf_" identifier -> field_identifier) , (cast_expression "(Relobj *)pOVar9" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "pOVar9 = (Output_segment *)SVar14.first;" (assignment_expression "pOVar9 = (Output_segment *)SVar14.first" identifier = (cast_expression "(Output_segment *)SVar14.first" ( (type_descriptor "Output_segment *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "SVar14.first" identifier . field_identifier))) ;) (if_statement "if (pOVar9 == (Output_segment *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb10,"compute_final_value");\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                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb10,"compute_final_value");\n            }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0xb10,"compute_final_value");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0xb10,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb10,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (expression_statement "uVar12 = SVar14.second;" (assignment_expression "uVar12 = SVar14.second" identifier = (field_expression "SVar14.second" identifier . field_identifier)) ;) (expression_statement "pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start[0x18];" (subscript_expression "pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start[0x18]" (field_expression "pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl._M_start" (field_expression "pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                     _M_impl" (binary_expression "pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold::Output_data*,_std" (assignment_expression "pOVar1 = pOVar9->output_lists_[0].\n                     super__Vector_base<gold" identifier = (binary_expression "pOVar9->output_lists_[0].\n                     super__Vector_base<gold" (field_expression "pOVar9->output_lists_[0].\n                     super__Vector_base" (subscript_expression "pOVar9->output_lists_[0]" (field_expression "pOVar9->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ number_literal ]) ;) (if_statement "if (pOVar1 == (Output_data *)Relobj::do_output_section) {\n              ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n              if ((ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              this_00 = (Output_section *)ppOVar4[uVar12];\n            }\n            else {\n              this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12);\n            }" if (parenthesized_expression "(pOVar1 == (Output_data *)Relobj::do_output_section)" ( (binary_expression "pOVar1 == (Output_data *)Relobj" identifier == (cast_expression "(Output_data *)Relobj" ( (type_descriptor "Output_data *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) (ERROR "::do_output_section" : : identifier) )) (compound_statement "{\n              ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;\n              if ((ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }\n              this_00 = (Output_section *)ppOVar4[uVar12];\n            }" { (expression_statement "ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish;" (field_expression "ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl._M_finish" (field_expression "ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>.\n                        _M_impl" (binary_expression "ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold::Output_data*,_std" (assignment_expression "ppOVar4 = pOVar9->output_lists_[3].\n                        super__Vector_base<gold" identifier = (binary_expression "pOVar9->output_lists_[3].\n                        super__Vector_base<gold" (field_expression "pOVar9->output_lists_[3].\n                        super__Vector_base" (subscript_expression "pOVar9->output_lists_[3]" (field_expression "pOVar9->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier) < identifier)) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12) {\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }" if (parenthesized_expression "((ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12)" ( (binary_expression "(ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (ulong)uVar12" (call_expression "(ulong)((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3)" ( (binary_expression "(long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3" (binary_expression "(long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage - (long)ppOVar4" (field_expression "(long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl._M_end_of_storage" (field_expression "(long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                                ._M_impl" (binary_expression "(long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_" (binary_expression "(long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std::allocator<gold" (binary_expression "(long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold::Output_data*,_std" (binary_expression "(long)pOVar9->output_lists_[3].\n                                super__Vector_base<gold" (cast_expression "(long)pOVar9->output_lists_[3].\n                                super__Vector_base" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (field_expression "pOVar9->output_lists_[3].\n                                super__Vector_base" (subscript_expression "pOVar9->output_lists_[3]" (field_expression "pOVar9->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier)) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_data" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(long)ppOVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) >> number_literal) ))) <= (cast_expression "(ulong)uVar12" ( (type_descriptor "ulong" type_identifier) ) identifier)) )) (compound_statement "{\nLAB_002756af:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");\n              }" { (labeled_statement "LAB_002756af:\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section");" (call_expression "do_gold_unreachable("../../gold/object.h",0x5c8,"do_output_section")" identifier (argument_list "("../../gold/object.h",0x5c8,"do_output_section")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""do_output_section"" " string_content ") ))) ;)) })) (expression_statement "this_00 = (Output_section *)ppOVar4[uVar12];" (assignment_expression "this_00 = (Output_section *)ppOVar4[uVar12]" identifier = (cast_expression "(Output_section *)ppOVar4[uVar12]" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppOVar4[uVar12]" identifier [ identifier ]))) ;) }) (else_clause "else {\n              this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12);\n            }" else (compound_statement "{\n              this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12);\n            }" { (expression_statement "this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12);" (assignment_expression "this_00 = (Output_section *)(*(code *)pOVar1)(pOVar9,uVar12)" identifier = (cast_expression "(Output_section *)(*(code *)pOVar1)(pOVar9,uVar12)" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)pOVar1)(pOVar9,uVar12)" (parenthesized_expression "(*(code *)pOVar1)" ( (pointer_expression "*(code *)pOVar1" * (cast_expression "(code *)pOVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pOVar9,uVar12)" ( identifier , identifier ))))) ;) }))) (if_statement "if (this_00 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb15,"compute_final_value");\n            }" if (parenthesized_expression "(this_00 == (Output_section *)0x0)" ( (binary_expression "this_00 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/symtab.cc",0xb15,"compute_final_value");\n            }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0xb15,"compute_final_value");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0xb15,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb15,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (expression_statement "uVar10 = (*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_start[0x1a])(pOVar9,SVar14._8_8_ & 0xffffffff);" (assignment_expression "uVar10 = (*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_start[0x1a])(pOVar9,SVar14._8_8_ & 0xffffffff)" identifier = (call_expression "(*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_start[0x1a])(pOVar9,SVar14._8_8_ & 0xffffffff)" (parenthesized_expression "(*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::Output_data*>_>\n                               ._M_impl._M_start[0x1a])" ( (ERROR "*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std::allocator<gold::" (comma_expression "*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*,_std" (binary_expression "*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold::Output_data*" (binary_expression "*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base<gold" (pointer_expression "*(code *)pOVar9->output_lists_[0].\n                               super__Vector_base" * (cast_expression "(code *)pOVar9->output_lists_[0].\n                               super__Vector_base" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar9->output_lists_[0].\n                               super__Vector_base" (subscript_expression "pOVar9->output_lists_[0]" (field_expression "pOVar9->output_lists_" identifier -> field_identifier) [ number_literal ]) . field_identifier))) < identifier) (ERROR "::Output_data" : : identifier) * identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (subscript_expression "Output_data*>_>\n                               ._M_impl._M_start[0x1a]" (field_expression "Output_data*>_>\n                               ._M_impl._M_start" (field_expression "Output_data*>_>\n                               ._M_impl" (binary_expression "Output_data*>_" identifier * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) [ number_literal ]) )) (argument_list "(pOVar9,SVar14._8_8_ & 0xffffffff)" ( identifier , (binary_expression "SVar14._8_8_ & 0xffffffff" (field_expression "SVar14._8_8_" identifier . field_identifier) & number_literal) )))) ;) }) (else_clause "else {\n            this_1 = (Parameters *)(ulong)uVar12;\n            this_01 = pOVar9;\n            iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])();\n            uVar10 = CONCAT44(extraout_var_01,iVar7);\n            if (this_00 == (Output_section *)0x0) {\n              if (parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n                Parameters::doing_static_link((Parameters *)this_01,this_1);\n              }\n              if (parameters->doing_static_link_ == false) {\n                if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                if ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *pstatus = CFVS_NO_OUTPUT_SECTION;\n              return 0;\n            }\n          }" else (compound_statement "{\n            this_1 = (Parameters *)(ulong)uVar12;\n            this_01 = pOVar9;\n            iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])();\n            uVar10 = CONCAT44(extraout_var_01,iVar7);\n            if (this_00 == (Output_section *)0x0) {\n              if (parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n                Parameters::doing_static_link((Parameters *)this_01,this_1);\n              }\n              if (parameters->doing_static_link_ == false) {\n                if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                if ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *pstatus = CFVS_NO_OUTPUT_SECTION;\n              return 0;\n            }\n          }" { (expression_statement "this_1 = (Parameters *)(ulong)uVar12;" (assignment_expression "this_1 = (Parameters *)(ulong)uVar12" identifier = (cast_expression "(Parameters *)(ulong)uVar12" ( (type_descriptor "Parameters *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar12" ( (type_descriptor "ulong" type_identifier) ) identifier))) ;) (expression_statement "this_01 = pOVar9;" (assignment_expression "this_01 = pOVar9" identifier = identifier) ;) (expression_statement "iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])();" (assignment_expression "iVar7 = (*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])()" identifier = (call_expression "(*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])()" (parenthesized_expression "(*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a])" ( (pointer_expression "*((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a]" * (subscript_expression "((Object *)pOVar9->output_lists_)->_vptr_Object[0x1a]" (field_expression "((Object *)pOVar9->output_lists_)->_vptr_Object" (parenthesized_expression "((Object *)pOVar9->output_lists_)" ( (cast_expression "(Object *)pOVar9->output_lists_" ( (type_descriptor "Object *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pOVar9->output_lists_" identifier -> field_identifier)) )) -> field_identifier) [ number_literal ])) )) (argument_list "()" ( )))) ;) (expression_statement "uVar10 = CONCAT44(extraout_var_01,iVar7);" (assignment_expression "uVar10 = CONCAT44(extraout_var_01,iVar7)" identifier = (call_expression "CONCAT44(extraout_var_01,iVar7)" identifier (argument_list "(extraout_var_01,iVar7)" ( identifier , identifier )))) ;) (if_statement "if (this_00 == (Output_section *)0x0) {\n              if (parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n                Parameters::doing_static_link((Parameters *)this_01,this_1);\n              }\n              if (parameters->doing_static_link_ == false) {\n                if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                if ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *pstatus = CFVS_NO_OUTPUT_SECTION;\n              return 0;\n            }" if (parenthesized_expression "(this_00 == (Output_section *)0x0)" ( (binary_expression "this_00 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n                Parameters::doing_static_link((Parameters *)this_01,this_1);\n              }\n              if (parameters->doing_static_link_ == false) {\n                if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                if ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *pstatus = CFVS_NO_OUTPUT_SECTION;\n              return 0;\n            }" { (if_statement "if (parameters->doing_static_link_valid_ == false) {\n                    /* WARNING: Subroutine does not return */\n                Parameters::doing_static_link((Parameters *)this_01,this_1);\n              }" if (parenthesized_expression "(parameters->doing_static_link_valid_ == false)" ( (binary_expression "parameters->doing_static_link_valid_ == false" (field_expression "parameters->doing_static_link_valid_" identifier -> field_identifier) == false) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                Parameters::doing_static_link((Parameters *)this_01,this_1);\n              }" { comment (labeled_statement "Parameters::doing_static_link((Parameters *)this_01,this_1);" statement_identifier : (ERROR ":" :) (expression_statement "doing_static_link((Parameters *)this_01,this_1);" (call_expression "doing_static_link((Parameters *)this_01,this_1)" identifier (argument_list "((Parameters *)this_01,this_1)" ( (cast_expression "(Parameters *)this_01" ( (type_descriptor "Parameters *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;)) })) (if_statement "if (parameters->doing_static_link_ == false) {\n                if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                if ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }" if (parenthesized_expression "(parameters->doing_static_link_ == false)" ( (binary_expression "parameters->doing_static_link_ == false" (field_expression "parameters->doing_static_link_" identifier -> field_identifier) == false) )) (compound_statement "{\n                if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }\n                if ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }" { (if_statement "if (parameters->options_ == (General_options *)0x0) {\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }" 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)) )) (compound_statement "{\nLAB_002756fc:\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n                }" { (labeled_statement "LAB_002756fc:\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 ((parameters->options_->relocatable_).value == false) {\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }" if (parenthesized_expression "((parameters->options_->relocatable_).value == false)" ( (binary_expression "(parameters->options_->relocatable_).value == false" (field_expression "(parameters->options_->relocatable_).value" (parenthesized_expression "(parameters->options_->relocatable_)" ( (field_expression "parameters->options_->relocatable_" (field_expression "parameters->options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == false) )) (compound_statement "{\n                  uVar12 = (sym->super_Symbol).dynsym_index_;\n                  if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }\n                  if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }" { (expression_statement "uVar12 = (sym->super_Symbol).dynsym_index_;" (assignment_expression "uVar12 = (sym->super_Symbol).dynsym_index_" identifier = (field_expression "(sym->super_Symbol).dynsym_index_" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (uVar12 == 0) {\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                    Symbol::dynsym_index((Symbol *)this_01);\n                    goto LAB_002756fc;\n                  }" { (labeled_statement "Symbol::dynsym_index((Symbol *)this_01);" statement_identifier : (ERROR ":" :) (expression_statement "dynsym_index((Symbol *)this_01);" (call_expression "dynsym_index((Symbol *)this_01)" identifier (argument_list "((Symbol *)this_01)" ( (cast_expression "(Symbol *)this_01" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (goto_statement "goto LAB_002756fc;" goto statement_identifier ;) })) (if_statement "if (uVar12 != 0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }" if (parenthesized_expression "(uVar12 != 0xffffffff)" ( (binary_expression "uVar12 != 0xffffffff" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0xb21,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb21,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) })) })) (expression_statement "*pstatus = CFVS_NO_OUTPUT_SECTION;" (assignment_expression "*pstatus = CFVS_NO_OUTPUT_SECTION" (pointer_expression "*pstatus" * identifier) = identifier) ;) (return_statement "return 0;" return number_literal ;) })) }))) (if_statement "if (uVar10 == 0xffffffffffffffff) {\n            uVar11 = Output_section::output_address\n                               (this_00,(Relobj *)pOVar9,uVar12,(ulong)sym->value_);\n            VVar6 = (Value_type)uVar11;\n          }\n          else {\n            if ((uVar10 & 0xffffffff) != uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n            }\n            VVar6 = sym->value_;\n            if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n              p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12];\n              if (p_Var2 == Output_section::do_tls_offset) {\n                iVar7 = (int)this_00->tls_offset_;\n              }\n              else {\n                iVar7 = (*p_Var2)(this_00);\n              }\n              VVar6 = iVar7 + VVar6 + (int)uVar10;\n            }\n            else {\n              if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;\n              VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;\n            }\n          }" if (parenthesized_expression "(uVar10 == 0xffffffffffffffff)" ( (binary_expression "uVar10 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n            uVar11 = Output_section::output_address\n                               (this_00,(Relobj *)pOVar9,uVar12,(ulong)sym->value_);\n            VVar6 = (Value_type)uVar11;\n          }" { (ERROR "uVar11 = Output_section::" (assignment_expression "uVar11 = Output_section" identifier = identifier) : :) (expression_statement "output_address\n                               (this_00,(Relobj *)pOVar9,uVar12,(ulong)sym->value_);" (call_expression "output_address\n                               (this_00,(Relobj *)pOVar9,uVar12,(ulong)sym->value_)" identifier (argument_list "(this_00,(Relobj *)pOVar9,uVar12,(ulong)sym->value_)" ( identifier , (cast_expression "(Relobj *)pOVar9" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(ulong)sym->value_" ( (type_descriptor "ulong" type_identifier) ) (field_expression "sym->value_" identifier -> field_identifier)) ))) ;) (expression_statement "VVar6 = (Value_type)uVar11;" (assignment_expression "VVar6 = (Value_type)uVar11" identifier = (cast_expression "(Value_type)uVar11" ( (type_descriptor "Value_type" type_identifier) ) identifier)) ;) }) (else_clause "else {\n            if ((uVar10 & 0xffffffff) != uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n            }\n            VVar6 = sym->value_;\n            if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n              p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12];\n              if (p_Var2 == Output_section::do_tls_offset) {\n                iVar7 = (int)this_00->tls_offset_;\n              }\n              else {\n                iVar7 = (*p_Var2)(this_00);\n              }\n              VVar6 = iVar7 + VVar6 + (int)uVar10;\n            }\n            else {\n              if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;\n              VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;\n            }\n          }" else (compound_statement "{\n            if ((uVar10 & 0xffffffff) != uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n            }\n            VVar6 = sym->value_;\n            if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n              p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12];\n              if (p_Var2 == Output_section::do_tls_offset) {\n                iVar7 = (int)this_00->tls_offset_;\n              }\n              else {\n                iVar7 = (*p_Var2)(this_00);\n              }\n              VVar6 = iVar7 + VVar6 + (int)uVar10;\n            }\n            else {\n              if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;\n              VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;\n            }\n          }" { (if_statement "if ((uVar10 & 0xffffffff) != uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n            }" if (parenthesized_expression "((uVar10 & 0xffffffff) != uVar10)" ( (binary_expression "(uVar10 & 0xffffffff) != uVar10" (parenthesized_expression "(uVar10 & 0xffffffff)" ( (binary_expression "uVar10 & 0xffffffff" identifier & number_literal) )) != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");\n            }" { comment (expression_statement "do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types");" (call_expression "do_gold_unreachable("../../gold/gold.h",0xc0,"convert_types")" identifier (argument_list "("../../gold/gold.h",0xc0,"convert_types")" ( (string_literal ""../../gold/gold.h"" " string_content ") , number_literal , (string_literal ""convert_types"" " string_content ") ))) ;) })) (expression_statement "VVar6 = sym->value_;" (assignment_expression "VVar6 = sym->value_" identifier = (field_expression "sym->value_" identifier -> field_identifier)) ;) (if_statement "if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n              p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12];\n              if (p_Var2 == Output_section::do_tls_offset) {\n                iVar7 = (int)this_00->tls_offset_;\n              }\n              else {\n                iVar7 = (*p_Var2)(this_00);\n              }\n              VVar6 = iVar7 + VVar6 + (int)uVar10;\n            }\n            else {\n              if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;\n              VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;\n            }" if (parenthesized_expression "(((sym->super_Symbol).field_0x38 & 0xf) == 6)" ( (binary_expression "((sym->super_Symbol).field_0x38 & 0xf) == 6" (parenthesized_expression "((sym->super_Symbol).field_0x38 & 0xf)" ( (binary_expression "(sym->super_Symbol).field_0x38 & 0xf" (field_expression "(sym->super_Symbol).field_0x38" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n              p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12];\n              if (p_Var2 == Output_section::do_tls_offset) {\n                iVar7 = (int)this_00->tls_offset_;\n              }\n              else {\n                iVar7 = (*p_Var2)(this_00);\n              }\n              VVar6 = iVar7 + VVar6 + (int)uVar10;\n            }" { (expression_statement "p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12];" (assignment_expression "p_Var2 = (this_00->super_Output_data)._vptr_Output_data[0x12]" identifier = (subscript_expression "(this_00->super_Output_data)._vptr_Output_data[0x12]" (field_expression "(this_00->super_Output_data)._vptr_Output_data" (parenthesized_expression "(this_00->super_Output_data)" ( (field_expression "this_00->super_Output_data" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var2 == Output_section::do_tls_offset) {\n                iVar7 = (int)this_00->tls_offset_;\n              }\n              else {\n                iVar7 = (*p_Var2)(this_00);\n              }" if (parenthesized_expression "(p_Var2 == Output_section::do_tls_offset)" ( (binary_expression "p_Var2 == Output_section" identifier == identifier) (ERROR "::do_tls_offset" : : identifier) )) (compound_statement "{\n                iVar7 = (int)this_00->tls_offset_;\n              }" { (expression_statement "iVar7 = (int)this_00->tls_offset_;" (assignment_expression "iVar7 = (int)this_00->tls_offset_" identifier = (cast_expression "(int)this_00->tls_offset_" ( (type_descriptor "int" primitive_type) ) (field_expression "this_00->tls_offset_" identifier -> field_identifier))) ;) }) (else_clause "else {\n                iVar7 = (*p_Var2)(this_00);\n              }" else (compound_statement "{\n                iVar7 = (*p_Var2)(this_00);\n              }" { (expression_statement "iVar7 = (*p_Var2)(this_00);" (assignment_expression "iVar7 = (*p_Var2)(this_00)" identifier = (call_expression "(*p_Var2)(this_00)" (parenthesized_expression "(*p_Var2)" ( (pointer_expression "*p_Var2" * identifier) )) (argument_list "(this_00)" ( identifier )))) ;) }))) (expression_statement "VVar6 = iVar7 + VVar6 + (int)uVar10;" (assignment_expression "VVar6 = iVar7 + VVar6 + (int)uVar10" identifier = (binary_expression "iVar7 + VVar6 + (int)uVar10" (binary_expression "iVar7 + VVar6" identifier + identifier) + (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n              if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;\n              VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;\n            }" else (compound_statement "{\n              if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;\n              VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;\n            }" { (if_statement "if (((this_00->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;" if (parenthesized_expression "(((this_00->super_Output_data).field_0x20 & 1) == 0)" ( (binary_expression "((this_00->super_Output_data).field_0x20 & 1) == 0" (parenthesized_expression "((this_00->super_Output_data).field_0x20 & 1)" ( (binary_expression "(this_00->super_Output_data).field_0x20 & 1" (field_expression "(this_00->super_Output_data).field_0x20" (parenthesized_expression "(this_00->super_Output_data)" ( (field_expression "this_00->super_Output_data" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00275602;" goto statement_identifier ;)) (expression_statement "VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_;" (assignment_expression "VVar6 = VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_" identifier = (binary_expression "VVar6 + (int)uVar10 + (int)(this_00->super_Output_data).address_" (binary_expression "VVar6 + (int)uVar10" identifier + (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier)) + (cast_expression "(int)(this_00->super_Output_data).address_" ( (type_descriptor "int" primitive_type) ) (field_expression "(this_00->super_Output_data).address_" (parenthesized_expression "(this_00->super_Output_data)" ( (field_expression "this_00->super_Output_data" identifier -> field_identifier) )) . field_identifier)))) ;) }))) }))) (break_statement "break;" break ;) })) (goto_statement "goto switchD_00275186_caseD_3;" goto statement_identifier ;) })) }))) (case_statement "case 4:\n    VVar6 = 0;\n    break;" case number_literal : (expression_statement "VVar6 = 0;" (assignment_expression "VVar6 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n    if ((bVar13 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n    }\n    pOVar1 = (sym->super_Symbol).u1_.output_data;\n    VVar6 = sym->value_;\n    if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n      iVar7 = (*pOVar1->_vptr_Output_data[9])(pOVar1);\n      plVar8 = (long *)CONCAT44(extraout_var_00,iVar7);\n      if (plVar8 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar8 + 0x90) == Output_section::do_tls_offset) {\n        iVar7 = (int)plVar8[0x1a];\n      }\n      else {\n        iVar7 = (**(code **)(*plVar8 + 0x90))(plVar8);\n      }\n      bVar13 = pOVar1->field_0x20;\n      if (((bVar13 & 1) == 0) || ((*(byte *)(plVar8 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar7 = iVar7 + ((int)pOVar1->address_ - (int)plVar8[1]);\n      if (((sym->super_Symbol).field_0x3a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar13 = pOVar1->field_0x20;\n      if ((bVar13 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }\n      iVar7 = (int)pOVar1->address_;\n    }\n    VVar6 = iVar7 + VVar6;\n    if ((sym->super_Symbol).u2_.offset_is_from_end != false) {\n      if ((bVar13 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n      VVar6 = VVar6 + (int)pOVar1->data_size_;\n    }\n    break;" case number_literal : (if_statement "if ((bVar13 & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n    }" if (parenthesized_expression "((bVar13 & 7) != 1)" ( (binary_expression "(bVar13 & 7) != 1" (parenthesized_expression "(bVar13 & 7)" ( (binary_expression "bVar13 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0xb5,"output_data")" identifier (argument_list "("../../gold/symtab.h",0xb5,"output_data")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""output_data"" " string_content ") ))) ;) })) (expression_statement "pOVar1 = (sym->super_Symbol).u1_.output_data;" (assignment_expression "pOVar1 = (sym->super_Symbol).u1_.output_data" identifier = (field_expression "(sym->super_Symbol).u1_.output_data" (field_expression "(sym->super_Symbol).u1_" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "VVar6 = sym->value_;" (assignment_expression "VVar6 = sym->value_" identifier = (field_expression "sym->value_" identifier -> field_identifier)) ;) (if_statement "if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {\n      iVar7 = (*pOVar1->_vptr_Output_data[9])(pOVar1);\n      plVar8 = (long *)CONCAT44(extraout_var_00,iVar7);\n      if (plVar8 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar8 + 0x90) == Output_section::do_tls_offset) {\n        iVar7 = (int)plVar8[0x1a];\n      }\n      else {\n        iVar7 = (**(code **)(*plVar8 + 0x90))(plVar8);\n      }\n      bVar13 = pOVar1->field_0x20;\n      if (((bVar13 & 1) == 0) || ((*(byte *)(plVar8 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar7 = iVar7 + ((int)pOVar1->address_ - (int)plVar8[1]);\n      if (((sym->super_Symbol).field_0x3a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar13 = pOVar1->field_0x20;\n      if ((bVar13 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }\n      iVar7 = (int)pOVar1->address_;\n    }" if (parenthesized_expression "(((sym->super_Symbol).field_0x38 & 0xf) == 6)" ( (binary_expression "((sym->super_Symbol).field_0x38 & 0xf) == 6" (parenthesized_expression "((sym->super_Symbol).field_0x38 & 0xf)" ( (binary_expression "(sym->super_Symbol).field_0x38 & 0xf" (field_expression "(sym->super_Symbol).field_0x38" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar7 = (*pOVar1->_vptr_Output_data[9])(pOVar1);\n      plVar8 = (long *)CONCAT44(extraout_var_00,iVar7);\n      if (plVar8 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar8 + 0x90) == Output_section::do_tls_offset) {\n        iVar7 = (int)plVar8[0x1a];\n      }\n      else {\n        iVar7 = (**(code **)(*plVar8 + 0x90))(plVar8);\n      }\n      bVar13 = pOVar1->field_0x20;\n      if (((bVar13 & 1) == 0) || ((*(byte *)(plVar8 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar7 = iVar7 + ((int)pOVar1->address_ - (int)plVar8[1]);\n      if (((sym->super_Symbol).field_0x3a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }" { (expression_statement "iVar7 = (*pOVar1->_vptr_Output_data[9])(pOVar1);" (assignment_expression "iVar7 = (*pOVar1->_vptr_Output_data[9])(pOVar1)" identifier = (call_expression "(*pOVar1->_vptr_Output_data[9])(pOVar1)" (parenthesized_expression "(*pOVar1->_vptr_Output_data[9])" ( (pointer_expression "*pOVar1->_vptr_Output_data[9]" * (subscript_expression "pOVar1->_vptr_Output_data[9]" (field_expression "pOVar1->_vptr_Output_data" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pOVar1)" ( identifier )))) ;) (expression_statement "plVar8 = (long *)CONCAT44(extraout_var_00,iVar7);" (assignment_expression "plVar8 = (long *)CONCAT44(extraout_var_00,iVar7)" identifier = (cast_expression "(long *)CONCAT44(extraout_var_00,iVar7)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT44(extraout_var_00,iVar7)" identifier (argument_list "(extraout_var_00,iVar7)" ( identifier , identifier ))))) ;) (if_statement "if (plVar8 == (long *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }" if (parenthesized_expression "(plVar8 == (long *)0x0)" ( (binary_expression "plVar8 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0xb43,"compute_final_value");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0xb43,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb43,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (if_statement "if (*(code **)(*plVar8 + 0x90) == Output_section::do_tls_offset) {\n        iVar7 = (int)plVar8[0x1a];\n      }\n      else {\n        iVar7 = (**(code **)(*plVar8 + 0x90))(plVar8);\n      }" if (parenthesized_expression "(*(code **)(*plVar8 + 0x90) == Output_section::do_tls_offset)" ( (binary_expression "*(code **)(*plVar8 + 0x90) == Output_section" (pointer_expression "*(code **)(*plVar8 + 0x90)" * (cast_expression "(code **)(*plVar8 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar8 + 0x90)" ( (binary_expression "*plVar8 + 0x90" (pointer_expression "*plVar8" * identifier) + number_literal) )))) == identifier) (ERROR "::do_tls_offset" : : identifier) )) (compound_statement "{\n        iVar7 = (int)plVar8[0x1a];\n      }" { (expression_statement "iVar7 = (int)plVar8[0x1a];" (assignment_expression "iVar7 = (int)plVar8[0x1a]" identifier = (cast_expression "(int)plVar8[0x1a]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar8[0x1a]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n        iVar7 = (**(code **)(*plVar8 + 0x90))(plVar8);\n      }" else (compound_statement "{\n        iVar7 = (**(code **)(*plVar8 + 0x90))(plVar8);\n      }" { (expression_statement "iVar7 = (**(code **)(*plVar8 + 0x90))(plVar8);" (assignment_expression "iVar7 = (**(code **)(*plVar8 + 0x90))(plVar8)" identifier = (call_expression "(**(code **)(*plVar8 + 0x90))(plVar8)" (parenthesized_expression "(**(code **)(*plVar8 + 0x90))" ( (pointer_expression "**(code **)(*plVar8 + 0x90)" * (pointer_expression "*(code **)(*plVar8 + 0x90)" * (cast_expression "(code **)(*plVar8 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar8 + 0x90)" ( (binary_expression "*plVar8 + 0x90" (pointer_expression "*plVar8" * identifier) + number_literal) ))))) )) (argument_list "(plVar8)" ( identifier )))) ;) }))) (expression_statement "bVar13 = pOVar1->field_0x20;" (assignment_expression "bVar13 = pOVar1->field_0x20" identifier = (field_expression "pOVar1->field_0x20" identifier -> field_identifier)) ;) (if_statement "if (((bVar13 & 1) == 0) || ((*(byte *)(plVar8 + 4) & 1) == 0)) goto LAB_00275602;" if (parenthesized_expression "(((bVar13 & 1) == 0) || ((*(byte *)(plVar8 + 4) & 1) == 0))" ( (binary_expression "((bVar13 & 1) == 0) || ((*(byte *)(plVar8 + 4) & 1) == 0)" (parenthesized_expression "((bVar13 & 1) == 0)" ( (binary_expression "(bVar13 & 1) == 0" (parenthesized_expression "(bVar13 & 1)" ( (binary_expression "bVar13 & 1" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((*(byte *)(plVar8 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)(plVar8 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(plVar8 + 4) & 1)" ( (binary_expression "*(byte *)(plVar8 + 4) & 1" (pointer_expression "*(byte *)(plVar8 + 4)" * (cast_expression "(byte *)(plVar8 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar8 + 4)" ( (binary_expression "plVar8 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00275602;" goto statement_identifier ;)) (expression_statement "iVar7 = iVar7 + ((int)pOVar1->address_ - (int)plVar8[1]);" (assignment_expression "iVar7 = iVar7 + ((int)pOVar1->address_ - (int)plVar8[1])" identifier = (binary_expression "iVar7 + ((int)pOVar1->address_ - (int)plVar8[1])" identifier + (parenthesized_expression "((int)pOVar1->address_ - (int)plVar8[1])" ( (binary_expression "(int)pOVar1->address_ - (int)plVar8[1]" (cast_expression "(int)pOVar1->address_" ( (type_descriptor "int" primitive_type) ) (field_expression "pOVar1->address_" identifier -> field_identifier)) - (cast_expression "(int)plVar8[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar8[1]" identifier [ number_literal ]))) )))) ;) (if_statement "if (((sym->super_Symbol).field_0x3a & 7) != 1) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }" if (parenthesized_expression "(((sym->super_Symbol).field_0x3a & 7) != 1)" ( (binary_expression "((sym->super_Symbol).field_0x3a & 7) != 1" (parenthesized_expression "((sym->super_Symbol).field_0x3a & 7)" ( (binary_expression "(sym->super_Symbol).field_0x3a & 7" (field_expression "(sym->super_Symbol).field_0x3a" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",0xbe,"offset_is_from_end");" (call_expression "do_gold_unreachable("../../gold/symtab.h",0xbe,"offset_is_from_end")" identifier (argument_list "("../../gold/symtab.h",0xbe,"offset_is_from_end")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""offset_is_from_end"" " string_content ") ))) ;) })) }) (else_clause "else {\n      bVar13 = pOVar1->field_0x20;\n      if ((bVar13 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }\n      iVar7 = (int)pOVar1->address_;\n    }" else (compound_statement "{\n      bVar13 = pOVar1->field_0x20;\n      if ((bVar13 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }\n      iVar7 = (int)pOVar1->address_;\n    }" { (expression_statement "bVar13 = pOVar1->field_0x20;" (assignment_expression "bVar13 = pOVar1->field_0x20" identifier = (field_expression "pOVar1->field_0x20" identifier -> field_identifier)) ;) (if_statement "if ((bVar13 & 1) == 0) {\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }" if (parenthesized_expression "((bVar13 & 1) == 0)" ( (binary_expression "(bVar13 & 1) == 0" (parenthesized_expression "(bVar13 & 1)" ( (binary_expression "bVar13 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");\n      }" { (labeled_statement "LAB_00275602:\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xc5,"address");" statement_identifier : comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xc5,"address");" (call_expression "do_gold_unreachable("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;)) })) (expression_statement "iVar7 = (int)pOVar1->address_;" (assignment_expression "iVar7 = (int)pOVar1->address_" identifier = (cast_expression "(int)pOVar1->address_" ( (type_descriptor "int" primitive_type) ) (field_expression "pOVar1->address_" identifier -> field_identifier))) ;) }))) (expression_statement "VVar6 = iVar7 + VVar6;" (assignment_expression "VVar6 = iVar7 + VVar6" identifier = (binary_expression "iVar7 + VVar6" identifier + identifier)) ;) (if_statement "if ((sym->super_Symbol).u2_.offset_is_from_end != false) {\n      if ((bVar13 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n      VVar6 = VVar6 + (int)pOVar1->data_size_;\n    }" if (parenthesized_expression "((sym->super_Symbol).u2_.offset_is_from_end != false)" ( (binary_expression "(sym->super_Symbol).u2_.offset_is_from_end != false" (field_expression "(sym->super_Symbol).u2_.offset_is_from_end" (field_expression "(sym->super_Symbol).u2_" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier) != false) )) (compound_statement "{\n      if ((bVar13 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }\n      VVar6 = VVar6 + (int)pOVar1->data_size_;\n    }" { (if_statement "if ((bVar13 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }" if (parenthesized_expression "((bVar13 & 2) == 0)" ( (binary_expression "(bVar13 & 2) == 0" (parenthesized_expression "(bVar13 & 2)" ( (binary_expression "bVar13 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xcf,"data_size");" (call_expression "do_gold_unreachable("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;) })) (expression_statement "VVar6 = VVar6 + (int)pOVar1->data_size_;" (assignment_expression "VVar6 = VVar6 + (int)pOVar1->data_size_" identifier = (binary_expression "VVar6 + (int)pOVar1->data_size_" identifier + (cast_expression "(int)pOVar1->data_size_" ( (type_descriptor "int" primitive_type) ) (field_expression "pOVar1->data_size_" identifier -> field_identifier)))) ;) })) (break_statement "break;" break ;)) (case_statement "case 2:\n    if ((bVar13 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n    }\n    pOVar9 = (sym->super_Symbol).u1_.output_segment;\n    VVar6 = sym->value_;\n    if (((sym->super_Symbol).field_0x38 & 0xf) != 6) {\n      VVar6 = VVar6 + (int)pOVar9->vaddr_;\n    }\n    uVar12 = (sym->super_Symbol).u2_.shndx;\n    if (uVar12 == 1) {\n      VVar6 = VVar6 + (int)pOVar9->memsz_;\n    }\n    else if (uVar12 != 0) {\n      if (uVar12 != 2) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      VVar6 = VVar6 + (int)pOVar9->filesz_;\n    }\n    break;" case number_literal : (if_statement "if ((bVar13 & 7) != 2) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n    }" if (parenthesized_expression "((bVar13 & 7) != 2)" ( (binary_expression "(bVar13 & 7) != 2" (parenthesized_expression "(bVar13 & 7)" ( (binary_expression "bVar13 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/symtab.h",200,"output_segment");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.h",200,"output_segment");" (call_expression "do_gold_unreachable("../../gold/symtab.h",200,"output_segment")" identifier (argument_list "("../../gold/symtab.h",200,"output_segment")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""output_segment"" " string_content ") ))) ;) })) (expression_statement "pOVar9 = (sym->super_Symbol).u1_.output_segment;" (assignment_expression "pOVar9 = (sym->super_Symbol).u1_.output_segment" identifier = (field_expression "(sym->super_Symbol).u1_.output_segment" (field_expression "(sym->super_Symbol).u1_" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "VVar6 = sym->value_;" (assignment_expression "VVar6 = sym->value_" identifier = (field_expression "sym->value_" identifier -> field_identifier)) ;) (if_statement "if (((sym->super_Symbol).field_0x38 & 0xf) != 6) {\n      VVar6 = VVar6 + (int)pOVar9->vaddr_;\n    }" if (parenthesized_expression "(((sym->super_Symbol).field_0x38 & 0xf) != 6)" ( (binary_expression "((sym->super_Symbol).field_0x38 & 0xf) != 6" (parenthesized_expression "((sym->super_Symbol).field_0x38 & 0xf)" ( (binary_expression "(sym->super_Symbol).field_0x38 & 0xf" (field_expression "(sym->super_Symbol).field_0x38" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      VVar6 = VVar6 + (int)pOVar9->vaddr_;\n    }" { (expression_statement "VVar6 = VVar6 + (int)pOVar9->vaddr_;" (assignment_expression "VVar6 = VVar6 + (int)pOVar9->vaddr_" identifier = (binary_expression "VVar6 + (int)pOVar9->vaddr_" identifier + (cast_expression "(int)pOVar9->vaddr_" ( (type_descriptor "int" primitive_type) ) (field_expression "pOVar9->vaddr_" identifier -> field_identifier)))) ;) })) (expression_statement "uVar12 = (sym->super_Symbol).u2_.shndx;" (assignment_expression "uVar12 = (sym->super_Symbol).u2_.shndx" identifier = (field_expression "(sym->super_Symbol).u2_.shndx" (field_expression "(sym->super_Symbol).u2_" (parenthesized_expression "(sym->super_Symbol)" ( (field_expression "sym->super_Symbol" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (uVar12 == 1) {\n      VVar6 = VVar6 + (int)pOVar9->memsz_;\n    }\n    else if (uVar12 != 0) {\n      if (uVar12 != 2) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      VVar6 = VVar6 + (int)pOVar9->filesz_;\n    }" if (parenthesized_expression "(uVar12 == 1)" ( (binary_expression "uVar12 == 1" identifier == number_literal) )) (compound_statement "{\n      VVar6 = VVar6 + (int)pOVar9->memsz_;\n    }" { (expression_statement "VVar6 = VVar6 + (int)pOVar9->memsz_;" (assignment_expression "VVar6 = VVar6 + (int)pOVar9->memsz_" identifier = (binary_expression "VVar6 + (int)pOVar9->memsz_" identifier + (cast_expression "(int)pOVar9->memsz_" ( (type_descriptor "int" primitive_type) ) (field_expression "pOVar9->memsz_" identifier -> field_identifier)))) ;) }) (else_clause "else if (uVar12 != 0) {\n      if (uVar12 != 2) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      VVar6 = VVar6 + (int)pOVar9->filesz_;\n    }" else (if_statement "if (uVar12 != 0) {\n      if (uVar12 != 2) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      VVar6 = VVar6 + (int)pOVar9->filesz_;\n    }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar12 != 2) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      VVar6 = VVar6 + (int)pOVar9->filesz_;\n    }" { (if_statement "if (uVar12 != 2) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }" if (parenthesized_expression "(uVar12 != 2)" ( (binary_expression "uVar12 != 2" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0xb5c,"compute_final_value");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0xb5c,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb5c,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (expression_statement "VVar6 = VVar6 + (int)pOVar9->filesz_;" (assignment_expression "VVar6 = VVar6 + (int)pOVar9->filesz_" identifier = (binary_expression "VVar6 + (int)pOVar9->filesz_" identifier + (cast_expression "(int)pOVar9->filesz_" ( (type_descriptor "int" primitive_type) ) (field_expression "pOVar9->filesz_" identifier -> field_identifier)))) ;) })))) (break_statement "break;" break ;)) (case_statement "case 3:\nswitchD_00275186_caseD_3:\n    VVar6 = sym->value_;\n    break;" case number_literal : (labeled_statement "switchD_00275186_caseD_3:\n    VVar6 = sym->value_;" statement_identifier : (expression_statement "VVar6 = sym->value_;" (assignment_expression "VVar6 = sym->value_" identifier = (field_expression "sym->value_" identifier -> field_identifier)) ;)) (break_statement "break;" break ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable("../../gold/symtab.cc",0xb6a,"compute_final_value");" default : comment (expression_statement "do_gold_unreachable("../../gold/symtab.cc",0xb6a,"compute_final_value");" (call_expression "do_gold_unreachable("../../gold/symtab.cc",0xb6a,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb6a,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;)) })) (expression_statement "*pstatus = CFVS_OK;" (assignment_expression "*pstatus = CFVS_OK" (pointer_expression "*pstatus" * identifier) = identifier) ;) (return_statement "return VVar6;" return identifier ;) })))
(translation_unit "ulong FUN_00275150(long param_1,long param_2,undefined4 *param_3)\n\n{\n  int iVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  long lVar5;\n  long *plVar6;\n  ulong uVar7;\n  byte bVar8;\n  long *plVar9;\n  undefined1 auVar10 [16];\n  \n  bVar8 = *(byte *)(param_2 + 0x3a);\n  switch(bVar8 & 7) {\n  case 0:\n    if ((bVar8 & 7) != 0) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar3 = *(uint *)(param_2 + 0x18);\n    bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;\n    if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;\n    if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }\n  case 3:\n    uVar7 = (ulong)*(uint *)(param_2 + 0x40);\n    break;\n  case 1:\n    if ((bVar8 & 7) != 1) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    iVar1 = *(int *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }\n    uVar3 = iVar4 + iVar1;\n    uVar7 = (ulong)uVar3;\n    if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }\n    break;\n  case 2:\n    if ((bVar8 & 7) != 2) {\n                    \n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }\n    lVar5 = *(long *)(param_2 + 0x10);\n    uVar3 = *(uint *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }\n    uVar7 = (ulong)uVar3;\n    iVar1 = *(int *)(param_2 + 0x18);\n    if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }\n    break;\n  case 4:\nswitchD_00275186_caseD_4:\n    uVar7 = 0;\n    break;\n  default:\n                    \n    FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }\n  *param_3 = 0;\n  return uVar7;\n}\n\n" (function_definition "ulong FUN_00275150(long param_1,long param_2,undefined4 *param_3)\n\n{\n  int iVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  long lVar5;\n  long *plVar6;\n  ulong uVar7;\n  byte bVar8;\n  long *plVar9;\n  undefined1 auVar10 [16];\n  \n  bVar8 = *(byte *)(param_2 + 0x3a);\n  switch(bVar8 & 7) {\n  case 0:\n    if ((bVar8 & 7) != 0) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar3 = *(uint *)(param_2 + 0x18);\n    bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;\n    if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;\n    if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }\n  case 3:\n    uVar7 = (ulong)*(uint *)(param_2 + 0x40);\n    break;\n  case 1:\n    if ((bVar8 & 7) != 1) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    iVar1 = *(int *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }\n    uVar3 = iVar4 + iVar1;\n    uVar7 = (ulong)uVar3;\n    if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }\n    break;\n  case 2:\n    if ((bVar8 & 7) != 2) {\n                    \n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }\n    lVar5 = *(long *)(param_2 + 0x10);\n    uVar3 = *(uint *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }\n    uVar7 = (ulong)uVar3;\n    iVar1 = *(int *)(param_2 + 0x18);\n    if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }\n    break;\n  case 4:\nswitchD_00275186_caseD_4:\n    uVar7 = 0;\n    break;\n  default:\n                    \n    FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }\n  *param_3 = 0;\n  return uVar7;\n}" type_identifier (function_declarator "FUN_00275150(long param_1,long param_2,undefined4 *param_3)" identifier (parameter_list "(long param_1,long param_2,undefined4 *param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  long lVar5;\n  long *plVar6;\n  ulong uVar7;\n  byte bVar8;\n  long *plVar9;\n  undefined1 auVar10 [16];\n  \n  bVar8 = *(byte *)(param_2 + 0x3a);\n  switch(bVar8 & 7) {\n  case 0:\n    if ((bVar8 & 7) != 0) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar3 = *(uint *)(param_2 + 0x18);\n    bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;\n    if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;\n    if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }\n  case 3:\n    uVar7 = (ulong)*(uint *)(param_2 + 0x40);\n    break;\n  case 1:\n    if ((bVar8 & 7) != 1) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    iVar1 = *(int *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }\n    uVar3 = iVar4 + iVar1;\n    uVar7 = (ulong)uVar3;\n    if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }\n    break;\n  case 2:\n    if ((bVar8 & 7) != 2) {\n                    \n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }\n    lVar5 = *(long *)(param_2 + 0x10);\n    uVar3 = *(uint *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }\n    uVar7 = (ulong)uVar3;\n    iVar1 = *(int *)(param_2 + 0x18);\n    if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }\n    break;\n  case 4:\nswitchD_00275186_caseD_4:\n    uVar7 = 0;\n    break;\n  default:\n                    \n    FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }\n  *param_3 = 0;\n  return uVar7;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "long *plVar6;" (sized_type_specifier "long" long) (pointer_declarator "*plVar6" * identifier) ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "long *plVar9;" (sized_type_specifier "long" long) (pointer_declarator "*plVar9" * identifier) ;) (declaration "undefined1 auVar10 [16];" type_identifier (array_declarator "auVar10 [16]" identifier [ number_literal ]) ;) (expression_statement "bVar8 = *(byte *)(param_2 + 0x3a);" (assignment_expression "bVar8 = *(byte *)(param_2 + 0x3a)" identifier = (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) ))))) ;) (switch_statement "switch(bVar8 & 7) {\n  case 0:\n    if ((bVar8 & 7) != 0) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar3 = *(uint *)(param_2 + 0x18);\n    bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;\n    if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;\n    if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }\n  case 3:\n    uVar7 = (ulong)*(uint *)(param_2 + 0x40);\n    break;\n  case 1:\n    if ((bVar8 & 7) != 1) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    iVar1 = *(int *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }\n    uVar3 = iVar4 + iVar1;\n    uVar7 = (ulong)uVar3;\n    if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }\n    break;\n  case 2:\n    if ((bVar8 & 7) != 2) {\n                    \n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }\n    lVar5 = *(long *)(param_2 + 0x10);\n    uVar3 = *(uint *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }\n    uVar7 = (ulong)uVar3;\n    iVar1 = *(int *)(param_2 + 0x18);\n    if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }\n    break;\n  case 4:\nswitchD_00275186_caseD_4:\n    uVar7 = 0;\n    break;\n  default:\n                    \n    FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }" switch (parenthesized_expression "(bVar8 & 7)" ( (binary_expression "bVar8 & 7" identifier & number_literal) )) (compound_statement "{\n  case 0:\n    if ((bVar8 & 7) != 0) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar3 = *(uint *)(param_2 + 0x18);\n    bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;\n    if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;\n    if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }\n  case 3:\n    uVar7 = (ulong)*(uint *)(param_2 + 0x40);\n    break;\n  case 1:\n    if ((bVar8 & 7) != 1) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    iVar1 = *(int *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }\n    uVar3 = iVar4 + iVar1;\n    uVar7 = (ulong)uVar3;\n    if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }\n    break;\n  case 2:\n    if ((bVar8 & 7) != 2) {\n                    \n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }\n    lVar5 = *(long *)(param_2 + 0x10);\n    uVar3 = *(uint *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }\n    uVar7 = (ulong)uVar3;\n    iVar1 = *(int *)(param_2 + 0x18);\n    if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }\n    break;\n  case 4:\nswitchD_00275186_caseD_4:\n    uVar7 = 0;\n    break;\n  default:\n                    \n    FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }" { (case_statement "case 0:\n    if ((bVar8 & 7) != 0) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar3 = *(uint *)(param_2 + 0x18);\n    bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;\n    if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;\n    if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }" case number_literal : (if_statement "if ((bVar8 & 7) != 0) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }" if (parenthesized_expression "((bVar8 & 7) != 0)" ( (binary_expression "(bVar8 & 7) != 0" (parenthesized_expression "(bVar8 & 7)" ( (binary_expression "bVar8 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }" { (expression_statement "FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_0017c650("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;) })) (expression_statement "uVar3 = *(uint *)(param_2 + 0x18);" (assignment_expression "uVar3 = *(uint *)(param_2 + 0x18)" identifier = (pointer_expression "*(uint *)(param_2 + 0x18)" * (cast_expression "(uint *)(param_2 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;" (assignment_expression "bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1" identifier = (binary_expression "*(byte *)(param_2 + 0x3b) >> 5 & 1" (binary_expression "*(byte *)(param_2 + 0x3b) >> 5" (pointer_expression "*(byte *)(param_2 + 0x3b)" * (cast_expression "(byte *)(param_2 + 0x3b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3b)" ( (binary_expression "param_2 + 0x3b" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) (if_statement "if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }" if (parenthesized_expression "((uVar3 != 0xfff1) && (bVar8 == 0))" ( (binary_expression "(uVar3 != 0xfff1) && (bVar8 == 0)" (parenthesized_expression "(uVar3 != 0xfff1)" ( (binary_expression "uVar3 != 0xfff1" identifier != number_literal) )) && (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }" { (expression_statement "cVar2 = FUN_00270ff0(uVar3);" (assignment_expression "cVar2 = FUN_00270ff0(uVar3)" identifier = (call_expression "FUN_00270ff0(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (if_statement "if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *param_3 = 1;\n        return 0;\n      }" { (expression_statement "*param_3 = 1;" (assignment_expression "*param_3 = 1" (pointer_expression "*param_3" * identifier) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }" if (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) != 0)" ( (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }" { (expression_statement "FUN_0017c650("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_0017c650("../../gold/symtab.h",0xa1,"object")" identifier (argument_list "("../../gold/symtab.h",0xa1,"object")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") ))) ;) })) })) (expression_statement "plVar9 = *(long **)(param_2 + 0x10);" (assignment_expression "plVar9 = *(long **)(param_2 + 0x10)" identifier = (pointer_expression "*(long **)(param_2 + 0x10)" * (cast_expression "(long **)(param_2 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;" if (parenthesized_expression "((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))" ( (binary_expression "(((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0)" (parenthesized_expression "(((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0))" ( (binary_expression "((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)" (parenthesized_expression "((*(byte *)((long)plVar9 + 0x3c) & 1) != 0)" ( (binary_expression "(*(byte *)((long)plVar9 + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)((long)plVar9 + 0x3c) & 1)" ( (binary_expression "*(byte *)((long)plVar9 + 0x3c) & 1" (pointer_expression "*(byte *)((long)plVar9 + 0x3c)" * (cast_expression "(byte *)((long)plVar9 + 0x3c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar9 + 0x3c)" ( (binary_expression "(long)plVar9 + 0x3c" (cast_expression "(long)plVar9" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) || (parenthesized_expression "(lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)" ( (comma_expression "lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0" (assignment_expression "lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9)" identifier = (call_expression "(**(code **)(*plVar9 + 0x28))(plVar9)" (parenthesized_expression "(**(code **)(*plVar9 + 0x28))" ( (pointer_expression "**(code **)(*plVar9 + 0x28)" * (pointer_expression "*(code **)(*plVar9 + 0x28)" * (cast_expression "(code **)(*plVar9 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar9 + 0x28)" ( (binary_expression "*plVar9 + 0x28" (pointer_expression "*plVar9" * identifier) + number_literal) ))))) )) (argument_list "(plVar9)" ( identifier )))) , (binary_expression "uVar3 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(lVar5 != 0)" ( (binary_expression "lVar5 != 0" identifier != number_literal) ))) )) (goto_statement "goto switchD_00275186_caseD_4;" goto statement_identifier ;)) (if_statement "if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }" if (parenthesized_expression "((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0'))))" ( (binary_expression "(bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))" (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) || (parenthesized_expression "((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))" ( (parenthesized_expression "(uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0'))" ( (binary_expression "uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')" (binary_expression "uVar3 != 0xfff1" identifier != number_literal) && (parenthesized_expression "(cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')" ( (comma_expression "cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0'" (assignment_expression "cVar2 = FUN_00270ff0(uVar3)" identifier = (call_expression "FUN_00270ff0(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) , (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) ))) )) (compound_statement "{\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }" { (if_statement "if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }" if (parenthesized_expression "(*(code **)(*plVar9 + 0xc0) == FUN_00156120)" ( (binary_expression "*(code **)(*plVar9 + 0xc0) == FUN_00156120" (pointer_expression "*(code **)(*plVar9 + 0xc0)" * (cast_expression "(code **)(*plVar9 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar9 + 0xc0)" ( (binary_expression "*plVar9 + 0xc0" (pointer_expression "*plVar9" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }" { (if_statement "if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;" if (parenthesized_expression "((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3)" ( (binary_expression "(ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3" (call_expression "(ulong)(plVar9[0xb] - plVar9[10] >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(plVar9[0xb] - plVar9[10] >> 3)" ( (binary_expression "plVar9[0xb] - plVar9[10] >> 3" (binary_expression "plVar9[0xb] - plVar9[10]" (subscript_expression "plVar9[0xb]" identifier [ number_literal ]) - (subscript_expression "plVar9[10]" identifier [ number_literal ])) >> number_literal) ))) <= (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) )) (goto_statement "goto LAB_002756af;" goto statement_identifier ;)) (expression_statement "plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);" (assignment_expression "plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8)" identifier = (pointer_expression "*(long **)(plVar9[10] + (ulong)uVar3 * 8)" * (cast_expression "(long **)(plVar9[10] + (ulong)uVar3 * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plVar9[10] + (ulong)uVar3 * 8)" ( (binary_expression "plVar9[10] + (ulong)uVar3 * 8" (subscript_expression "plVar9[10]" identifier [ number_literal ]) + (binary_expression "(ulong)uVar3 * 8" (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) ))))) ;) }) (else_clause "else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }" else (compound_statement "{\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }" { (expression_statement "plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);" (assignment_expression "plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3)" identifier = (cast_expression "(long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3)" (parenthesized_expression "(**(code **)(*plVar9 + 0xc0))" ( (pointer_expression "**(code **)(*plVar9 + 0xc0)" * (pointer_expression "*(code **)(*plVar9 + 0xc0)" * (cast_expression "(code **)(*plVar9 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar9 + 0xc0)" ( (binary_expression "*plVar9 + 0xc0" (pointer_expression "*plVar9" * identifier) + number_literal) ))))) )) (argument_list "(plVar9,uVar3)" ( identifier , identifier ))))) ;) }))) (expression_statement "cVar2 = FUN_00271390(param_1,plVar9,uVar3);" (assignment_expression "cVar2 = FUN_00271390(param_1,plVar9,uVar3)" identifier = (call_expression "FUN_00271390(param_1,plVar9,uVar3)" identifier (argument_list "(param_1,plVar9,uVar3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }" { (expression_statement "uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);" (assignment_expression "uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3)" identifier = (call_expression "(**(code **)(*plVar9 + 0xd0))(plVar9,uVar3)" (parenthesized_expression "(**(code **)(*plVar9 + 0xd0))" ( (pointer_expression "**(code **)(*plVar9 + 0xd0)" * (pointer_expression "*(code **)(*plVar9 + 0xd0)" * (cast_expression "(code **)(*plVar9 + 0xd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar9 + 0xd0)" ( (binary_expression "*plVar9 + 0xd0" (pointer_expression "*plVar9" * identifier) + number_literal) ))))) )) (argument_list "(plVar9,uVar3)" ( identifier , identifier )))) ;) (if_statement "if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }" if (parenthesized_expression "(plVar6 == (long *)0x0)" ( (binary_expression "plVar6 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }" { (if_statement "if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }" if (parenthesized_expression "(PTR_DAT_0043e6b0[0x20] == '\0')" ( (binary_expression "PTR_DAT_0043e6b0[0x20] == '\0'" (subscript_expression "PTR_DAT_0043e6b0[0x20]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            FUN_00270c00();\n            goto LAB_002756af;\n          }" { (expression_statement "FUN_00270c00();" (call_expression "FUN_00270c00()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_002756af;" goto statement_identifier ;) })) (if_statement "if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }" if (parenthesized_expression "(PTR_DAT_0043e6b0[0x21] == '\0')" ( (binary_expression "PTR_DAT_0043e6b0[0x21] == '\0'" (subscript_expression "PTR_DAT_0043e6b0[0x21]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }" { (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }" if (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }" { (labeled_statement "LAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");" statement_identifier : (expression_statement "FUN_0017c650("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0017c650("../../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 (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }" if (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0')" ( (binary_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" * (cast_expression "(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" ( (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }" { (if_statement "if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }" if (parenthesized_expression "(*(int *)(param_2 + 0x20) == 0)" ( (binary_expression "*(int *)(param_2 + 0x20) == 0" (pointer_expression "*(int *)(param_2 + 0x20)" * (cast_expression "(int *)(param_2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }" { (expression_statement "FUN_00270c20();" (call_expression "FUN_00270c20()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_002756fc;" goto statement_identifier ;) })) (if_statement "if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }" if (parenthesized_expression "(*(int *)(param_2 + 0x20) != -1)" ( (binary_expression "*(int *)(param_2 + 0x20) != -1" (pointer_expression "*(int *)(param_2 + 0x20)" * (cast_expression "(int *)(param_2 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x20)" ( (binary_expression "param_2 + 0x20" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }" { (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb21,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) })) })) (expression_statement "*param_3 = 2;" (assignment_expression "*param_3 = 2" (pointer_expression "*param_3" * identifier) = number_literal) ;) (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }" else (compound_statement "{\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }" { (if_statement "if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }" if (parenthesized_expression "(plVar6 != (long *)0x0)" ( (binary_expression "plVar6 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }" { (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb0c,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (expression_statement "auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);" (assignment_expression "auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3)" identifier = (call_expression "FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3)" identifier (argument_list "(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3)" ( (pointer_expression "*(undefined8 *)(param_1 + 0x298)" * (cast_expression "(undefined8 *)(param_1 + 0x298)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x298)" ( (binary_expression "param_1 + 0x298" identifier + number_literal) )))) , identifier , identifier )))) ;) (expression_statement "uVar7 = auVar10._8_8_;" (assignment_expression "uVar7 = auVar10._8_8_" identifier = (field_expression "auVar10._8_8_" identifier . field_identifier)) ;) (expression_statement "plVar9 = auVar10._0_8_;" (assignment_expression "plVar9 = auVar10._0_8_" identifier = (field_expression "auVar10._0_8_" identifier . field_identifier)) ;) (if_statement "if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }" if (parenthesized_expression "(plVar9 == (long *)0x0)" ( (binary_expression "plVar9 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }" { (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb10,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (expression_statement "uVar3 = auVar10._8_4_;" (assignment_expression "uVar3 = auVar10._8_4_" identifier = (field_expression "auVar10._8_4_" identifier . field_identifier)) ;) (if_statement "if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }" if (parenthesized_expression "(*(code **)(*plVar9 + 0xc0) == FUN_00156120)" ( (binary_expression "*(code **)(*plVar9 + 0xc0) == FUN_00156120" (pointer_expression "*(code **)(*plVar9 + 0xc0)" * (cast_expression "(code **)(*plVar9 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar9 + 0xc0)" ( (binary_expression "*plVar9 + 0xc0" (pointer_expression "*plVar9" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }" { (if_statement "if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }" if (parenthesized_expression "((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff))" ( (binary_expression "(ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)" (call_expression "(ulong)(plVar9[0xb] - plVar9[10] >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(plVar9[0xb] - plVar9[10] >> 3)" ( (binary_expression "plVar9[0xb] - plVar9[10] >> 3" (binary_expression "plVar9[0xb] - plVar9[10]" (subscript_expression "plVar9[0xb]" identifier [ number_literal ]) - (subscript_expression "plVar9[10]" identifier [ number_literal ])) >> number_literal) ))) <= (parenthesized_expression "(uVar7 & 0xffffffff)" ( (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) ))) )) (compound_statement "{\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }" { (labeled_statement "LAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");" statement_identifier : (expression_statement "FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");" (call_expression "FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section")" identifier (argument_list "("../../gold/object.h",0x5c8,"do_output_section")" ( (string_literal ""../../gold/object.h"" " string_content ") , number_literal , (string_literal ""do_output_section"" " string_content ") ))) ;)) })) (expression_statement "plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);" (assignment_expression "plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8)" identifier = (pointer_expression "*(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8)" * (cast_expression "(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(plVar9[10] + (uVar7 & 0xffffffff) * 8)" ( (binary_expression "plVar9[10] + (uVar7 & 0xffffffff) * 8" (subscript_expression "plVar9[10]" identifier [ number_literal ]) + (binary_expression "(uVar7 & 0xffffffff) * 8" (parenthesized_expression "(uVar7 & 0xffffffff)" ( (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) )) * number_literal)) ))))) ;) }) (else_clause "else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }" else (compound_statement "{\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }" { (expression_statement "plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);" (assignment_expression "plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff)" identifier = (cast_expression "(long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff)" (parenthesized_expression "(**(code **)(*plVar9 + 0xc0))" ( (pointer_expression "**(code **)(*plVar9 + 0xc0)" * (pointer_expression "*(code **)(*plVar9 + 0xc0)" * (cast_expression "(code **)(*plVar9 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar9 + 0xc0)" ( (binary_expression "*plVar9 + 0xc0" (pointer_expression "*plVar9" * identifier) + number_literal) ))))) )) (argument_list "(plVar9,uVar7 & 0xffffffff)" ( identifier , (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) ))))) ;) }))) (if_statement "if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }" if (parenthesized_expression "(plVar6 == (long *)0x0)" ( (binary_expression "plVar6 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }" { (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb15,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (expression_statement "uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);" (assignment_expression "uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff)" identifier = (call_expression "(**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff)" (parenthesized_expression "(**(code **)(*plVar9 + 0xd0))" ( (pointer_expression "**(code **)(*plVar9 + 0xd0)" * (pointer_expression "*(code **)(*plVar9 + 0xd0)" * (cast_expression "(code **)(*plVar9 + 0xd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar9 + 0xd0)" ( (binary_expression "*plVar9 + 0xd0" (pointer_expression "*plVar9" * identifier) + number_literal) ))))) )) (argument_list "(plVar9,uVar7 & 0xffffffff)" ( identifier , (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) )))) ;) }))) (if_statement "if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }" if (parenthesized_expression "(uVar7 == 0xffffffffffffffff)" ( (binary_expression "uVar7 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }" { (expression_statement "uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));" (assignment_expression "uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40))" identifier = (call_expression "FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40))" identifier (argument_list "(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40))" ( identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(param_2 + 0x40)" * (cast_expression "(undefined4 *)(param_2 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) )))) )))) ;) }) (else_clause "else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }" else (compound_statement "{\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }" { (if_statement "if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }" if (parenthesized_expression "((uVar7 & 0xffffffff) != uVar7)" ( (binary_expression "(uVar7 & 0xffffffff) != uVar7" (parenthesized_expression "(uVar7 & 0xffffffff)" ( (binary_expression "uVar7 & 0xffffffff" identifier & number_literal) )) != identifier) )) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }" { (expression_statement "FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");" (call_expression "FUN_0017c650("../../gold/gold.h",0xc0,"convert_types")" identifier (argument_list "("../../gold/gold.h",0xc0,"convert_types")" ( (string_literal ""../../gold/gold.h"" " string_content ") , number_literal , (string_literal ""convert_types"" " string_content ") ))) ;) })) (expression_statement "iVar1 = *(int *)(param_2 + 0x40);" (assignment_expression "iVar1 = *(int *)(param_2 + 0x40)" identifier = (pointer_expression "*(int *)(param_2 + 0x40)" * (cast_expression "(int *)(param_2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }" if (parenthesized_expression "((*(byte *)(param_2 + 0x38) & 0xf) == 6)" ( (binary_expression "(*(byte *)(param_2 + 0x38) & 0xf) == 6" (parenthesized_expression "(*(byte *)(param_2 + 0x38) & 0xf)" ( (binary_expression "*(byte *)(param_2 + 0x38) & 0xf" (pointer_expression "*(byte *)(param_2 + 0x38)" * (cast_expression "(byte *)(param_2 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }" { (if_statement "if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }" if (parenthesized_expression "(*(code **)(*plVar6 + 0x90) == FUN_001be670)" ( (binary_expression "*(code **)(*plVar6 + 0x90) == FUN_001be670" (pointer_expression "*(code **)(*plVar6 + 0x90)" * (cast_expression "(code **)(*plVar6 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x90)" ( (binary_expression "*plVar6 + 0x90" (pointer_expression "*plVar6" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n            iVar4 = (int)plVar6[0x1a];\n          }" { (expression_statement "iVar4 = (int)plVar6[0x1a];" (assignment_expression "iVar4 = (int)plVar6[0x1a]" identifier = (cast_expression "(int)plVar6[0x1a]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar6[0x1a]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }" else (compound_statement "{\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }" { (expression_statement "iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);" (assignment_expression "iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6)" identifier = (call_expression "(**(code **)(*plVar6 + 0x90))(plVar6)" (parenthesized_expression "(**(code **)(*plVar6 + 0x90))" ( (pointer_expression "**(code **)(*plVar6 + 0x90)" * (pointer_expression "*(code **)(*plVar6 + 0x90)" * (cast_expression "(code **)(*plVar6 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x90)" ( (binary_expression "*plVar6 + 0x90" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "(plVar6)" ( identifier )))) ;) }))) (expression_statement "uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);" (assignment_expression "uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7)" identifier = (call_expression "(ulong)(uint)(iVar4 + iVar1 + (int)uVar7)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(iVar4 + iVar1 + (int)uVar7)" ( (binary_expression "iVar4 + iVar1 + (int)uVar7" (binary_expression "iVar4 + iVar1" identifier + identifier) + (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) }) (else_clause "else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }" else (compound_statement "{\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }" { (if_statement "if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;" if (parenthesized_expression "((*(byte *)(plVar6 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)(plVar6 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(plVar6 + 4) & 1)" ( (binary_expression "*(byte *)(plVar6 + 4) & 1" (pointer_expression "*(byte *)(plVar6 + 4)" * (cast_expression "(byte *)(plVar6 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 4)" ( (binary_expression "plVar6 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00275602;" goto statement_identifier ;)) (expression_statement "uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);" (assignment_expression "uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1])" identifier = (call_expression "(ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1])" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(iVar1 + (int)uVar7 + (int)plVar6[1])" ( (binary_expression "iVar1 + (int)uVar7 + (int)plVar6[1]" (binary_expression "iVar1 + (int)uVar7" identifier + (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) + (cast_expression "(int)plVar6[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar6[1]" identifier [ number_literal ]))) )))) ;) }))) }))) (break_statement "break;" break ;) }))) (case_statement "case 3:\n    uVar7 = (ulong)*(uint *)(param_2 + 0x40);\n    break;" case number_literal : (expression_statement "uVar7 = (ulong)*(uint *)(param_2 + 0x40);" (assignment_expression "uVar7 = (ulong)*(uint *)(param_2 + 0x40)" identifier = (binary_expression "(ulong)*(uint *)(param_2 + 0x40)" (parenthesized_expression "(ulong)" ( identifier )) * (cast_expression "(uint *)(param_2 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n    if ((bVar8 & 7) != 1) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    iVar1 = *(int *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }\n    uVar3 = iVar4 + iVar1;\n    uVar7 = (ulong)uVar3;\n    if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }\n    break;" case number_literal : (if_statement "if ((bVar8 & 7) != 1) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }" if (parenthesized_expression "((bVar8 & 7) != 1)" ( (binary_expression "(bVar8 & 7) != 1" (parenthesized_expression "(bVar8 & 7)" ( (binary_expression "bVar8 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }" { (expression_statement "FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");" (call_expression "FUN_0017c650("../../gold/symtab.h",0xb5,"output_data")" identifier (argument_list "("../../gold/symtab.h",0xb5,"output_data")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""output_data"" " string_content ") ))) ;) })) (expression_statement "plVar9 = *(long **)(param_2 + 0x10);" (assignment_expression "plVar9 = *(long **)(param_2 + 0x10)" identifier = (pointer_expression "*(long **)(param_2 + 0x10)" * (cast_expression "(long **)(param_2 + 0x10)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = *(int *)(param_2 + 0x40);" (assignment_expression "iVar1 = *(int *)(param_2 + 0x40)" identifier = (pointer_expression "*(int *)(param_2 + 0x40)" * (cast_expression "(int *)(param_2 + 0x40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }" if (parenthesized_expression "((*(byte *)(param_2 + 0x38) & 0xf) == 6)" ( (binary_expression "(*(byte *)(param_2 + 0x38) & 0xf) == 6" (parenthesized_expression "(*(byte *)(param_2 + 0x38) & 0xf)" ( (binary_expression "*(byte *)(param_2 + 0x38) & 0xf" (pointer_expression "*(byte *)(param_2 + 0x38)" * (cast_expression "(byte *)(param_2 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }" { (expression_statement "plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);" (assignment_expression "plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9)" identifier = (cast_expression "(long *)(**(code **)(*plVar9 + 0x48))(plVar9)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*plVar9 + 0x48))(plVar9)" (parenthesized_expression "(**(code **)(*plVar9 + 0x48))" ( (pointer_expression "**(code **)(*plVar9 + 0x48)" * (pointer_expression "*(code **)(*plVar9 + 0x48)" * (cast_expression "(code **)(*plVar9 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar9 + 0x48)" ( (binary_expression "*plVar9 + 0x48" (pointer_expression "*plVar9" * identifier) + number_literal) ))))) )) (argument_list "(plVar9)" ( identifier ))))) ;) (if_statement "if (plVar6 == (long *)0x0) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }" if (parenthesized_expression "(plVar6 == (long *)0x0)" ( (binary_expression "plVar6 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }" { (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb43,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (if_statement "if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }" if (parenthesized_expression "(*(code **)(*plVar6 + 0x90) == FUN_001be670)" ( (binary_expression "*(code **)(*plVar6 + 0x90) == FUN_001be670" (pointer_expression "*(code **)(*plVar6 + 0x90)" * (cast_expression "(code **)(*plVar6 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x90)" ( (binary_expression "*plVar6 + 0x90" (pointer_expression "*plVar6" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n        iVar4 = (int)plVar6[0x1a];\n      }" { (expression_statement "iVar4 = (int)plVar6[0x1a];" (assignment_expression "iVar4 = (int)plVar6[0x1a]" identifier = (cast_expression "(int)plVar6[0x1a]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar6[0x1a]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }" else (compound_statement "{\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }" { (expression_statement "iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);" (assignment_expression "iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6)" identifier = (call_expression "(**(code **)(*plVar6 + 0x90))(plVar6)" (parenthesized_expression "(**(code **)(*plVar6 + 0x90))" ( (pointer_expression "**(code **)(*plVar6 + 0x90)" * (pointer_expression "*(code **)(*plVar6 + 0x90)" * (cast_expression "(code **)(*plVar6 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*plVar6 + 0x90)" ( (binary_expression "*plVar6 + 0x90" (pointer_expression "*plVar6" * identifier) + number_literal) ))))) )) (argument_list "(plVar6)" ( identifier )))) ;) }))) (expression_statement "bVar8 = *(byte *)(plVar9 + 4);" (assignment_expression "bVar8 = *(byte *)(plVar9 + 4)" identifier = (pointer_expression "*(byte *)(plVar9 + 4)" * (cast_expression "(byte *)(plVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar9 + 4)" ( (binary_expression "plVar9 + 4" identifier + number_literal) ))))) ;) (if_statement "if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;" if (parenthesized_expression "(((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0))" ( (binary_expression "((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)" (parenthesized_expression "((bVar8 & 1) == 0)" ( (binary_expression "(bVar8 & 1) == 0" (parenthesized_expression "(bVar8 & 1)" ( (binary_expression "bVar8 & 1" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((*(byte *)(plVar6 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)(plVar6 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(plVar6 + 4) & 1)" ( (binary_expression "*(byte *)(plVar6 + 4) & 1" (pointer_expression "*(byte *)(plVar6 + 4)" * (cast_expression "(byte *)(plVar6 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar6 + 4)" ( (binary_expression "plVar6 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00275602;" goto statement_identifier ;)) (expression_statement "iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);" (assignment_expression "iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1])" identifier = (binary_expression "iVar4 + ((int)plVar9[1] - (int)plVar6[1])" identifier + (parenthesized_expression "((int)plVar9[1] - (int)plVar6[1])" ( (binary_expression "(int)plVar9[1] - (int)plVar6[1]" (cast_expression "(int)plVar9[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar9[1]" identifier [ number_literal ])) - (cast_expression "(int)plVar6[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar6[1]" identifier [ number_literal ]))) )))) ;) (if_statement "if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }" if (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) != 1)" ( (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) != 1" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" ( (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" * (cast_expression "(byte *)(param_2 + 0x3a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x3a)" ( (binary_expression "param_2 + 0x3a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }" { (expression_statement "FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");" (call_expression "FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end")" identifier (argument_list "("../../gold/symtab.h",0xbe,"offset_is_from_end")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""offset_is_from_end"" " string_content ") ))) ;) })) }) (else_clause "else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }" else (compound_statement "{\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }" { (expression_statement "bVar8 = *(byte *)(plVar9 + 4);" (assignment_expression "bVar8 = *(byte *)(plVar9 + 4)" identifier = (pointer_expression "*(byte *)(plVar9 + 4)" * (cast_expression "(byte *)(plVar9 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(plVar9 + 4)" ( (binary_expression "plVar9 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }" if (parenthesized_expression "((bVar8 & 1) == 0)" ( (binary_expression "(bVar8 & 1) == 0" (parenthesized_expression "(bVar8 & 1)" ( (binary_expression "bVar8 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }" { (labeled_statement "LAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");" statement_identifier : (expression_statement "FUN_0017c650("../../gold/output.h",0xc5,"address");" (call_expression "FUN_0017c650("../../gold/output.h",0xc5,"address")" identifier (argument_list "("../../gold/output.h",0xc5,"address")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""address"" " string_content ") ))) ;)) })) (expression_statement "iVar4 = (int)plVar9[1];" (assignment_expression "iVar4 = (int)plVar9[1]" identifier = (cast_expression "(int)plVar9[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar9[1]" identifier [ number_literal ]))) ;) }))) (expression_statement "uVar3 = iVar4 + iVar1;" (assignment_expression "uVar3 = iVar4 + iVar1" identifier = (binary_expression "iVar4 + iVar1" identifier + identifier)) ;) (expression_statement "uVar7 = (ulong)uVar3;" (assignment_expression "uVar7 = (ulong)uVar3" identifier = (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }" if (parenthesized_expression "(*(char *)(param_2 + 0x18) != '\0')" ( (binary_expression "*(char *)(param_2 + 0x18) != '\0'" (pointer_expression "*(char *)(param_2 + 0x18)" * (cast_expression "(char *)(param_2 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((bVar8 & 2) == 0) {\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }" { (if_statement "if ((bVar8 & 2) == 0) {\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }" if (parenthesized_expression "((bVar8 & 2) == 0)" ( (binary_expression "(bVar8 & 2) == 0" (parenthesized_expression "(bVar8 & 2)" ( (binary_expression "bVar8 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }" { (expression_statement "FUN_0017c650("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_0017c650("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;) })) (expression_statement "uVar7 = (ulong)(uVar3 + (int)plVar9[2]);" (assignment_expression "uVar7 = (ulong)(uVar3 + (int)plVar9[2])" identifier = (call_expression "(ulong)(uVar3 + (int)plVar9[2])" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 + (int)plVar9[2])" ( (binary_expression "uVar3 + (int)plVar9[2]" identifier + (cast_expression "(int)plVar9[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "plVar9[2]" identifier [ number_literal ]))) )))) ;) })) (break_statement "break;" break ;)) (case_statement "case 2:\n    if ((bVar8 & 7) != 2) {\n                    \n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }\n    lVar5 = *(long *)(param_2 + 0x10);\n    uVar3 = *(uint *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }\n    uVar7 = (ulong)uVar3;\n    iVar1 = *(int *)(param_2 + 0x18);\n    if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }\n    break;" case number_literal : (if_statement "if ((bVar8 & 7) != 2) {\n                    \n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }" if (parenthesized_expression "((bVar8 & 7) != 2)" ( (binary_expression "(bVar8 & 7) != 2" (parenthesized_expression "(bVar8 & 7)" ( (binary_expression "bVar8 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }" { (expression_statement "FUN_0017c650("../../gold/symtab.h",200,"output_segment");" (call_expression "FUN_0017c650("../../gold/symtab.h",200,"output_segment")" identifier (argument_list "("../../gold/symtab.h",200,"output_segment")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""output_segment"" " string_content ") ))) ;) })) (expression_statement "lVar5 = *(long *)(param_2 + 0x10);" (assignment_expression "lVar5 = *(long *)(param_2 + 0x10)" identifier = (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)(param_2 + 0x40);" (assignment_expression "uVar3 = *(uint *)(param_2 + 0x40)" identifier = (pointer_expression "*(uint *)(param_2 + 0x40)" * (cast_expression "(uint *)(param_2 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x40)" ( (binary_expression "param_2 + 0x40" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }" if (parenthesized_expression "((*(byte *)(param_2 + 0x38) & 0xf) != 6)" ( (binary_expression "(*(byte *)(param_2 + 0x38) & 0xf) != 6" (parenthesized_expression "(*(byte *)(param_2 + 0x38) & 0xf)" ( (binary_expression "*(byte *)(param_2 + 0x38) & 0xf" (pointer_expression "*(byte *)(param_2 + 0x38)" * (cast_expression "(byte *)(param_2 + 0x38)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }" { (expression_statement "uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);" (assignment_expression "uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8)" identifier = (binary_expression "uVar3 + *(int *)(lVar5 + 0x2b8)" identifier + (pointer_expression "*(int *)(lVar5 + 0x2b8)" * (cast_expression "(int *)(lVar5 + 0x2b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x2b8)" ( (binary_expression "lVar5 + 0x2b8" identifier + number_literal) )))))) ;) })) (expression_statement "uVar7 = (ulong)uVar3;" (assignment_expression "uVar7 = (ulong)uVar3" identifier = (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "iVar1 = *(int *)(param_2 + 0x18);" (assignment_expression "iVar1 = *(int *)(param_2 + 0x18)" identifier = (pointer_expression "*(int *)(param_2 + 0x18)" * (cast_expression "(int *)(param_2 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }" if (parenthesized_expression "(iVar1 == 1)" ( (binary_expression "iVar1 == 1" identifier == number_literal) )) (compound_statement "{\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }" { (expression_statement "uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));" (assignment_expression "uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8))" identifier = (call_expression "(ulong)(uVar3 + *(int *)(lVar5 + 0x2c8))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 + *(int *)(lVar5 + 0x2c8))" ( (binary_expression "uVar3 + *(int *)(lVar5 + 0x2c8)" identifier + (pointer_expression "*(int *)(lVar5 + 0x2c8)" * (cast_expression "(int *)(lVar5 + 0x2c8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x2c8)" ( (binary_expression "lVar5 + 0x2c8" identifier + number_literal) ))))) )))) ;) }) (else_clause "else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }" else (if_statement "if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }" { (if_statement "if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }" if (parenthesized_expression "(iVar1 != 2)" ( (binary_expression "iVar1 != 2" identifier != number_literal) )) (compound_statement "{\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }" { (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb5c,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (expression_statement "uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));" (assignment_expression "uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8))" identifier = (call_expression "(ulong)(uVar3 + *(int *)(lVar5 + 0x2e8))" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 + *(int *)(lVar5 + 0x2e8))" ( (binary_expression "uVar3 + *(int *)(lVar5 + 0x2e8)" identifier + (pointer_expression "*(int *)(lVar5 + 0x2e8)" * (cast_expression "(int *)(lVar5 + 0x2e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar5 + 0x2e8)" ( (binary_expression "lVar5 + 0x2e8" identifier + number_literal) ))))) )))) ;) })))) (break_statement "break;" break ;)) (case_statement "case 4:\nswitchD_00275186_caseD_4:\n    uVar7 = 0;\n    break;" case number_literal : (labeled_statement "switchD_00275186_caseD_4:\n    uVar7 = 0;" statement_identifier : (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;)) (break_statement "break;" break ;)) (case_statement "default:\n                    \n    FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");" default : (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb6a,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;)) })) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" * identifier) = number_literal) ;) (return_statement "return uVar7;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (switch_statement switch (parenthesized_expression ( (binary_expression IDENT & LIT) )) (compound_statement { (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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 = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return LIT ;) })) (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) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) ))) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == (char_literal ' escape_sequence '))) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT ))))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) (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 (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) })) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return LIT ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT)) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT & LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT & LIT) )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (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 (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (binary_expression IDENT + IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ;) }))) }))) (break_statement break ;) }))) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator * (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ;) (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) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ;) })) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) })))) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (break_statement break ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return IDENT ;) })))
(function_definition "ulong FUN_00275150(long param_1,long param_2,undefined4 *param_3)\n\n{\n  int iVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  long lVar5;\n  long *plVar6;\n  ulong uVar7;\n  byte bVar8;\n  long *plVar9;\n  undefined1 auVar10 [16];\n  \n  bVar8 = *(byte *)(param_2 + 0x3a);\n  switch(bVar8 & 7) {\n  case 0:\n    if ((bVar8 & 7) != 0) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar3 = *(uint *)(param_2 + 0x18);\n    bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;\n    if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;\n    if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }\n  case 3:\n    uVar7 = (ulong)*(uint *)(param_2 + 0x40);\n    break;\n  case 1:\n    if ((bVar8 & 7) != 1) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    iVar1 = *(int *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }\n    uVar3 = iVar4 + iVar1;\n    uVar7 = (ulong)uVar3;\n    if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }\n    break;\n  case 2:\n    if ((bVar8 & 7) != 2) {\n                    \n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }\n    lVar5 = *(long *)(param_2 + 0x10);\n    uVar3 = *(uint *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }\n    uVar7 = (ulong)uVar3;\n    iVar1 = *(int *)(param_2 + 0x18);\n    if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }\n    break;\n  case 4:\nswitchD_00275186_caseD_4:\n    uVar7 = 0;\n    break;\n  default:\n                    \n    FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }\n  *param_3 = 0;\n  return uVar7;\n}" (type_identifier "ulong") (function_declarator "FUN_00275150(long param_1,long param_2,undefined4 *param_3)" (identifier "FUN_00275150") (parameter_list "(long param_1,long param_2,undefined4 *param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  int iVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  long lVar5;\n  long *plVar6;\n  ulong uVar7;\n  byte bVar8;\n  long *plVar9;\n  undefined1 auVar10 [16];\n  \n  bVar8 = *(byte *)(param_2 + 0x3a);\n  switch(bVar8 & 7) {\n  case 0:\n    if ((bVar8 & 7) != 0) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar3 = *(uint *)(param_2 + 0x18);\n    bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;\n    if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;\n    if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }\n  case 3:\n    uVar7 = (ulong)*(uint *)(param_2 + 0x40);\n    break;\n  case 1:\n    if ((bVar8 & 7) != 1) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    iVar1 = *(int *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }\n    uVar3 = iVar4 + iVar1;\n    uVar7 = (ulong)uVar3;\n    if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }\n    break;\n  case 2:\n    if ((bVar8 & 7) != 2) {\n                    \n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }\n    lVar5 = *(long *)(param_2 + 0x10);\n    uVar3 = *(uint *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }\n    uVar7 = (ulong)uVar3;\n    iVar1 = *(int *)(param_2 + 0x18);\n    if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }\n    break;\n  case 4:\nswitchD_00275186_caseD_4:\n    uVar7 = 0;\n    break;\n  default:\n                    \n    FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }\n  *param_3 = 0;\n  return uVar7;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "long *plVar6;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar6" (* "*") (identifier "plVar6")) (; ";")) (declaration "ulong uVar7;" (type_identifier "ulong") (identifier "uVar7") (; ";")) (declaration "byte bVar8;" (type_identifier "byte") (identifier "bVar8") (; ";")) (declaration "long *plVar9;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar9" (* "*") (identifier "plVar9")) (; ";")) (declaration "undefined1 auVar10 [16];" (type_identifier "undefined1") (array_declarator "auVar10 [16]" (identifier "auVar10") ([ "[") (number_literal "16") (] "]")) (; ";")) (expression_statement "bVar8 = *(byte *)(param_2 + 0x3a);" (assignment_expression "bVar8 = *(byte *)(param_2 + 0x3a)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)(param_2 + 0x3a)" (* "*") (cast_expression "(byte *)(param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3a)" (( "(") (binary_expression "param_2 + 0x3a" (identifier "param_2") (+ "+") (number_literal "0x3a")) () ")"))))) (; ";")) (switch_statement "switch(bVar8 & 7) {\n  case 0:\n    if ((bVar8 & 7) != 0) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar3 = *(uint *)(param_2 + 0x18);\n    bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;\n    if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;\n    if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }\n  case 3:\n    uVar7 = (ulong)*(uint *)(param_2 + 0x40);\n    break;\n  case 1:\n    if ((bVar8 & 7) != 1) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    iVar1 = *(int *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }\n    uVar3 = iVar4 + iVar1;\n    uVar7 = (ulong)uVar3;\n    if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }\n    break;\n  case 2:\n    if ((bVar8 & 7) != 2) {\n                    \n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }\n    lVar5 = *(long *)(param_2 + 0x10);\n    uVar3 = *(uint *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }\n    uVar7 = (ulong)uVar3;\n    iVar1 = *(int *)(param_2 + 0x18);\n    if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }\n    break;\n  case 4:\nswitchD_00275186_caseD_4:\n    uVar7 = 0;\n    break;\n  default:\n                    \n    FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }" (switch "switch") (parenthesized_expression "(bVar8 & 7)" (( "(") (binary_expression "bVar8 & 7" (identifier "bVar8") (& "&") (number_literal "7")) () ")")) (compound_statement "{\n  case 0:\n    if ((bVar8 & 7) != 0) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar3 = *(uint *)(param_2 + 0x18);\n    bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;\n    if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;\n    if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }\n  case 3:\n    uVar7 = (ulong)*(uint *)(param_2 + 0x40);\n    break;\n  case 1:\n    if ((bVar8 & 7) != 1) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    iVar1 = *(int *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }\n    uVar3 = iVar4 + iVar1;\n    uVar7 = (ulong)uVar3;\n    if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }\n    break;\n  case 2:\n    if ((bVar8 & 7) != 2) {\n                    \n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }\n    lVar5 = *(long *)(param_2 + 0x10);\n    uVar3 = *(uint *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }\n    uVar7 = (ulong)uVar3;\n    iVar1 = *(int *)(param_2 + 0x18);\n    if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }\n    break;\n  case 4:\nswitchD_00275186_caseD_4:\n    uVar7 = 0;\n    break;\n  default:\n                    \n    FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }" ({ "{") (case_statement "case 0:\n    if ((bVar8 & 7) != 0) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }\n    uVar3 = *(uint *)(param_2 + 0x18);\n    bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;\n    if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;\n    if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }" (case "case") (number_literal "0") (: ":") (if_statement "if ((bVar8 & 7) != 0) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }" (if "if") (parenthesized_expression "((bVar8 & 7) != 0)" (( "(") (binary_expression "(bVar8 & 7) != 0" (parenthesized_expression "(bVar8 & 7)" (( "(") (binary_expression "bVar8 & 7" (identifier "bVar8") (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");\n    }" ({ "{") (expression_statement "FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_0017c650("../../gold/symtab.h",0xaa,"shndx")" (identifier "FUN_0017c650") (argument_list "("../../gold/symtab.h",0xaa,"shndx")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xaa") (, ",") (string_literal ""shndx"" (" """) (string_content "shndx") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar3 = *(uint *)(param_2 + 0x18);" (assignment_expression "uVar3 = *(uint *)(param_2 + 0x18)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(param_2 + 0x18)" (* "*") (cast_expression "(uint *)(param_2 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;" (assignment_expression "bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1" (identifier "bVar8") (= "=") (binary_expression "*(byte *)(param_2 + 0x3b) >> 5 & 1" (binary_expression "*(byte *)(param_2 + 0x3b) >> 5" (pointer_expression "*(byte *)(param_2 + 0x3b)" (* "*") (cast_expression "(byte *)(param_2 + 0x3b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3b)" (( "(") (binary_expression "param_2 + 0x3b" (identifier "param_2") (+ "+") (number_literal "0x3b")) () ")")))) (>> ">>") (number_literal "5")) (& "&") (number_literal "1"))) (; ";")) (if_statement "if ((uVar3 != 0xfff1) && (bVar8 == 0)) {\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }" (if "if") (parenthesized_expression "((uVar3 != 0xfff1) && (bVar8 == 0))" (( "(") (binary_expression "(uVar3 != 0xfff1) && (bVar8 == 0)" (parenthesized_expression "(uVar3 != 0xfff1)" (( "(") (binary_expression "uVar3 != 0xfff1" (identifier "uVar3") (!= "!=") (number_literal "0xfff1")) () ")")) (&& "&&") (parenthesized_expression "(bVar8 == 0)" (( "(") (binary_expression "bVar8 == 0" (identifier "bVar8") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      cVar2 = FUN_00270ff0(uVar3);\n      if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }\n    }" ({ "{") (expression_statement "cVar2 = FUN_00270ff0(uVar3);" (assignment_expression "cVar2 = FUN_00270ff0(uVar3)" (identifier "cVar2") (= "=") (call_expression "FUN_00270ff0(uVar3)" (identifier "FUN_00270ff0") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (if_statement "if (cVar2 == '\0') {\n        *param_3 = 1;\n        return 0;\n      }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        *param_3 = 1;\n        return 0;\n      }" ({ "{") (expression_statement "*param_3 = 1;" (assignment_expression "*param_3 = 1" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "1")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) != 0" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" (* "*") (cast_expression "(byte *)(param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3a)" (( "(") (binary_expression "param_2 + 0x3a" (identifier "param_2") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_0017c650("../../gold/symtab.h",0xa1,"object");\n      }" ({ "{") (expression_statement "FUN_0017c650("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_0017c650("../../gold/symtab.h",0xa1,"object")" (identifier "FUN_0017c650") (argument_list "("../../gold/symtab.h",0xa1,"object")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xa1") (, ",") (string_literal ""object"" (" """) (string_content "object") (" """)) () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "plVar9 = *(long **)(param_2 + 0x10);" (assignment_expression "plVar9 = *(long **)(param_2 + 0x10)" (identifier "plVar9") (= "=") (pointer_expression "*(long **)(param_2 + 0x10)" (* "*") (cast_expression "(long **)(param_2 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))\n    goto switchD_00275186_caseD_4;" (if "if") (parenthesized_expression "((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))" (( "(") (binary_expression "(((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0)" (parenthesized_expression "(((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0))" (( "(") (binary_expression "((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||\n        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)" (parenthesized_expression "((*(byte *)((long)plVar9 + 0x3c) & 1) != 0)" (( "(") (binary_expression "(*(byte *)((long)plVar9 + 0x3c) & 1) != 0" (parenthesized_expression "(*(byte *)((long)plVar9 + 0x3c) & 1)" (( "(") (binary_expression "*(byte *)((long)plVar9 + 0x3c) & 1" (pointer_expression "*(byte *)((long)plVar9 + 0x3c)" (* "*") (cast_expression "(byte *)((long)plVar9 + 0x3c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar9 + 0x3c)" (( "(") (binary_expression "(long)plVar9 + 0x3c" (cast_expression "(long)plVar9" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar9")) (+ "+") (number_literal "0x3c")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)" (( "(") (comma_expression "lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0" (assignment_expression "lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9)" (identifier "lVar5") (= "=") (call_expression "(**(code **)(*plVar9 + 0x28))(plVar9)" (parenthesized_expression "(**(code **)(*plVar9 + 0x28))" (( "(") (pointer_expression "**(code **)(*plVar9 + 0x28)" (* "*") (pointer_expression "*(code **)(*plVar9 + 0x28)" (* "*") (cast_expression "(code **)(*plVar9 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar9 + 0x28)" (( "(") (binary_expression "*plVar9 + 0x28" (pointer_expression "*plVar9" (* "*") (identifier "plVar9")) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(plVar9)" (( "(") (identifier "plVar9") () ")")))) (, ",") (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(lVar5 != 0)" (( "(") (binary_expression "lVar5 != 0" (identifier "lVar5") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto switchD_00275186_caseD_4;" (goto "goto") (statement_identifier "switchD_00275186_caseD_4") (; ";"))) (if_statement "if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }" (if "if") (parenthesized_expression "((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0'))))" (( "(") (binary_expression "(bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))" (parenthesized_expression "(bVar8 != 0)" (( "(") (binary_expression "bVar8 != 0" (identifier "bVar8") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))" (( "(") (parenthesized_expression "(uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0'))" (( "(") (binary_expression "uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')" (binary_expression "uVar3 != 0xfff1" (identifier "uVar3") (!= "!=") (number_literal "0xfff1")) (&& "&&") (parenthesized_expression "(cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')" (( "(") (comma_expression "cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0'" (assignment_expression "cVar2 = FUN_00270ff0(uVar3)" (identifier "cVar2") (= "=") (call_expression "FUN_00270ff0(uVar3)" (identifier "FUN_00270ff0") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (, ",") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }\n      cVar2 = FUN_00271390(param_1,plVar9,uVar3);\n      if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }\n      if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }\n      break;\n    }" ({ "{") (if_statement "if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }\n      else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }" (if "if") (parenthesized_expression "(*(code **)(*plVar9 + 0xc0) == FUN_00156120)" (( "(") (binary_expression "*(code **)(*plVar9 + 0xc0) == FUN_00156120" (pointer_expression "*(code **)(*plVar9 + 0xc0)" (* "*") (cast_expression "(code **)(*plVar9 + 0xc0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar9 + 0xc0)" (( "(") (binary_expression "*plVar9 + 0xc0" (pointer_expression "*plVar9" (* "*") (identifier "plVar9")) (+ "+") (number_literal "0xc0")) () ")")))) (== "==") (identifier "FUN_00156120")) () ")")) (compound_statement "{\n        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;\n        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);\n      }" ({ "{") (if_statement "if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;" (if "if") (parenthesized_expression "((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3)" (( "(") (binary_expression "(ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3" (call_expression "(ulong)(plVar9[0xb] - plVar9[10] >> 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(plVar9[0xb] - plVar9[10] >> 3)" (( "(") (binary_expression "plVar9[0xb] - plVar9[10] >> 3" (binary_expression "plVar9[0xb] - plVar9[10]" (subscript_expression "plVar9[0xb]" (identifier "plVar9") ([ "[") (number_literal "0xb") (] "]")) (- "-") (subscript_expression "plVar9[10]" (identifier "plVar9") ([ "[") (number_literal "10") (] "]"))) (>> ">>") (number_literal "3")) () ")"))) (<= "<=") (cast_expression "(ulong)uVar3" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar3"))) () ")")) (goto_statement "goto LAB_002756af;" (goto "goto") (statement_identifier "LAB_002756af") (; ";"))) (expression_statement "plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);" (assignment_expression "plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8)" (identifier "plVar6") (= "=") (pointer_expression "*(long **)(plVar9[10] + (ulong)uVar3 * 8)" (* "*") (cast_expression "(long **)(plVar9[10] + (ulong)uVar3 * 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(plVar9[10] + (ulong)uVar3 * 8)" (( "(") (binary_expression "plVar9[10] + (ulong)uVar3 * 8" (subscript_expression "plVar9[10]" (identifier "plVar9") ([ "[") (number_literal "10") (] "]")) (+ "+") (binary_expression "(ulong)uVar3 * 8" (cast_expression "(ulong)uVar3" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar3")) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }" (else "else") (compound_statement "{\n        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);\n      }" ({ "{") (expression_statement "plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);" (assignment_expression "plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3)" (identifier "plVar6") (= "=") (cast_expression "(long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3)" (parenthesized_expression "(**(code **)(*plVar9 + 0xc0))" (( "(") (pointer_expression "**(code **)(*plVar9 + 0xc0)" (* "*") (pointer_expression "*(code **)(*plVar9 + 0xc0)" (* "*") (cast_expression "(code **)(*plVar9 + 0xc0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar9 + 0xc0)" (( "(") (binary_expression "*plVar9 + 0xc0" (pointer_expression "*plVar9" (* "*") (identifier "plVar9")) (+ "+") (number_literal "0xc0")) () ")"))))) () ")")) (argument_list "(plVar9,uVar3)" (( "(") (identifier "plVar9") (, ",") (identifier "uVar3") () ")"))))) (; ";")) (} "}")))) (expression_statement "cVar2 = FUN_00271390(param_1,plVar9,uVar3);" (assignment_expression "cVar2 = FUN_00271390(param_1,plVar9,uVar3)" (identifier "cVar2") (= "=") (call_expression "FUN_00271390(param_1,plVar9,uVar3)" (identifier "FUN_00271390") (argument_list "(param_1,plVar9,uVar3)" (( "(") (identifier "param_1") (, ",") (identifier "plVar9") (, ",") (identifier "uVar3") () ")")))) (; ";")) (if_statement "if (cVar2 == '\0') {\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }\n      else {\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);\n        if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }\n      }" ({ "{") (expression_statement "uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);" (assignment_expression "uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(*plVar9 + 0xd0))(plVar9,uVar3)" (parenthesized_expression "(**(code **)(*plVar9 + 0xd0))" (( "(") (pointer_expression "**(code **)(*plVar9 + 0xd0)" (* "*") (pointer_expression "*(code **)(*plVar9 + 0xd0)" (* "*") (cast_expression "(code **)(*plVar9 + 0xd0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar9 + 0xd0)" (( "(") (binary_expression "*plVar9 + 0xd0" (pointer_expression "*plVar9" (* "*") (identifier "plVar9")) (+ "+") (number_literal "0xd0")) () ")"))))) () ")")) (argument_list "(plVar9,uVar3)" (( "(") (identifier "plVar9") (, ",") (identifier "uVar3") () ")")))) (; ";")) (if_statement "if (plVar6 == (long *)0x0) {\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }" (if "if") (parenthesized_expression "(plVar6 == (long *)0x0)" (( "(") (binary_expression "plVar6 == (long *)0x0" (identifier "plVar6") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }\n          if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }\n          *param_3 = 2;\n          return 0;\n        }" ({ "{") (if_statement "if (PTR_DAT_0043e6b0[0x20] == '\0') {\n            FUN_00270c00();\n            goto LAB_002756af;\n          }" (if "if") (parenthesized_expression "(PTR_DAT_0043e6b0[0x20] == '\0')" (( "(") (binary_expression "PTR_DAT_0043e6b0[0x20] == '\0'" (subscript_expression "PTR_DAT_0043e6b0[0x20]" (identifier "PTR_DAT_0043e6b0") ([ "[") (number_literal "0x20") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            FUN_00270c00();\n            goto LAB_002756af;\n          }" ({ "{") (expression_statement "FUN_00270c00();" (call_expression "FUN_00270c00()" (identifier "FUN_00270c00") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_002756af;" (goto "goto") (statement_identifier "LAB_002756af") (; ";")) (} "}"))) (if_statement "if (PTR_DAT_0043e6b0[0x21] == '\0') {\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }" (if "if") (parenthesized_expression "(PTR_DAT_0043e6b0[0x21] == '\0')" (( "(") (binary_expression "PTR_DAT_0043e6b0[0x21] == '\0'" (subscript_expression "PTR_DAT_0043e6b0[0x21]" (identifier "PTR_DAT_0043e6b0") ([ "[") (number_literal "0x21") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }\n            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }\n          }" ({ "{") (if_statement "if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }" (if "if") (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0)" (( "(") (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x10" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n            }" ({ "{") (labeled_statement "LAB_002756fc:\n                    \n              FUN_0017c650("../../gold/parameters.h",0x5c,"options");" (statement_identifier "LAB_002756fc") (: ":") (expression_statement "FUN_0017c650("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0017c650("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_0017c650") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";"))) (} "}"))) (if_statement "if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }" (if "if") (parenthesized_expression "(*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0')" (( "(") (binary_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0'" (pointer_expression "*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" (* "*") (cast_expression "(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051)" (( "(") (binary_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051" (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x10" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x5051")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }\n              if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }\n            }" ({ "{") (if_statement "if (*(int *)(param_2 + 0x20) == 0) {\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x20) == 0)" (( "(") (binary_expression "*(int *)(param_2 + 0x20) == 0" (pointer_expression "*(int *)(param_2 + 0x20)" (* "*") (cast_expression "(int *)(param_2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                FUN_00270c20();\n                goto LAB_002756fc;\n              }" ({ "{") (expression_statement "FUN_00270c20();" (call_expression "FUN_00270c20()" (identifier "FUN_00270c20") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_002756fc;" (goto "goto") (statement_identifier "LAB_002756fc") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_2 + 0x20) != -1) {\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x20) != -1)" (( "(") (binary_expression "*(int *)(param_2 + 0x20) != -1" (pointer_expression "*(int *)(param_2 + 0x20)" (* "*") (cast_expression "(int *)(param_2 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x20)" (( "(") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n                    \n                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");\n              }" ({ "{") (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value")" (identifier "FUN_0017c650") (argument_list "("../../gold/symtab.cc",0xb21,"compute_final_value")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xb21") (, ",") (string_literal ""compute_final_value"" (" """) (string_content "compute_final_value") (" """)) () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "*param_3 = 2;" (assignment_expression "*param_3 = 2" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "2")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }" (else "else") (compound_statement "{\n        if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }\n        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);\n        uVar7 = auVar10._8_8_;\n        plVar9 = auVar10._0_8_;\n        if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }\n        uVar3 = auVar10._8_4_;\n        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }\n        if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }\n        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);\n      }" ({ "{") (if_statement "if (plVar6 != (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }" (if "if") (parenthesized_expression "(plVar6 != (long *)0x0)" (( "(") (binary_expression "plVar6 != (long *)0x0" (identifier "plVar6") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");\n        }" ({ "{") (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value")" (identifier "FUN_0017c650") (argument_list "("../../gold/symtab.cc",0xb0c,"compute_final_value")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xb0c") (, ",") (string_literal ""compute_final_value"" (" """) (string_content "compute_final_value") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);" (assignment_expression "auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3)" (identifier "auVar10") (= "=") (call_expression "FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3)" (identifier "FUN_0017f670") (argument_list "(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3)" (( "(") (pointer_expression "*(undefined8 *)(param_1 + 0x298)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x298)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x298)" (( "(") (binary_expression "param_1 + 0x298" (identifier "param_1") (+ "+") (number_literal "0x298")) () ")")))) (, ",") (identifier "plVar9") (, ",") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "uVar7 = auVar10._8_8_;" (assignment_expression "uVar7 = auVar10._8_8_" (identifier "uVar7") (= "=") (field_expression "auVar10._8_8_" (identifier "auVar10") (. ".") (field_identifier "_8_8_"))) (; ";")) (expression_statement "plVar9 = auVar10._0_8_;" (assignment_expression "plVar9 = auVar10._0_8_" (identifier "plVar9") (= "=") (field_expression "auVar10._0_8_" (identifier "auVar10") (. ".") (field_identifier "_0_8_"))) (; ";")) (if_statement "if (plVar9 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }" (if "if") (parenthesized_expression "(plVar9 == (long *)0x0)" (( "(") (binary_expression "plVar9 == (long *)0x0" (identifier "plVar9") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");\n        }" ({ "{") (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value")" (identifier "FUN_0017c650") (argument_list "("../../gold/symtab.cc",0xb10,"compute_final_value")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xb10") (, ",") (string_literal ""compute_final_value"" (" """) (string_content "compute_final_value") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar3 = auVar10._8_4_;" (assignment_expression "uVar3 = auVar10._8_4_" (identifier "uVar3") (= "=") (field_expression "auVar10._8_4_" (identifier "auVar10") (. ".") (field_identifier "_8_4_"))) (; ";")) (if_statement "if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }\n        else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }" (if "if") (parenthesized_expression "(*(code **)(*plVar9 + 0xc0) == FUN_00156120)" (( "(") (binary_expression "*(code **)(*plVar9 + 0xc0) == FUN_00156120" (pointer_expression "*(code **)(*plVar9 + 0xc0)" (* "*") (cast_expression "(code **)(*plVar9 + 0xc0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar9 + 0xc0)" (( "(") (binary_expression "*plVar9 + 0xc0" (pointer_expression "*plVar9" (* "*") (identifier "plVar9")) (+ "+") (number_literal "0xc0")) () ")")))) (== "==") (identifier "FUN_00156120")) () ")")) (compound_statement "{\n          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }\n          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);\n        }" ({ "{") (if_statement "if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }" (if "if") (parenthesized_expression "((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff))" (( "(") (binary_expression "(ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)" (call_expression "(ulong)(plVar9[0xb] - plVar9[10] >> 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(plVar9[0xb] - plVar9[10] >> 3)" (( "(") (binary_expression "plVar9[0xb] - plVar9[10] >> 3" (binary_expression "plVar9[0xb] - plVar9[10]" (subscript_expression "plVar9[0xb]" (identifier "plVar9") ([ "[") (number_literal "0xb") (] "]")) (- "-") (subscript_expression "plVar9[10]" (identifier "plVar9") ([ "[") (number_literal "10") (] "]"))) (>> ">>") (number_literal "3")) () ")"))) (<= "<=") (parenthesized_expression "(uVar7 & 0xffffffff)" (( "(") (binary_expression "uVar7 & 0xffffffff" (identifier "uVar7") (& "&") (number_literal "0xffffffff")) () ")"))) () ")")) (compound_statement "{\nLAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");\n          }" ({ "{") (labeled_statement "LAB_002756af:\n                    \n            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");" (statement_identifier "LAB_002756af") (: ":") (expression_statement "FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");" (call_expression "FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section")" (identifier "FUN_0017c650") (argument_list "("../../gold/object.h",0x5c8,"do_output_section")" (( "(") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """)) (, ",") (number_literal "0x5c8") (, ",") (string_literal ""do_output_section"" (" """) (string_content "do_output_section") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);" (assignment_expression "plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8)" (identifier "plVar6") (= "=") (pointer_expression "*(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8)" (* "*") (cast_expression "(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(plVar9[10] + (uVar7 & 0xffffffff) * 8)" (( "(") (binary_expression "plVar9[10] + (uVar7 & 0xffffffff) * 8" (subscript_expression "plVar9[10]" (identifier "plVar9") ([ "[") (number_literal "10") (] "]")) (+ "+") (binary_expression "(uVar7 & 0xffffffff) * 8" (parenthesized_expression "(uVar7 & 0xffffffff)" (( "(") (binary_expression "uVar7 & 0xffffffff" (identifier "uVar7") (& "&") (number_literal "0xffffffff")) () ")")) (* "*") (number_literal "8"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }" (else "else") (compound_statement "{\n          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);\n        }" ({ "{") (expression_statement "plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);" (assignment_expression "plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff)" (identifier "plVar6") (= "=") (cast_expression "(long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff)" (parenthesized_expression "(**(code **)(*plVar9 + 0xc0))" (( "(") (pointer_expression "**(code **)(*plVar9 + 0xc0)" (* "*") (pointer_expression "*(code **)(*plVar9 + 0xc0)" (* "*") (cast_expression "(code **)(*plVar9 + 0xc0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar9 + 0xc0)" (( "(") (binary_expression "*plVar9 + 0xc0" (pointer_expression "*plVar9" (* "*") (identifier "plVar9")) (+ "+") (number_literal "0xc0")) () ")"))))) () ")")) (argument_list "(plVar9,uVar7 & 0xffffffff)" (( "(") (identifier "plVar9") (, ",") (binary_expression "uVar7 & 0xffffffff" (identifier "uVar7") (& "&") (number_literal "0xffffffff")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (plVar6 == (long *)0x0) {\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }" (if "if") (parenthesized_expression "(plVar6 == (long *)0x0)" (( "(") (binary_expression "plVar6 == (long *)0x0" (identifier "plVar6") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");\n        }" ({ "{") (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value")" (identifier "FUN_0017c650") (argument_list "("../../gold/symtab.cc",0xb15,"compute_final_value")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xb15") (, ",") (string_literal ""compute_final_value"" (" """) (string_content "compute_final_value") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);" (assignment_expression "uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff)" (parenthesized_expression "(**(code **)(*plVar9 + 0xd0))" (( "(") (pointer_expression "**(code **)(*plVar9 + 0xd0)" (* "*") (pointer_expression "*(code **)(*plVar9 + 0xd0)" (* "*") (cast_expression "(code **)(*plVar9 + 0xd0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar9 + 0xd0)" (( "(") (binary_expression "*plVar9 + 0xd0" (pointer_expression "*plVar9" (* "*") (identifier "plVar9")) (+ "+") (number_literal "0xd0")) () ")"))))) () ")")) (argument_list "(plVar9,uVar7 & 0xffffffff)" (( "(") (identifier "plVar9") (, ",") (binary_expression "uVar7 & 0xffffffff" (identifier "uVar7") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (} "}")))) (if_statement "if (uVar7 == 0xffffffffffffffff) {\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }\n      else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }" (if "if") (parenthesized_expression "(uVar7 == 0xffffffffffffffff)" (( "(") (binary_expression "uVar7 == 0xffffffffffffffff" (identifier "uVar7") (== "==") (number_literal "0xffffffffffffffff")) () ")")) (compound_statement "{\n        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));\n      }" ({ "{") (expression_statement "uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));" (assignment_expression "uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40))" (identifier "uVar7") (= "=") (call_expression "FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40))" (identifier "FUN_001fbe80") (argument_list "(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40))" (( "(") (identifier "plVar6") (, ",") (identifier "plVar9") (, ",") (identifier "uVar3") (, ",") (pointer_expression "*(undefined4 *)(param_2 + 0x40)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x40)" (( "(") (binary_expression "param_2 + 0x40" (identifier "param_2") (+ "+") (number_literal "0x40")) () ")")))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }" (else "else") (compound_statement "{\n        if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }\n        iVar1 = *(int *)(param_2 + 0x40);\n        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }\n      }" ({ "{") (if_statement "if ((uVar7 & 0xffffffff) != uVar7) {\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }" (if "if") (parenthesized_expression "((uVar7 & 0xffffffff) != uVar7)" (( "(") (binary_expression "(uVar7 & 0xffffffff) != uVar7" (parenthesized_expression "(uVar7 & 0xffffffff)" (( "(") (binary_expression "uVar7 & 0xffffffff" (identifier "uVar7") (& "&") (number_literal "0xffffffff")) () ")")) (!= "!=") (identifier "uVar7")) () ")")) (compound_statement "{\n                    \n          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");\n        }" ({ "{") (expression_statement "FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");" (call_expression "FUN_0017c650("../../gold/gold.h",0xc0,"convert_types")" (identifier "FUN_0017c650") (argument_list "("../../gold/gold.h",0xc0,"convert_types")" (( "(") (string_literal ""../../gold/gold.h"" (" """) (string_content "../../gold/gold.h") (" """)) (, ",") (number_literal "0xc0") (, ",") (string_literal ""convert_types"" (" """) (string_content "convert_types") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar1 = *(int *)(param_2 + 0x40);" (assignment_expression "iVar1 = *(int *)(param_2 + 0x40)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_2 + 0x40)" (* "*") (cast_expression "(int *)(param_2 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x40)" (( "(") (binary_expression "param_2 + 0x40" (identifier "param_2") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }\n        else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 0x38) & 0xf) == 6)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x38) & 0xf) == 6" (parenthesized_expression "(*(byte *)(param_2 + 0x38) & 0xf)" (( "(") (binary_expression "*(byte *)(param_2 + 0x38) & 0xf" (pointer_expression "*(byte *)(param_2 + 0x38)" (* "*") (cast_expression "(byte *)(param_2 + 0x38)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x38)" (( "(") (binary_expression "param_2 + 0x38" (identifier "param_2") (+ "+") (number_literal "0x38")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "6")) () ")")) (compound_statement "{\n          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }\n          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);\n        }" ({ "{") (if_statement "if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n            iVar4 = (int)plVar6[0x1a];\n          }\n          else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }" (if "if") (parenthesized_expression "(*(code **)(*plVar6 + 0x90) == FUN_001be670)" (( "(") (binary_expression "*(code **)(*plVar6 + 0x90) == FUN_001be670" (pointer_expression "*(code **)(*plVar6 + 0x90)" (* "*") (cast_expression "(code **)(*plVar6 + 0x90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar6 + 0x90)" (( "(") (binary_expression "*plVar6 + 0x90" (pointer_expression "*plVar6" (* "*") (identifier "plVar6")) (+ "+") (number_literal "0x90")) () ")")))) (== "==") (identifier "FUN_001be670")) () ")")) (compound_statement "{\n            iVar4 = (int)plVar6[0x1a];\n          }" ({ "{") (expression_statement "iVar4 = (int)plVar6[0x1a];" (assignment_expression "iVar4 = (int)plVar6[0x1a]" (identifier "iVar4") (= "=") (cast_expression "(int)plVar6[0x1a]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar6[0x1a]" (identifier "plVar6") ([ "[") (number_literal "0x1a") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }" (else "else") (compound_statement "{\n            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n          }" ({ "{") (expression_statement "iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);" (assignment_expression "iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(*plVar6 + 0x90))(plVar6)" (parenthesized_expression "(**(code **)(*plVar6 + 0x90))" (( "(") (pointer_expression "**(code **)(*plVar6 + 0x90)" (* "*") (pointer_expression "*(code **)(*plVar6 + 0x90)" (* "*") (cast_expression "(code **)(*plVar6 + 0x90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar6 + 0x90)" (( "(") (binary_expression "*plVar6 + 0x90" (pointer_expression "*plVar6" (* "*") (identifier "plVar6")) (+ "+") (number_literal "0x90")) () ")"))))) () ")")) (argument_list "(plVar6)" (( "(") (identifier "plVar6") () ")")))) (; ";")) (} "}")))) (expression_statement "uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);" (assignment_expression "uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7)" (identifier "uVar7") (= "=") (call_expression "(ulong)(uint)(iVar4 + iVar1 + (int)uVar7)" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uint)" (( "(") (identifier "uint") () ")"))) (argument_list "(iVar4 + iVar1 + (int)uVar7)" (( "(") (binary_expression "iVar4 + iVar1 + (int)uVar7" (binary_expression "iVar4 + iVar1" (identifier "iVar4") (+ "+") (identifier "iVar1")) (+ "+") (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }" (else "else") (compound_statement "{\n          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;\n          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);\n        }" ({ "{") (if_statement "if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;" (if "if") (parenthesized_expression "((*(byte *)(plVar6 + 4) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(plVar6 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(plVar6 + 4) & 1)" (( "(") (binary_expression "*(byte *)(plVar6 + 4) & 1" (pointer_expression "*(byte *)(plVar6 + 4)" (* "*") (cast_expression "(byte *)(plVar6 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar6 + 4)" (( "(") (binary_expression "plVar6 + 4" (identifier "plVar6") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00275602;" (goto "goto") (statement_identifier "LAB_00275602") (; ";"))) (expression_statement "uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);" (assignment_expression "uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1])" (identifier "uVar7") (= "=") (call_expression "(ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1])" (call_expression "(ulong)(uint)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uint)" (( "(") (identifier "uint") () ")"))) (argument_list "(iVar1 + (int)uVar7 + (int)plVar6[1])" (( "(") (binary_expression "iVar1 + (int)uVar7 + (int)plVar6[1]" (binary_expression "iVar1 + (int)uVar7" (identifier "iVar1") (+ "+") (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7"))) (+ "+") (cast_expression "(int)plVar6[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar6[1]" (identifier "plVar6") ([ "[") (number_literal "1") (] "]")))) () ")")))) (; ";")) (} "}")))) (} "}")))) (break_statement "break;" (break "break") (; ";")) (} "}")))) (case_statement "case 3:\n    uVar7 = (ulong)*(uint *)(param_2 + 0x40);\n    break;" (case "case") (number_literal "3") (: ":") (expression_statement "uVar7 = (ulong)*(uint *)(param_2 + 0x40);" (assignment_expression "uVar7 = (ulong)*(uint *)(param_2 + 0x40)" (identifier "uVar7") (= "=") (binary_expression "(ulong)*(uint *)(param_2 + 0x40)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (cast_expression "(uint *)(param_2 + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x40)" (( "(") (binary_expression "param_2 + 0x40" (identifier "param_2") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n    if ((bVar8 & 7) != 1) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }\n    plVar9 = *(long **)(param_2 + 0x10);\n    iVar1 = *(int *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }\n    uVar3 = iVar4 + iVar1;\n    uVar7 = (ulong)uVar3;\n    if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }\n    break;" (case "case") (number_literal "1") (: ":") (if_statement "if ((bVar8 & 7) != 1) {\n                    \n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }" (if "if") (parenthesized_expression "((bVar8 & 7) != 1)" (( "(") (binary_expression "(bVar8 & 7) != 1" (parenthesized_expression "(bVar8 & 7)" (( "(") (binary_expression "bVar8 & 7" (identifier "bVar8") (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");\n    }" ({ "{") (expression_statement "FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");" (call_expression "FUN_0017c650("../../gold/symtab.h",0xb5,"output_data")" (identifier "FUN_0017c650") (argument_list "("../../gold/symtab.h",0xb5,"output_data")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xb5") (, ",") (string_literal ""output_data"" (" """) (string_content "output_data") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "plVar9 = *(long **)(param_2 + 0x10);" (assignment_expression "plVar9 = *(long **)(param_2 + 0x10)" (identifier "plVar9") (= "=") (pointer_expression "*(long **)(param_2 + 0x10)" (* "*") (cast_expression "(long **)(param_2 + 0x10)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar1 = *(int *)(param_2 + 0x40);" (assignment_expression "iVar1 = *(int *)(param_2 + 0x40)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_2 + 0x40)" (* "*") (cast_expression "(int *)(param_2 + 0x40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x40)" (( "(") (binary_expression "param_2 + 0x40" (identifier "param_2") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 0x38) & 0xf) == 6)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x38) & 0xf) == 6" (parenthesized_expression "(*(byte *)(param_2 + 0x38) & 0xf)" (( "(") (binary_expression "*(byte *)(param_2 + 0x38) & 0xf" (pointer_expression "*(byte *)(param_2 + 0x38)" (* "*") (cast_expression "(byte *)(param_2 + 0x38)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x38)" (( "(") (binary_expression "param_2 + 0x38" (identifier "param_2") (+ "+") (number_literal "0x38")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "6")) () ")")) (compound_statement "{\n      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);\n      if (plVar6 == (long *)0x0) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }\n      bVar8 = *(byte *)(plVar9 + 4);\n      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;\n      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);\n      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }" ({ "{") (expression_statement "plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);" (assignment_expression "plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9)" (identifier "plVar6") (= "=") (cast_expression "(long *)(**(code **)(*plVar9 + 0x48))(plVar9)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*plVar9 + 0x48))(plVar9)" (parenthesized_expression "(**(code **)(*plVar9 + 0x48))" (( "(") (pointer_expression "**(code **)(*plVar9 + 0x48)" (* "*") (pointer_expression "*(code **)(*plVar9 + 0x48)" (* "*") (cast_expression "(code **)(*plVar9 + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar9 + 0x48)" (( "(") (binary_expression "*plVar9 + 0x48" (pointer_expression "*plVar9" (* "*") (identifier "plVar9")) (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (argument_list "(plVar9)" (( "(") (identifier "plVar9") () ")"))))) (; ";")) (if_statement "if (plVar6 == (long *)0x0) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }" (if "if") (parenthesized_expression "(plVar6 == (long *)0x0)" (( "(") (binary_expression "plVar6 == (long *)0x0" (identifier "plVar6") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }" ({ "{") (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value")" (identifier "FUN_0017c650") (argument_list "("../../gold/symtab.cc",0xb43,"compute_final_value")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xb43") (, ",") (string_literal ""compute_final_value"" (" """) (string_content "compute_final_value") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {\n        iVar4 = (int)plVar6[0x1a];\n      }\n      else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }" (if "if") (parenthesized_expression "(*(code **)(*plVar6 + 0x90) == FUN_001be670)" (( "(") (binary_expression "*(code **)(*plVar6 + 0x90) == FUN_001be670" (pointer_expression "*(code **)(*plVar6 + 0x90)" (* "*") (cast_expression "(code **)(*plVar6 + 0x90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar6 + 0x90)" (( "(") (binary_expression "*plVar6 + 0x90" (pointer_expression "*plVar6" (* "*") (identifier "plVar6")) (+ "+") (number_literal "0x90")) () ")")))) (== "==") (identifier "FUN_001be670")) () ")")) (compound_statement "{\n        iVar4 = (int)plVar6[0x1a];\n      }" ({ "{") (expression_statement "iVar4 = (int)plVar6[0x1a];" (assignment_expression "iVar4 = (int)plVar6[0x1a]" (identifier "iVar4") (= "=") (cast_expression "(int)plVar6[0x1a]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar6[0x1a]" (identifier "plVar6") ([ "[") (number_literal "0x1a") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }" (else "else") (compound_statement "{\n        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);\n      }" ({ "{") (expression_statement "iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);" (assignment_expression "iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(*plVar6 + 0x90))(plVar6)" (parenthesized_expression "(**(code **)(*plVar6 + 0x90))" (( "(") (pointer_expression "**(code **)(*plVar6 + 0x90)" (* "*") (pointer_expression "*(code **)(*plVar6 + 0x90)" (* "*") (cast_expression "(code **)(*plVar6 + 0x90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*plVar6 + 0x90)" (( "(") (binary_expression "*plVar6 + 0x90" (pointer_expression "*plVar6" (* "*") (identifier "plVar6")) (+ "+") (number_literal "0x90")) () ")"))))) () ")")) (argument_list "(plVar6)" (( "(") (identifier "plVar6") () ")")))) (; ";")) (} "}")))) (expression_statement "bVar8 = *(byte *)(plVar9 + 4);" (assignment_expression "bVar8 = *(byte *)(plVar9 + 4)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)(plVar9 + 4)" (* "*") (cast_expression "(byte *)(plVar9 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar9 + 4)" (( "(") (binary_expression "plVar9 + 4" (identifier "plVar9") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;" (if "if") (parenthesized_expression "(((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0))" (( "(") (binary_expression "((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)" (parenthesized_expression "((bVar8 & 1) == 0)" (( "(") (binary_expression "(bVar8 & 1) == 0" (parenthesized_expression "(bVar8 & 1)" (( "(") (binary_expression "bVar8 & 1" (identifier "bVar8") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(plVar6 + 4) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(plVar6 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(plVar6 + 4) & 1)" (( "(") (binary_expression "*(byte *)(plVar6 + 4) & 1" (pointer_expression "*(byte *)(plVar6 + 4)" (* "*") (cast_expression "(byte *)(plVar6 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar6 + 4)" (( "(") (binary_expression "plVar6 + 4" (identifier "plVar6") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00275602;" (goto "goto") (statement_identifier "LAB_00275602") (; ";"))) (expression_statement "iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);" (assignment_expression "iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1])" (identifier "iVar4") (= "=") (binary_expression "iVar4 + ((int)plVar9[1] - (int)plVar6[1])" (identifier "iVar4") (+ "+") (parenthesized_expression "((int)plVar9[1] - (int)plVar6[1])" (( "(") (binary_expression "(int)plVar9[1] - (int)plVar6[1]" (cast_expression "(int)plVar9[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar9[1]" (identifier "plVar9") ([ "[") (number_literal "1") (] "]"))) (- "-") (cast_expression "(int)plVar6[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar6[1]" (identifier "plVar6") ([ "[") (number_literal "1") (] "]")))) () ")")))) (; ";")) (if_statement "if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {\n                    \n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 0x3a) & 7) != 1)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x3a) & 7) != 1" (parenthesized_expression "(*(byte *)(param_2 + 0x3a) & 7)" (( "(") (binary_expression "*(byte *)(param_2 + 0x3a) & 7" (pointer_expression "*(byte *)(param_2 + 0x3a)" (* "*") (cast_expression "(byte *)(param_2 + 0x3a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x3a)" (( "(") (binary_expression "param_2 + 0x3a" (identifier "param_2") (+ "+") (number_literal "0x3a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n                    \n        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }" ({ "{") (expression_statement "FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");" (call_expression "FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end")" (identifier "FUN_0017c650") (argument_list "("../../gold/symtab.h",0xbe,"offset_is_from_end")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xbe") (, ",") (string_literal ""offset_is_from_end"" (" """) (string_content "offset_is_from_end") (" """)) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }" (else "else") (compound_statement "{\n      bVar8 = *(byte *)(plVar9 + 4);\n      if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }\n      iVar4 = (int)plVar9[1];\n    }" ({ "{") (expression_statement "bVar8 = *(byte *)(plVar9 + 4);" (assignment_expression "bVar8 = *(byte *)(plVar9 + 4)" (identifier "bVar8") (= "=") (pointer_expression "*(byte *)(plVar9 + 4)" (* "*") (cast_expression "(byte *)(plVar9 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(plVar9 + 4)" (( "(") (binary_expression "plVar9 + 4" (identifier "plVar9") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((bVar8 & 1) == 0) {\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }" (if "if") (parenthesized_expression "((bVar8 & 1) == 0)" (( "(") (binary_expression "(bVar8 & 1) == 0" (parenthesized_expression "(bVar8 & 1)" (( "(") (binary_expression "bVar8 & 1" (identifier "bVar8") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");\n      }" ({ "{") (labeled_statement "LAB_00275602:\n                    \n        FUN_0017c650("../../gold/output.h",0xc5,"address");" (statement_identifier "LAB_00275602") (: ":") (expression_statement "FUN_0017c650("../../gold/output.h",0xc5,"address");" (call_expression "FUN_0017c650("../../gold/output.h",0xc5,"address")" (identifier "FUN_0017c650") (argument_list "("../../gold/output.h",0xc5,"address")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xc5") (, ",") (string_literal ""address"" (" """) (string_content "address") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "iVar4 = (int)plVar9[1];" (assignment_expression "iVar4 = (int)plVar9[1]" (identifier "iVar4") (= "=") (cast_expression "(int)plVar9[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar9[1]" (identifier "plVar9") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}")))) (expression_statement "uVar3 = iVar4 + iVar1;" (assignment_expression "uVar3 = iVar4 + iVar1" (identifier "uVar3") (= "=") (binary_expression "iVar4 + iVar1" (identifier "iVar4") (+ "+") (identifier "iVar1"))) (; ";")) (expression_statement "uVar7 = (ulong)uVar3;" (assignment_expression "uVar7 = (ulong)uVar3" (identifier "uVar7") (= "=") (cast_expression "(ulong)uVar3" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar3"))) (; ";")) (if_statement "if (*(char *)(param_2 + 0x18) != '\0') {\n      if ((bVar8 & 2) == 0) {\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }" (if "if") (parenthesized_expression "(*(char *)(param_2 + 0x18) != '\0')" (( "(") (binary_expression "*(char *)(param_2 + 0x18) != '\0'" (pointer_expression "*(char *)(param_2 + 0x18)" (* "*") (cast_expression "(char *)(param_2 + 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if ((bVar8 & 2) == 0) {\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }\n      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);\n    }" ({ "{") (if_statement "if ((bVar8 & 2) == 0) {\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }" (if "if") (parenthesized_expression "((bVar8 & 2) == 0)" (( "(") (binary_expression "(bVar8 & 2) == 0" (parenthesized_expression "(bVar8 & 2)" (( "(") (binary_expression "bVar8 & 2" (identifier "bVar8") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_0017c650("../../gold/output.h",0xcf,"data_size");\n      }" ({ "{") (expression_statement "FUN_0017c650("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_0017c650("../../gold/output.h",0xcf,"data_size")" (identifier "FUN_0017c650") (argument_list "("../../gold/output.h",0xcf,"data_size")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xcf") (, ",") (string_literal ""data_size"" (" """) (string_content "data_size") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar7 = (ulong)(uVar3 + (int)plVar9[2]);" (assignment_expression "uVar7 = (ulong)(uVar3 + (int)plVar9[2])" (identifier "uVar7") (= "=") (call_expression "(ulong)(uVar3 + (int)plVar9[2])" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 + (int)plVar9[2])" (( "(") (binary_expression "uVar3 + (int)plVar9[2]" (identifier "uVar3") (+ "+") (cast_expression "(int)plVar9[2]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "plVar9[2]" (identifier "plVar9") ([ "[") (number_literal "2") (] "]")))) () ")")))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n    if ((bVar8 & 7) != 2) {\n                    \n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }\n    lVar5 = *(long *)(param_2 + 0x10);\n    uVar3 = *(uint *)(param_2 + 0x40);\n    if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }\n    uVar7 = (ulong)uVar3;\n    iVar1 = *(int *)(param_2 + 0x18);\n    if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }\n    break;" (case "case") (number_literal "2") (: ":") (if_statement "if ((bVar8 & 7) != 2) {\n                    \n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }" (if "if") (parenthesized_expression "((bVar8 & 7) != 2)" (( "(") (binary_expression "(bVar8 & 7) != 2" (parenthesized_expression "(bVar8 & 7)" (( "(") (binary_expression "bVar8 & 7" (identifier "bVar8") (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/symtab.h",200,"output_segment");\n    }" ({ "{") (expression_statement "FUN_0017c650("../../gold/symtab.h",200,"output_segment");" (call_expression "FUN_0017c650("../../gold/symtab.h",200,"output_segment")" (identifier "FUN_0017c650") (argument_list "("../../gold/symtab.h",200,"output_segment")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "200") (, ",") (string_literal ""output_segment"" (" """) (string_content "output_segment") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar5 = *(long *)(param_2 + 0x10);" (assignment_expression "lVar5 = *(long *)(param_2 + 0x10)" (identifier "lVar5") (= "=") (pointer_expression "*(long *)(param_2 + 0x10)" (* "*") (cast_expression "(long *)(param_2 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(uint *)(param_2 + 0x40);" (assignment_expression "uVar3 = *(uint *)(param_2 + 0x40)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(param_2 + 0x40)" (* "*") (cast_expression "(uint *)(param_2 + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x40)" (( "(") (binary_expression "param_2 + 0x40" (identifier "param_2") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 0x38) & 0xf) != 6)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x38) & 0xf) != 6" (parenthesized_expression "(*(byte *)(param_2 + 0x38) & 0xf)" (( "(") (binary_expression "*(byte *)(param_2 + 0x38) & 0xf" (pointer_expression "*(byte *)(param_2 + 0x38)" (* "*") (cast_expression "(byte *)(param_2 + 0x38)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x38)" (( "(") (binary_expression "param_2 + 0x38" (identifier "param_2") (+ "+") (number_literal "0x38")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);\n    }" ({ "{") (expression_statement "uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);" (assignment_expression "uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8)" (identifier "uVar3") (= "=") (binary_expression "uVar3 + *(int *)(lVar5 + 0x2b8)" (identifier "uVar3") (+ "+") (pointer_expression "*(int *)(lVar5 + 0x2b8)" (* "*") (cast_expression "(int *)(lVar5 + 0x2b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x2b8)" (( "(") (binary_expression "lVar5 + 0x2b8" (identifier "lVar5") (+ "+") (number_literal "0x2b8")) () ")")))))) (; ";")) (} "}"))) (expression_statement "uVar7 = (ulong)uVar3;" (assignment_expression "uVar7 = (ulong)uVar3" (identifier "uVar7") (= "=") (cast_expression "(ulong)uVar3" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar3"))) (; ";")) (expression_statement "iVar1 = *(int *)(param_2 + 0x18);" (assignment_expression "iVar1 = *(int *)(param_2 + 0x18)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_2 + 0x18)" (* "*") (cast_expression "(int *)(param_2 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (iVar1 == 1) {\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }\n    else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }" (if "if") (parenthesized_expression "(iVar1 == 1)" (( "(") (binary_expression "iVar1 == 1" (identifier "iVar1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));\n    }" ({ "{") (expression_statement "uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));" (assignment_expression "uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8))" (identifier "uVar7") (= "=") (call_expression "(ulong)(uVar3 + *(int *)(lVar5 + 0x2c8))" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 + *(int *)(lVar5 + 0x2c8))" (( "(") (binary_expression "uVar3 + *(int *)(lVar5 + 0x2c8)" (identifier "uVar3") (+ "+") (pointer_expression "*(int *)(lVar5 + 0x2c8)" (* "*") (cast_expression "(int *)(lVar5 + 0x2c8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x2c8)" (( "(") (binary_expression "lVar5 + 0x2c8" (identifier "lVar5") (+ "+") (number_literal "0x2c8")) () ")"))))) () ")")))) (; ";")) (} "}")) (else_clause "else if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }" (else "else") (if_statement "if (iVar1 != 0) {\n      if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }\n      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));\n    }" ({ "{") (if_statement "if (iVar1 != 2) {\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }" (if "if") (parenthesized_expression "(iVar1 != 2)" (( "(") (binary_expression "iVar1 != 2" (identifier "iVar1") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                    \n        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");\n      }" ({ "{") (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value")" (identifier "FUN_0017c650") (argument_list "("../../gold/symtab.cc",0xb5c,"compute_final_value")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xb5c") (, ",") (string_literal ""compute_final_value"" (" """) (string_content "compute_final_value") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));" (assignment_expression "uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8))" (identifier "uVar7") (= "=") (call_expression "(ulong)(uVar3 + *(int *)(lVar5 + 0x2e8))" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 + *(int *)(lVar5 + 0x2e8))" (( "(") (binary_expression "uVar3 + *(int *)(lVar5 + 0x2e8)" (identifier "uVar3") (+ "+") (pointer_expression "*(int *)(lVar5 + 0x2e8)" (* "*") (cast_expression "(int *)(lVar5 + 0x2e8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar5 + 0x2e8)" (( "(") (binary_expression "lVar5 + 0x2e8" (identifier "lVar5") (+ "+") (number_literal "0x2e8")) () ")"))))) () ")")))) (; ";")) (} "}"))))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\nswitchD_00275186_caseD_4:\n    uVar7 = 0;\n    break;" (case "case") (number_literal "4") (: ":") (labeled_statement "switchD_00275186_caseD_4:\n    uVar7 = 0;" (statement_identifier "switchD_00275186_caseD_4") (: ":") (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n                    \n    FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");" (default "default") (: ":") (expression_statement "FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");" (call_expression "FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value")" (identifier "FUN_0017c650") (argument_list "("../../gold/symtab.cc",0xb6a,"compute_final_value")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xb6a") (, ",") (string_literal ""compute_final_value"" (" """) (string_content "compute_final_value") (" """)) () ")"))) (; ";"))) (} "}"))) (expression_statement "*param_3 = 0;" (assignment_expression "*param_3 = 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "0")) (; ";")) (return_statement "return uVar7;" (return "return") (identifier "uVar7") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: Value_type compute_final_value<32>(Symbol_table * this,
   Sized_symbol<32> * sym, Compute_final_value_status * pstatus) */

type_1 __thiscall
var_6::type_2::function_1<32>
          (type_2 *this,type_3<32> *sym,type_4 *pstatus)

{
  type_5 *var_14;
  type_6 *var_19;
  type_7 ppOVar3;
  type_7 ppOVar4;
  bool bVar5;
  type_1 var_21;
  int var_20;
  type_8 extraout_var;
  type_8 extraout_var_00;
  type_9 *var_13;
  type_10 var_17;
  type_8 extraout_var_01;
  type_8 extraout_var_02;
  uint64_t uVar11;
  type_11 *var_11;
  type_12 var_3;
  type_13 *this_1;
  type_9 *this_01;
  type_14 var_1;
  type_15 SVar14;
  long *var_22;
  
  var_1 = (sym->super_Symbol).field_0x3a;
  switch(var_1 & 7) {
  case 0:
    if ((var_1 & 7) != 0) {
                    /* WARNING: Subroutine does not return */
      var_2("../../gold/symtab.h",0xaa,"shndx");
    }
    var_3 = (sym->super_Symbol).u2_.shndx;
    var_1 = (type_14)(sym->super_Symbol).field_0x3b >> 5 & 1;
    if ((var_3 != 0xfff1) && (var_1 == 0)) {
      bVar5 = type_21::var_4(var_3);
      if (!bVar5) {
        *pstatus = CFVS_UNSUPPORTED_SYMBOL_SECTION;
        return 0;
      }
      if (((sym->super_Symbol).field_0x3a & 7) != 0) {
                    /* WARNING: Subroutine does not return */
        var_2("../../gold/symtab.h",0xa1,"object");
      }
    }
    var_13 = (sym->super_Symbol).u1_.output_segment;
    if ((((type_16 *)var_13->output_lists_)->field_0x3c & 1) == 0) {
      var_20 = (*((type_16 *)var_13->output_lists_)->_vptr_Object[5])(var_13);
      if ((var_3 != 0) && (var_5(extraout_var,var_20) == 0)) {
        if ((var_1 != 0) ||
           ((var_3 != 0xfff1 && (bVar5 = type_21::var_4(var_3), !bVar5)))) {
          var_19 = ((type_16 *)var_13->output_lists_)->_vptr_Object[0x18];
          if (var_19 == type_18::do_output_section) {
            ppOVar3 = (((type_17 *)((type_16 *)var_13->output_lists_ + 1))->
                      super__Vector_base<var_6::type_11*,var_7::allocator<var_6::type_11*>var_8>var_9
                      )._M_impl._M_start;
            if ((type_10)((long)(((type_17 *)((type_16 *)var_13->output_lists_ + 1))->
                              super__Vector_base<var_6::type_11*,var_7::allocator<var_6::type_11*>var_8>var_9
                              )._M_impl._M_finish - (long)ppOVar3 >> 3) <= (type_10)var_3)
            goto LAB_002756af;
            var_11 = ppOVar3[var_3];
          }
          else {
            var_20 = (*var_19)(var_13,(type_10)var_3);
            var_11 = (type_11 *)var_5(extraout_var_02,var_20);
          }
          bVar5 = var_10(this,(type_18 *)var_13,var_3);
          if (bVar5) {
            if (var_11 != (type_11 *)0x0) {
                    /* WARNING: Subroutine does not return */
              var_2("../../gold/symtab.cc",0xb0c,"compute_final_value");
            }
            SVar14 = Icf::var_12(this->icf_,(type_18 *)var_13,var_3);
            var_13 = (type_9 *)SVar14.first;
            if (var_13 == (type_9 *)0x0) {
                    /* WARNING: Subroutine does not return */
              var_2("../../gold/symtab.cc",0xb10,"compute_final_value");
            }
            var_3 = SVar14.second;
            var_14 = var_13->output_lists_[0].
                     super__Vector_base<var_6::type_5*,var_7::allocator<var_6::type_5*>var_8>.
                     _M_impl._M_start[0x18];
            if (var_14 == (type_5 *)type_18::do_output_section) {
              ppOVar4 = var_13->output_lists_[3].
                        super__Vector_base<var_6::type_5*,var_7::allocator<var_6::type_5*>var_8>.
                        _M_impl._M_finish;
              if ((type_10)((long)var_13->output_lists_[3].
                                super__Vector_base<var_6::type_5*,var_7::allocator<var_6::type_5*>var_8>
                                ._M_impl._M_end_of_storage - (long)ppOVar4 >> 3) <= (type_10)var_3) {
LAB_002756af:
                    /* WARNING: Subroutine does not return */
                var_2("../../gold/object.h",0x5c8,"do_output_section");
              }
              var_11 = (type_11 *)ppOVar4[var_3];
            }
            else {
              var_11 = (type_11 *)(*(type_19 *)var_14)(var_13,var_3);
            }
            if (var_11 == (type_11 *)0x0) {
                    /* WARNING: Subroutine does not return */
              var_2("../../gold/symtab.cc",0xb15,"compute_final_value");
            }
            var_17 = (*(type_19 *)var_13->output_lists_[0].
                               super__Vector_base<var_6::type_5*var_9,var_7::allocator<var_6::type_5*>var_8>
                               ._M_impl._M_start[0x1a])(var_13,SVar14._8_8_ & 0xffffffff);
          }
          else {
            this_1 = (type_13 *)(type_10)var_3;
            this_01 = var_13;
            var_20 = (*((type_16 *)var_13->output_lists_)->_vptr_Object[0x1a])();
            var_17 = var_5(extraout_var_01,var_20);
            if (var_11 == (type_11 *)0x0) {
              if (parameters->doing_static_link_valid_ == false) {
                    /* WARNING: Subroutine does not return */
                Parameters::var_15((type_13 *)this_01,this_1);
              }
              if (parameters->doing_static_link_ == false) {
                if (parameters->options_ == (type_20 *)0x0) {
LAB_002756fc:
                    /* WARNING: Subroutine does not return */
                  var_2("../../gold/parameters.h",0x5c,"options");
                }
                if ((parameters->options_->relocatable_).value == false) {
                  var_3 = (sym->super_Symbol).dynsym_index_;
                  if (var_3 == 0) {
                    Symbol::var_16((type_21 *)this_01);
                    goto LAB_002756fc;
                  }
                  if (var_3 != 0xffffffff) {
                    /* WARNING: Subroutine does not return */
                    var_2("../../gold/symtab.cc",0xb21,"compute_final_value");
                  }
                }
              }
              *pstatus = CFVS_NO_OUTPUT_SECTION;
              return 0;
            }
          }
          if (var_17 == 0xffffffffffffffff) {
            uVar11 = type_11::var_18
                               (var_11,(type_18 *)var_13,var_3,(type_10)sym->value_);
            var_21 = (type_1)uVar11;
          }
          else {
            if ((var_17 & 0xffffffff) != var_17) {
                    /* WARNING: Subroutine does not return */
              var_2("../../gold/gold.h",0xc0,"convert_types");
            }
            var_21 = sym->value_;
            if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {
              var_19 = (var_11->super_Output_data)._vptr_Output_data[0x12];
              if (var_19 == type_11::do_tls_offset) {
                var_20 = (int)var_11->tls_offset_;
              }
              else {
                var_20 = (*var_19)(var_11);
              }
              var_21 = var_20 + var_21 + (int)var_17;
            }
            else {
              if (((var_11->super_Output_data).field_0x20 & 1) == 0) goto LAB_00275602;
              var_21 = var_21 + (int)var_17 + (int)(var_11->super_Output_data).address_;
            }
          }
          break;
        }
        goto switchD_00275186_caseD_3;
      }
    }
  case 4:
    var_21 = 0;
    break;
  case 1:
    if ((var_1 & 7) != 1) {
                    /* WARNING: Subroutine does not return */
      var_2("../../gold/symtab.h",0xb5,"output_data");
    }
    var_14 = (sym->super_Symbol).u1_.output_data;
    var_21 = sym->value_;
    if (((sym->super_Symbol).field_0x38 & 0xf) == 6) {
      var_20 = (*var_14->_vptr_Output_data[9])(var_14);
      var_22 = (long *)var_5(extraout_var_00,var_20);
      if (var_22 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
        var_2("../../gold/symtab.cc",0xb43,"compute_final_value");
      }
      if (*(type_19 **)(*var_22 + 0x90) == type_11::do_tls_offset) {
        var_20 = (int)var_22[0x1a];
      }
      else {
        var_20 = (**(type_19 **)(*var_22 + 0x90))(var_22);
      }
      var_1 = var_14->field_0x20;
      if (((var_1 & 1) == 0) || ((*(type_14 *)(var_22 + 4) & 1) == 0)) goto LAB_00275602;
      var_20 = var_20 + ((int)var_14->address_ - (int)var_22[1]);
      if (((sym->super_Symbol).field_0x3a & 7) != 1) {
                    /* WARNING: Subroutine does not return */
        var_2("../../gold/symtab.h",0xbe,"offset_is_from_end");
      }
    }
    else {
      var_1 = var_14->field_0x20;
      if ((var_1 & 1) == 0) {
LAB_00275602:
                    /* WARNING: Subroutine does not return */
        var_2("../../gold/output.h",0xc5,"address");
      }
      var_20 = (int)var_14->address_;
    }
    var_21 = var_20 + var_21;
    if ((sym->super_Symbol).u2_.offset_is_from_end != false) {
      if ((var_1 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
        var_2("../../gold/output.h",0xcf,"data_size");
      }
      var_21 = var_21 + (int)var_14->data_size_;
    }
    break;
  case 2:
    if ((var_1 & 7) != 2) {
                    /* WARNING: Subroutine does not return */
      var_2("../../gold/symtab.h",200,"output_segment");
    }
    var_13 = (sym->super_Symbol).u1_.output_segment;
    var_21 = sym->value_;
    if (((sym->super_Symbol).field_0x38 & 0xf) != 6) {
      var_21 = var_21 + (int)var_13->vaddr_;
    }
    var_3 = (sym->super_Symbol).u2_.shndx;
    if (var_3 == 1) {
      var_21 = var_21 + (int)var_13->memsz_;
    }
    else if (var_3 != 0) {
      if (var_3 != 2) {
                    /* WARNING: Subroutine does not return */
        var_2("../../gold/symtab.cc",0xb5c,"compute_final_value");
      }
      var_21 = var_21 + (int)var_13->filesz_;
    }
    break;
  case 3:
switchD_00275186_caseD_3:
    var_21 = sym->value_;
    break;
  default:
                    /* WARNING: Subroutine does not return */
    var_2("../../gold/symtab.cc",0xb6a,"compute_final_value");
  }
  *pstatus = CFVS_OK;
  return var_21;
}


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

ulong MASKED(long param_1,long param_2,undefined4 *param_3)

{
  int iVar1;
  char cVar2;
  uint uVar3;
  int iVar4;
  long lVar5;
  long *plVar6;
  ulong uVar7;
  byte bVar8;
  long *plVar9;
  undefined1 auVar10 [16];
  
  bVar8 = *(byte *)(param_2 + 0x3a);
  switch(bVar8 & 7) {
  case 0:
    if ((bVar8 & 7) != 0) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/symtab.h",0xaa,"shndx");
    }
    uVar3 = *(uint *)(param_2 + 0x18);
    bVar8 = *(byte *)(param_2 + 0x3b) >> 5 & 1;
    if ((uVar3 != 0xfff1) && (bVar8 == 0)) {
      cVar2 = FUN_00270ff0(uVar3);
      if (cVar2 == '\0') {
        *param_3 = 1;
        return 0;
      }
      if ((*(byte *)(param_2 + 0x3a) & 7) != 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/symtab.h",0xa1,"object");
      }
    }
    plVar9 = *(long **)(param_2 + 0x10);
    if ((((*(byte *)((long)plVar9 + 0x3c) & 1) != 0) ||
        (lVar5 = (**(code **)(*plVar9 + 0x28))(plVar9), uVar3 == 0)) || (lVar5 != 0))
    goto switchD_00275186_caseD_4;
    if ((bVar8 != 0) || ((uVar3 != 0xfff1 && (cVar2 = FUN_00270ff0(uVar3), cVar2 == '\0')))) {
      if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {
        if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (ulong)uVar3) goto LAB_002756af;
        plVar6 = *(long **)(plVar9[10] + (ulong)uVar3 * 8);
      }
      else {
        plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar3);
      }
      cVar2 = FUN_00271390(param_1,plVar9,uVar3);
      if (cVar2 == '\0') {
        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar3);
        if (plVar6 == (long *)0x0) {
          if (PTR_DAT_0043e6b0[0x20] == '\0') {
            FUN_00270c00();
            goto LAB_002756af;
          }
          if (PTR_DAT_0043e6b0[0x21] == '\0') {
            if (*(long *)(PTR_DAT_0043e6b0 + 0x10) == 0) {
LAB_002756fc:
                    /* WARNING: Subroutine does not return */
              FUN_0017c650("../../gold/parameters.h",0x5c,"options");
            }
            if (*(char *)(*(long *)(PTR_DAT_0043e6b0 + 0x10) + 0x5051) == '\0') {
              if (*(int *)(param_2 + 0x20) == 0) {
                FUN_00270c20();
                goto LAB_002756fc;
              }
              if (*(int *)(param_2 + 0x20) != -1) {
                    /* WARNING: Subroutine does not return */
                FUN_0017c650("../../gold/symtab.cc",0xb21,"compute_final_value");
              }
            }
          }
          *param_3 = 2;
          return 0;
        }
      }
      else {
        if (plVar6 != (long *)0x0) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/symtab.cc",0xb0c,"compute_final_value");
        }
        auVar10 = FUN_0017f670(*(undefined8 *)(param_1 + 0x298),plVar9,uVar3);
        uVar7 = auVar10._8_8_;
        plVar9 = auVar10._0_8_;
        if (plVar9 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/symtab.cc",0xb10,"compute_final_value");
        }
        uVar3 = auVar10._8_4_;
        if (*(code **)(*plVar9 + 0xc0) == FUN_00156120) {
          if ((ulong)(plVar9[0xb] - plVar9[10] >> 3) <= (uVar7 & 0xffffffff)) {
LAB_002756af:
                    /* WARNING: Subroutine does not return */
            FUN_0017c650("../../gold/object.h",0x5c8,"do_output_section");
          }
          plVar6 = *(long **)(plVar9[10] + (uVar7 & 0xffffffff) * 8);
        }
        else {
          plVar6 = (long *)(**(code **)(*plVar9 + 0xc0))(plVar9,uVar7 & 0xffffffff);
        }
        if (plVar6 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/symtab.cc",0xb15,"compute_final_value");
        }
        uVar7 = (**(code **)(*plVar9 + 0xd0))(plVar9,uVar7 & 0xffffffff);
      }
      if (uVar7 == 0xffffffffffffffff) {
        uVar7 = FUN_001fbe80(plVar6,plVar9,uVar3,*(undefined4 *)(param_2 + 0x40));
      }
      else {
        if ((uVar7 & 0xffffffff) != uVar7) {
                    /* WARNING: Subroutine does not return */
          FUN_0017c650("../../gold/gold.h",0xc0,"convert_types");
        }
        iVar1 = *(int *)(param_2 + 0x40);
        if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {
          if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {
            iVar4 = (int)plVar6[0x1a];
          }
          else {
            iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);
          }
          uVar7 = (ulong)(uint)(iVar4 + iVar1 + (int)uVar7);
        }
        else {
          if ((*(byte *)(plVar6 + 4) & 1) == 0) goto LAB_00275602;
          uVar7 = (ulong)(uint)(iVar1 + (int)uVar7 + (int)plVar6[1]);
        }
      }
      break;
    }
  case 3:
    uVar7 = (ulong)*(uint *)(param_2 + 0x40);
    break;
  case 1:
    if ((bVar8 & 7) != 1) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/symtab.h",0xb5,"output_data");
    }
    plVar9 = *(long **)(param_2 + 0x10);
    iVar1 = *(int *)(param_2 + 0x40);
    if ((*(byte *)(param_2 + 0x38) & 0xf) == 6) {
      plVar6 = (long *)(**(code **)(*plVar9 + 0x48))(plVar9);
      if (plVar6 == (long *)0x0) {
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/symtab.cc",0xb43,"compute_final_value");
      }
      if (*(code **)(*plVar6 + 0x90) == FUN_001be670) {
        iVar4 = (int)plVar6[0x1a];
      }
      else {
        iVar4 = (**(code **)(*plVar6 + 0x90))(plVar6);
      }
      bVar8 = *(byte *)(plVar9 + 4);
      if (((bVar8 & 1) == 0) || ((*(byte *)(plVar6 + 4) & 1) == 0)) goto LAB_00275602;
      iVar4 = iVar4 + ((int)plVar9[1] - (int)plVar6[1]);
      if ((*(byte *)(param_2 + 0x3a) & 7) != 1) {
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/symtab.h",0xbe,"offset_is_from_end");
      }
    }
    else {
      bVar8 = *(byte *)(plVar9 + 4);
      if ((bVar8 & 1) == 0) {
LAB_00275602:
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/output.h",0xc5,"address");
      }
      iVar4 = (int)plVar9[1];
    }
    uVar3 = iVar4 + iVar1;
    uVar7 = (ulong)uVar3;
    if (*(char *)(param_2 + 0x18) != '\0') {
      if ((bVar8 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/output.h",0xcf,"data_size");
      }
      uVar7 = (ulong)(uVar3 + (int)plVar9[2]);
    }
    break;
  case 2:
    if ((bVar8 & 7) != 2) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/symtab.h",200,"output_segment");
    }
    lVar5 = *(long *)(param_2 + 0x10);
    uVar3 = *(uint *)(param_2 + 0x40);
    if ((*(byte *)(param_2 + 0x38) & 0xf) != 6) {
      uVar3 = uVar3 + *(int *)(lVar5 + 0x2b8);
    }
    uVar7 = (ulong)uVar3;
    iVar1 = *(int *)(param_2 + 0x18);
    if (iVar1 == 1) {
      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2c8));
    }
    else if (iVar1 != 0) {
      if (iVar1 != 2) {
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/symtab.cc",0xb5c,"compute_final_value");
      }
      uVar7 = (ulong)(uVar3 + *(int *)(lVar5 + 0x2e8));
    }
    break;
  case 4:
switchD_00275186_caseD_4:
    uVar7 = 0;
    break;
  default:
                    /* WARNING: Subroutine does not return */
    FUN_0017c650("../../gold/symtab.cc",0xb6a,"compute_final_value");
  }
  *param_3 = 0;
  return uVar7;
}

